Universidade
Federal Rural de Pernambuco
Departamento
de Informática
Disciplina:
Sistema Operacional
Profº-:
Jones
Tema:
OpenBSD
Jose
Vieira de Oliveira Junior
Introdução
Os sistemas operacionais estão ficando
cada vez mais segmentados. O Windows, por exemplo, é o preferido dos usuários
domésticos, já o Red Hat Linux é uma boa escolha para quem quer estabilidade.
Mas quando o assunto é segurança, há um novo software que está conquistando os
profissionais.
Trata-se do OpenBSD, um sistema
operacional gratuito (código-fonte e binários baseados na licença BSD),
multiplataforma, multiusuário e baseado no UNIX . Seus pontos fortes são a
consistencia, segurança, padronização, e portabilidade. Para garantir a
segurança, o código-fonte do OpenBSD é extensivamente auditado por
profissionais de segurança, e sua criptografia implementada no próprio sistema
operacional. O OpenBSD suporta emulação binária da maioria dos binários de SRV4
(Solaris), FreeBSD, Linux, SunOS e HPUX.
O OpenBSD é o menos amistoso quando falamos
em instalação de BSDs. Não é muito difícil, mas o particionamento não é nem um
pouco intuitivo. Depois da instalação, o usuário administrador recebe um e-mail
direcionando-o a página de manual “afterboot” .
OpenBSD
Por definição
temos:
Open à
abrir
BSD à Berkeley Software Distributions (distribuição)
O OpenBSD é a distribuição BSD mais
voltada para a questão da segurança. no sistema operacional OpenBSD você
encontrará a maior quantidade de informação sobre como proteger um sistema,
além da grande quantidade de ferramentas para este intuito;
Geralmente, muita segurança é sinônimo de
lentidão. Veja o exemplo dos antivírus: quanto mais esses programas protegem o
seu computador, mais tempo de espera é requerido para a realização de algumas
tarefas. Mas essa regra não se aplica ao OpenBSD.
Este sistema não é um Linux, mas sim um
Unix da família BSD. Mesmo considerando que ele perca um tempo de velocidade
com as criptografias, ainda assim ele consegue ser mais rápido que qualquer
Linux que esteja instalado em um hardware semelhante.
Outra vantagem muito útil deste sistema
operacional é o gerenciamento de pacotes.
Um aspecto negativo deste sistema é a
impossibilidade de utilizar a placa de som, já que o sistema não possui as bibliotecas
padrão POSIX necessárias, que necessitariam serem compiladas no próprio kernel
do sistema, o que demanda experiência do usuário para realizar algumas
tarefas.
O OpenBSD é um dos SO mais seguros da
atualidade. Para se ter uma idéia de como os programadores investem nesta
característica, o mascote deste sistema não é um pingüim, mas sim um peixe
espinhoso e similar a um baiacu.
Todos os processos já vem
pré-configurados, visando atingir a proteção máxima. Neste último caso vale
lembrar que é muito difícil encontrar distribuições que tenham essa
preocupação.
Tudo no OpenBSD gira em torno de
criptografia, ou seja, seu conceito está baseado que a segurança não é um
produto, mas sim um processo. É mais que criar uma proteção eficiente para o
software. É desenvolver um sistema operacional com todas as medidas de
segurança, incluindo a criptografia.
Uma curiosidade é que o OpenBSD é um
produto canadense, que ao contrário das leis aplicadas nos EUA é possível
exportar softwares criptográficos.
Gerenciamento de
Processos
O
gerenciamento de processos é um trabalho fundamental para o administrador de
sistemas. Em muitos casos os processos são ativados, executados e mortos sem a
intervenção de um usuário. Isto ocorre por que eles estão sendo automaticamente
gerenciados pelo Kernel (é responsável
pela manutenção de todas as abstrações importantes do sistema operacioal,
incluindo elementos como a memória virtual e os processos).
Uma das características do OpenBSD é a facilidade com que
múltiplos processos podem ser criados e manipulados, os quais são representados
por vários blocos de controle, e armazenados no kernel. As informações desses
blocos são usadas pelo kernel para o controle de processos e escalonamento de
CPU.
Um processo é um programa em execucao. Os processos
são identificados por seu identificador de processo. Um novo processo é
criado pela chamada ao sistema fork e consiste em uma cópia do espaço de
endereçamento do processo original.
Todos os processos de usuário são descendentes de um
processo original, chamado init. Assim no OpenBSD temos como exemplo a
criação das portas de terminais que são a base do processo getty, o qual
foi criado pelo init.
Gerenciamento
de Memória
O OpenBSD é um sistema de memória virtual
(separação da memória lógica do usuário da memória física) com paginação sob
demanda (os processos residem na memória secundaria). Essa memória é um
conjunto de técnicas que permitem a execução de um programa que não está todo
na memória. A paginação por demanda.
A
memória virtual no OpenBSD funciona da seguinte maneira:
O programa fica no disco e no momento de
ser executado, ele é copiado para a memória, mas não todo. Cada pagina só é
copiada no momento em que é necessária, pois o programa pode acessar uma pagina
que não está na memória. A falta de uma página na memória só é notada quando
ela é utilizada realmente. O hardware tenta traduzir o endereço lógico para um
endereço físico.
Sistemas de Arquivos
O sistema de arquivos do OpenBSD suporta
dois objetos principais: arquivos e diretórios. Os diretórios são apenas
arquivos com um formato especial, por isso a representação de um arquivo é o
conceito básico do OpenBSD.
O sistema de arquivos do OpenBSD suporta
ponteiros de arquivos com 32 ou 64 bits.
No OpenBSD, assim como no Linux/Unix,
tudo é manipulado como arquivo, ou seja, uma seqüência de bytes. Estes arquivos
estão organizados em diretórios estruturados em árvores. Os diretórios propriamente
ditos são arquivos que contêm informações sobre como localizar outros arquivos.
Sintaticamente, temos um barra (/) dividindo o caminho entre diretórios.
Boa parte do sistema de arquivos é
ocupada por blocos de dados, que contêm dados inseridos pelos usuários nos seus
arquivos, são armazenados no disco. Os sistemas de arquivos do OpenBSD
geralmente contêm um número enorme de arquivos pequenos, blocos muito maiores
causariam fragmentação interna excessiva.
Sistema de
I / O
O sistema de I/O do BSD é uma seqüência de bytes que podem ser
acessados randomicamente ou seqüencialmente Diferentes programas esperam
vários níveis de estrutura, mas o kernel não impõe estrutura de I/O.
Processos UNIX
usam descritores para referenciar I/O streams (mover rapidamente) São inteiros, obtidos nas chamadas de sistemas open.
A chamada de sistema open pega como argumentos: o nome do arquivo
e o modo de permissão, para especificar se o arquivo é aberto para escrita,
leitura ou ambos. Pode ser usada para criar um arquivo em vazio
No BSD, 3 grupos de objetos podem ser
representados por descritores: files(fila), pipes(canais), end
sockets(encaixe). Um arquivo é um array (disposição) de bytes com no mínimo um
nome. Um processo adquire um descritor para um arquivo abrindo pelo nome, com
chamada de sistema. Dispositivos de I/O são acessados como arquivos
Silberschatz, ª, Galvin, P.B. e Gangne, G.
Applied Operatin g system Concepts. Nova York: Wiley, 2000.
Tanenbaum,
Andrew S. – Sistemas Operacionais Modernos. 2 – Seller Mundial. Pearson,
São Paulo, Prentice Hall, 2003.