[Índice da FAQ]
[Seção 8 - Questões Gerais]
[Seção 10 - Administração do Sistema]
9 - Migração para OpenBSD
Conteúdo
Mais informação para usuários de Linux pode ser encontrada em
http://sites.inka.de/mips/unix/bsdlinux.html.
9.1 - Dicas para usuários de outros Sistemas Operacionais do
tipo Unix
O OpenBSD é um sistema tradicional do tipo Unix e será muito familiar
para aqueles que usaram outros sistemas do tipo Unix, mas existem
diferenças importantes.
Novos usuários do OpenBSD devem se basear em suas próprias experiências:
se seu conhecimento de Unix limita-se a uma certa experiência com uma
variante do Linux, você pode achar o OpenBSD "estranho". Do mesmo modo,
o Linux parece muito estranho para alguém que começou com o OpenBSD.
Você precisa reconhecer a diferença entre o "padrão" e sua experiência.
Se você aprendeu Unix com qualquer um dos
bons livros sobre Unix em geral, e se você entendeu a "filosofia
Unix" e então aumentou seu conhecimento em uma plataforma específica,
você achará o OpenBSD um Unix "verdadeiro" e familiar.
Se você aprendeu Unix usando um processo "digite isto para fazer
aquilo", ou com um livro do tipo "Aprenda PinkBeenie v8.3 em 31,4
Horas", e acha que você "conhece o Unix", você certamente vai achar o
OpenBSD muito diferente.
Uma importante diferença entre o OpenBSD e muitos outros sistemas
operacionais é a documentação. Os desenvolvedores do OpenBSD têm
um grande orgulho das
páginas de manual.
As páginas de manual são a fonte confiável de documentação do
OpenBSD -- não esta FAQ, nem páginas mantidas independentemente por
terceiros, nem "HOWTO"s, etc.
Quando um desenvolvedor faz uma mudança no sistema, é esperado que ele
faça a atualização das páginas de manual ao mesmo tempo que sua
modificação no código do sistema, não "mais tarde" ou "quando tiver
tempo de fazer" ou "quando alguém reclamar".
Uma página de manual existe para praticamente todo programa, utilitário,
driver, arquivo de configuração e tudo o mais no sistema base.
É esperado que um usuário veja as páginas de manual antes de pedir
ajuda nas listas de discussão.
Estas são algumas das diferenças mais comumente encontradas entre o
OpenBSD e outras variantes do Unix.
- O OpenBSD é um Unix do estilo "BSD" bastante puro, que segue o
desenho do 4.4BSD com atenção.
Linux e o SCO Unix são sistemas do estilo "System V".
Alguns sistemas operacionais do tipo Unix (incluindo algumas
distribuições Linux) misturam muitas características do SysV e do
BSD. Um lugar onde isso causa confusão são os
scripts de inicialização; o OpenBSD usa
o tradicional sistema
rc(8)
no estilo 4.4BSD.
- O OpenBSD é um sistema completo, destinado a se manter de
maneira homogênea. Ele não é um "Kernel mais utilitários" que podem
ser atualizados separadamente.
Se você não manter seu sistema (kernel, utilitários de usuário e
aplicativos) em sincronia, coisas ruins acontecerão.
- Como muitos aplicativos não são desenvolvidos para compilar e
funcionar diretamente em um ambiente OpenBSD, o OpenBSD tem uma
árvore de portes, um sistema onde
usuários podem facilmente adquirir o código, corrigi-lo para o
OpenBSD, instalar as dependências, compilá-lo, instalar e remover
de maneira padronizada e passível de manutenção.
Pacotes pré-compilados são criados
e distribuídos pela equipe do portes do OpenBSD.
Usuários são incentivados
a usar esses pacotes em vez de compilar seus próprios.
- O OpenBSD usa CVS para manter o caminho das mudanças no código
fonte. O OpenBSD foi pioneiro no uso do
CVS anônimo, que permite a
qualquer um pegar a árvore de código completa de qualquer
versão do OpenBSD (da 2.0 até a current, e todas as revisões de
todos os arquivos entre elas) a qualquer hora, e você pode acessar
as mudanças mais recentes dentro de horas após a alteração.
Há também uma
interface Web para
o CVS, conveniente e fácil de usar.
- O OpenBSD produz uma release oficial disponível em
CD e
FTP, a cada seis meses, em uma
data planejada.
Snapshots para todas as plataformas suportadas são feitas
quase que regularmente com o código de desenvolvimento atual.
O objetivo é que a árvore de código se mantenha compilável
e o sistema resultante seja usável todas as vezes.
A árvore uma hora ou outra se quebra, mas isso é um evento
extraordinário que é corrigido rapidamente.
- O OpenBSD contém criptografia forte
que não pode ser incluída em SOs feitos em alguns países.
- O OpenBSD recebe uma contínua e pesada auditoria de segurança para
assegurar a qualidade (e assim, a segurança) do código.
- O kernel do OpenBSD é o /bsd.
- Os nomes dos discos rígidos normalmente são /dev/wd (IDE) e
/dev/sd (SCSI ou dispositivos que emulam discos SCSI).
- /sbin/route
sem argumentos no Linux mostra o estado de todas as rotas ativas,
no OpenBSD (e muitos outros SOs) você precisa usar o parâmetro
"show", ou fazer um
"netstat -r".
- O OpenBSD NÃO suporta sistemas de arquivos com "Journaling", como
o ReiserFS, o JFS da IBM, ou o XFS da SGI.
Em vez disso, nós usamos a funcionalidade
Soft Updates do muito robusto
Unix Fast File System (FFS) para atender os objetivos de
desempenho e estabilidade.
- O OpenBSD inclui o Packet Filter (PF),
e não o ipfw, ipchains, netfilter, iptables, ou ipf. Isso significa
que a Tradução de Endereço IP (conhecido como IP-Masquerading no
Linux), controle de banda e filtragem são feitos via
pfctl(8),
pf(4) e
pf.conf(5).
Veja em Guia para Usuários do PF
informação detalhada sobre configuração.
- Endereço de interface é guardado em
/etc/hostname.<nome_da_interface>
(por exemplo, /etc/hostname.dc0 para uma interface de rede
que usa o driver
dc(4)).
Esse arquivo pode conter o nome da máquina (resolvido em
/etc/hosts)
em vez do endereço IP.
- O nome da máquina está em
/etc/myname.
- O gateway padrão está em
/etc/mygate.
- O shell padrão do OpenBSD é o
/bin/ksh,
que é o pdksh, o
shell Korn em Domínio Público.
Outros shells incluídos são o
csh
e o sh.
Shells como o bash e o tcsh podem ser adicionados como
pacotes ou instalados a partir do
portes.
Usuários familiarizados com o bash são encorajados a
tentar usar o ksh(1) antes de instalar
o bash em seu sistema -- isso faz com que muitas pessoas
desistam do bash.
- O gerenciamento de senhas no OpenBSD é diferente do gerenciamento
de senhas em alguns outros sistemas operacionais do tipo Unix.
As senhas reais são guardadas no arquivo
master.passwd(5),
que só pode ser lido pelo root.
Esse arquivo deve ser alterado somente com o programa
vipw.
- Dispositivos são nomeados pelo driver, não pelo tipo. Por exemplo,
não há dispositivos eth*. Ele será ne0 para uma placa Ethernet
NE2000, e xl0 para um 3Com Etherlink XL ou um dispositivo Fast
Etherlink XL, etc. Todos os drivers possuem páginas de manual na
seção 4. Dessa forma, para encontrar mais informação sobre as
mensagens que seu driver 3c905 está mostrando, você pode digitar
"man
4 xl".
- OpenBSD/i386, amd64 e muitas outras plataformas usam um sistema
de particionamento de disco em "duas camadas", onde a primeira
camada é o fdisk, partição visível
pelo BIOS e familiar para a maioria dos usuários de computadores
compatíveis com IBM.
A segunda camada é o disklabel,
um sistema de particionamento tradicional do BSD.
O OpenBSD suporta no máximo 15 partições disklabel em um disco,
todas na mesma partição fdisk.
Isso permite ao OpenBSD coexistir com outros SOs, incluindo outros
SOs do tipo Unix.
O OpenBSD precisa estar em uma das quatro partições "primárias".
- Alguns outros SOs incentivam você a personalizar seu kernel para sua
máquina.
Usuários do OpenBSD são incentivados
a simplesmente usar o kernel GENERIC padrão, fornecido e testado
pelos desenvolvedores.
Usuários que tentam "personalizar" ou "otimizar" o kernel,
normalmente causam mais problemas do que soluções, e nenhuma ajuda
será prestada pelos desenvolvedores.
- O OpenBSD trabalha pesado para manter a
política de licença e
segurança do projeto.
Por essa razão, algumas novas versões de alguns softwares que falham
na adequação tanto da licença quanto dos objetivos de segurança do
projeto não são e podem nunca ser integrados no OpenBSD.
Segurança e licença livre não serão jamais negligenciados para ter
o número de versão maior.
9.2 - Linux e OpenBSD em inicialização dupla
Sim! Isso é possível!
Leia INSTALL.linux.
9.3 - Como converter seu arquivo de senhas do Linux (ou outro formato
do tipo Sexta Edição) para o formato BSD.
Primeiro, verifique se o seu arquivo de senhas do Linux é do tipo
"shadow" ou não. Se ele é, instale o
John the Ripper a partir de
pacotes ou portes (security/john) e
use o utilitário "unshadow" para ele juntar seus arquivos
passwd e shadow em um arquivo do tipo Sexta Edição.
Usando seu arquivo de senhas do Linux, vamos chamá-lo de
linux_passwd, você precisa adicionar ::0:0 entre os campos
quatro e sete. O
awk(1)
faz isso por você.
# cat linux_passwd | awk -F : '{printf("%s:%s:%s:%s::0:0:%s:%s:%s\n", \
> $1,$2,$3,$4,$5,$6,$7); }' > new_passwd
Nesse ponto, você deve editar o arquivo new_passwd e remover
o root e outras entradas do sistema que já estão presentes no seu
arquivo de senhas do OpenBSD ou que não são usadas no OpenBSD (remova
todas elas). Também tenha certeza de que não existem nomes de usuários
duplicados ou IDs de usuário entre new_passwd e seu arquivo
/etc/passwd da máquina OpenBSD. A maneira mais fácil de fazer
isso é utilizar um novo /etc/passwd.
# cat new_passwd >> /etc/master.passwd
# pwd_mkdb -p /etc/master.passwd
O último passo, pwd_mkdb, é necessário para reconstruir os
arquivos /etc/spwd.db e /etc/pwd.db. Ele também cria um arquivo de
senhas no formato Sexta Edição (menos as senhas encriptadas) em
/etc/passwd para programas que o usam. O OpenBSD usa criptografia forte
para senhas, blowfish, que é muito raro de se achar em qualquer sistema
que use arquivos de senhas no formato Sexta Edição. Para utilizar
esse algoritmo mais forte, os usuários utilizam o comando 'passwd' e
mudam suas senhas. A nova senha será encriptada com sua configuração
padrão (blowfish, se você não editou o arquivo /etc/login.conf). Ou,
como root, você pode executar passwd nome_de_usuário.
9.4 - Como executar binários do Linux no OpenBSD
O OpenBSD/i386 é capaz de executar binários do Linux quando o kernel
está compilado com a opção COMPAT_LINUX e o parâmetro kern.emul.linux do
sysctl também está definido.
Se você está usando o kernel GENERIC (que você normalmente deve usar),
COMPAT_LINUX já está ativada, e você vai precisar apenas definir
o parâmetro sysctl desta forma:
# sysctl kern.emul.linux=1
Para isso ser feito automaticamente a cada vez que o computador
inicializar, remova o caractere # (comentário) do começo da linha
#kern.emul.linux=1 # enable running Linux binaries
do arquivo /etc/sysctl.conf, que deve ficar parecido com:
kern.emul.linux=1 # enable running Linux binaries
e reinicialize seu sistema para a modificação ter efeito.
Para executar quaisquer binários do Linux que não são ligados
estaticamente (a maioria deles), você precisa seguir as instruções da
página de manual
compat_linux(8).
Um jeito simples de pegar a maioria das bibliotecas úteis do Linux é
instalar o pacote fedora/base a partir do espelho FTP mais
próximo de você.
Para mais informação sobre os pacotes e o sistema de portes, você deve
consultar a
FAQ 15 - O Sistema de Pacotes e Portes do OpenBSD.
Para instalar o pacote mencionado, você deve usar os comandos:
# export PKG_PATH=ftp://seu.espelho.ftp/pub/OpenBSD/5.2/packages/i386/
# pkg_add -i fedora_base
Note que o
pkg_add(1)
executa automaticamente o sysctl para definir kern.emul.linux
com o valor correto durante a instalação desse pacote.
No entanto, ele não muda o arquivo /etc/sysctl.conf, então se
você deseja que a emulação Linux fique ativa por padrão, você precisa
modificar kern.emul.linux nesse arquivo.
9.5 - Como acessar seus arquivos do Linux com o OpenBSD
O OpenBSD suporta o sistema de arquivos EXT2FS.
Para mais informação, veja a FAQ 14.
[Índice da FAQ]
[Seção 8 - Questões Gerais]
[Seção 10 - Administração do Sistema]
www@openbsd.org
$OpenBSD: faq9.html,v 1.7 2013/01/05 15:19:49 ajacoutot Exp $