O que diferentes BSDs têm em comum?

62

... e quais são as diferenças entre eles? Formulei minha pergunta assim para deixar claro que não estou interessado em uma guerra de opiniões, mas em uma comparação objetiva entre os diferentes sabores do BSD Unix. Idealmente, eu poderia receber feedback de usuários com experiência em todos eles.

fundo

Descobri recentemente que o Unix tem muito mais do que apenas o Linux. Eu uso Solaris no trabalho, isso abriu meus olhos. Agora estou interessado em novos departamentos, quero experimentar um novo e naturalmente tenho curiosidade sobre BSDs.

O problema

Não estou pedindo conselhos ou opiniões sobre o que o BSD instalar ; Quero conhecer as diferenças (e pontos comuns) entre eles para que eu possa decidir. O problema é que é difícil obter comparações adequadas entre eles.

Se você tiver sorte, terá uma definição apressada como esta:

FreeBSD = Popular all-rounder.
NetBSD = Portable (runs on a lot of platforms, including a toaster)
OpenBSD = Security above anything else.

(Pode ser verdade, mas não é realmente útil. Tenho certeza que o FreeBSD também é portátil e seguro ...)

Se você é azarado, é pego em uma daquelas inevitáveis ​​lendas do Unix sobre projetos de divisão, bifurcação, mudança de nome por motivos intelectuais / morais, como Theo de Raadt é um extremista e como o MacOS X e o FreeBSD tinham um ancestral comum há mais de 20 anos.

Fascinante, mas não realmente informativo, é?

Os BSDs

Os BSDs nos quais estou interessado são:

  • FreeBSD
  • OpenBSD
  • NetBSD

e opcionalmente

  • Libélula
  • Darwin
  • ...

Minhas perguntas

Para entender melhor as diferenças, aqui está uma lista de perguntas um pouco relacionadas às diferentes distribuições (podemos usar esse termo?). Se você apresentar sua resposta sob alguma forma de dados tabulares, você é meu herói de todos os tempos!

  • Eles usam o mesmo kernel?
  • Eles usam as mesmas ferramentas da terra do usuário? (quais são as diferenças, se houver?)
  • Eles usam o mesmo sistema de gerenciamento de pacotes / fontes?
  • Eles usam o mesmo shell padrão?
  • Os binários são portáteis entre eles?
  • As fontes são portáteis entre elas?
  • Eles usam árvores de diretório diferentes?
  • Qual o tamanho de suas respectivas comunidades? Eles são da mesma ordem de magnitude?
  • Quanto do desenvolvimento atual é comum?
  • Quais são as principais incompatibilidades entre eles?

Não sei como essas perguntas são fáceis de responder e quão relevante para o formato StackExchange é realmente essa pergunta. Eu nunca encontrei um documento simples listando as diferenças entre BSDs de uma maneira clara, útil para usuários razoavelmente experientes olharem e fazerem uma escolha facilmente.

rahmu
fonte
13
Esta é uma ótima pergunta, +1
n0pe
4
Eu estava 100% certo a coisa torradeira foi uma piada ... embeddedarm.com/software/arm-netbsd-toaster.php
tkbx
haha bem, foi apenas uma demonstração. Eu gosto de como o nível de gravação parece estar acima de 200% na tela.
Aki

Respostas:

50

Eu não acho que darei a você e a todos a resposta perfeita, no entanto, usando um sistema BSD todos os dias para trabalhar, tenho certeza de que posso fornecer uma visão útil do mundo BSD. Eu nunca usei o NetBSD, não vou falar muito sobre isso.

Eles usam o mesmo kernel?

Não, embora haja semelhanças devido aos garfos históricos. Cada projeto evoluiu separadamente.

Eles usam as mesmas ferramentas da terra do usuário? (quais são as diferenças, se houver?)

Todos seguem o POSIX. Você pode esperar que um conjunto de ferramentas tenha a mesma funcionalidade entre * BSD. Também é comum ver algumas diferenças óbvias nas ferramentas de gerenciamento de processo / rede nos BSDs.

Eles usam o mesmo sistema de gerenciamento de pacotes / fontes?

Eles fornecem um sistema de empacotamento, diferente para cada sistema operacional.

Eles usam o mesmo shell padrão?

Não, por exemplo, o FreeBSD usa csh, o OpenBSD usa ksh.

Os binários são portáteis entre eles?

Não:

(XXXX@freebsd-6 101)file `which ls`
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for FreeBSD 5.5, dynamically linked (uses shared libs), stripped

Eles realmente não suportam emulação binária estável e rápida. Não confie nisso.

As fontes são portáteis entre elas?

Alguns sim, desde que você não use o código do kernel ou o código libc (que está intimamente ligado ao sistema operacional), por exemplo.

Eles usam árvores de diretório diferentes?

Não, eles são muito semelhantes ao Linux aqui. No entanto, o FreeBSD defende o uso de / usr / local / etc para arquivos de configuração de software de terceiros. O OpenBSD coloca tudo em / etc ... Eles colocam todos os terceiros em / usr / local, enquanto a distribuição Linux faz o que bem entender. Em geral, você pode dizer que * o BSD é muito conservador quanto a isso, as coisas pertencem a onde elas pertencem, e isso não é algo para compensar.

Qual o tamanho de suas respectivas comunidades? Eles são da mesma ordem de magnitude?

O FreeBSD é o maior e mais ativo, você pode acessá-lo através de diversos fóruns, listas de discussão, canais de IRC e outros ... O OpenBSD tem uma boa comunidade, mas é visível principalmente através de listas de IRC e de discussão.

Na verdade, se você acha que precisa de uma boa comunidade, o FreeBSD é o caminho a seguir. As comunidades NetBSD e OpenBSD estão centradas no desenvolvimento, conversam sobre novas melhorias, etc. Eles realmente não gostam de fazer publicidade ou suporte básico ao usuário. Eles esperam que todos sejam usuários avançados do Unix e capazes de ler a documentação antes de perguntar qualquer coisa.

Quanto do desenvolvimento atual é comum?

Como o código de licenças realmente gratuito pode fluir entre os projetos, o OpenBSD geralmente corrige seu código seguindo o NetBSD (como suas fontes têm muito em comum), o FreeBSD pega e integra o Packet Filter do OpenBSD, etc. É obviamente mais difícil quando se trata de drivers e outros coisas do kernel.

Quais são as principais incompatibilidades entre eles?

Eles não são compatíveis em formato binário, mas são principalmente compatíveis em sintaxe e código. Você pode confiar nisso para obter portabilidade no seu código. Ele criará ou executará facilmente em todos os tipos de BSD, exceto se você estiver muito perto do kernel (ifconfig, pfctl ...).

Veja como você pode aprender com o mundo do BSD:

Tente substituir o seu roteador doméstico por uma caixa openbsd, brinque com o pf e a rede. Você verá como é fácil fazer o que deseja. É limpo, confiável e seguro. Use um FreeBSD como desktop, eles suportam muitas GPUs, você pode usar o flash até certo ponto, há alguma compatibilidade com os binários do Linux. Você pode construir com segurança seu kernel personalizado (na verdade, isso é recomendado). No geral, é uma boa experiência de aprendizado. Experimente o NetBSD em hardware muito antigo ou até em torradeiras .

Embora sejam diferentes, cada um deles tenta ser um bom sistema operacional e combina mais com os usuários do que com as situações. Como uma experiência de aprendizado, experimente todos (Net / Open / Free), mas mais tarde você poderá usar apenas 1 na maioria das situações (já que possui mais conhecimento em um sistema específico ou se encaixa mais na comunidade).

Os outros BSDs são híbridos ou apenas versões ligeiramente modificadas, acho melhor ficar perto da fonte do desenvolvimento do software (use filtro de pacotes no OpenBSD, configure sua área de trabalho no FreeBSD, ...).

Como nota pessoal, fico feliz em ver um entusiasta como você, e espero que você encontre muitas coisas boas no mundo do BSD. O BSD não é sobre odiar janelas ou outros sistemas operacionais, é sobre gostar do Unix.

Aki
fonte
5
Rolando para baixo, eu tinha certeza de que era uma resposta de Gilles. Obrigado por uma ótima resposta embora Aki!
N0pe
2
@MaxMackie - Eu sei o que você quer dizer, eu estava pensando a mesma coisa! :-)
Chris Down
2
Haha, eu não sou muito ativo aqui, então não sei quem é Gilles, mas estou ansioso para ler sua resposta!
305 Aki
11
Um grande obrigado por uma ótima resposta! Gostei particularmente da última parte. Acabei de instalar o FreeBSD em uma máquina virtual. Vamos ver como vai ser ... #
1100 rahmu
6
+1 na última frase. Mas eu gostaria de poder +2 para o todo #
Shiplu Mokaddim
16

(Eu não posso dar uma resposta completa, mas também não posso me afastar desta questão, então ... vou abordar alguns pontos ... O FreeBSD foi o BSD mais usado (em 2005) , então tento para oferecer algumas dicas sobre "os outros".)

  • Primeiro de tudo, você está certo em descartar as explicações de uma linha , o lema do OpenBSD é "gratuito, funcional e seguro" e os desenvolvedores do NetBSD também se esforçam para criar um sistema funcional.
  • compatibilidade binária : aparentemente você pode executar binários do FreeBSD no NetBSD (o que eu nunca tentei). Esta é a única forma de compatibilidade binária entre os BSDs que eu conheço (além da compatibilidade binária Linux do NetBSD e do FreeBSD (limitada)).
  • ports : as portas do NetBSD e DragonFlyBSD usam pkgsrc, o OpenBSD está aqui , o FreeBSD está aqui . Você pode consultar isso para comparar os pacotes disponíveis. Os respectivos ecossistemas são semelhantes, mas não idênticos.
    • pkgsrcse destaca por ser feito para ser portátil, ou seja, você também pode usá-lo com o Minix 3 ou Linux. Portanto, não há interesse não-BSD e (talvez como conseqüência) há mais portas. pkgsrc-wipfacilita a contribuição.
  • O NetBSD introduziu recentemente uma Estrutura de Teste Automático completa (veja também kyua), permitindo que eles executem testes automatizados (e há rump, possibilitando que o código do kernel seja testado no espaço do usuário). Também tem o suporte XEN mais completo, eu acho. Partindo um pouco da busca pela "portabilidade", eles introduziram três níveis: "Focus", "Organic" e "Life Support" . Eles também introduziram Lua no sistema base.
  • Para entender o que é o OpenBSD , esses "documentos" (principalmente os slides agradáveis) são um recurso valioso e oferecem uma visão sobre os desenvolvimentos recentes do OpenBSD.
  • O DragonFlyBSD desenvolveu seu próprio concorrente do ZFS, o HAMMER , que aparentemente consome muito menos memória (provavelmente não é tão completo quanto os recursos, não sei).
  • Eu não concordo com @Aki sobre a falta de apoio com OpenBSD ou NetBSD, olhando para as listas de discussão, ambos oferecem comunidades votos - ter um olhar a si mesmo - sendo encaminhado para um manpage há ofensa.

Bottom line? Dê uma olhada e experimente. Usando pacotes binários (geralmente oferecidos com uma liberação binária, ou seja, não para instantâneos de -current), não é muito trabalho obter um sistema BSD utilizável.

Editar Você pode estar interessado em seus planetas: undeadly.orgpara OpenBSD, blogs.FreeBSDish.org para o FreeBSD e planet.netbsd.separa todos eles ( baixo ? No momento ())

sr_
fonte
5
Boa resposta. Acho que há muito a dizer, que mereceria escrever um artigo. Eu não quis dizer que a comunidade OpenBSD não é útil. Eu fiz algumas pesquisas sobre compatibilidade binária, há mais: netbsd.org/docs/compat.html e compat_linux no OpenBSD. Aparentemente, o Open costumava ter compatibilidade binária freebsd: nixdoc.net/man-pages/OpenBSD/man8/compat_freebsd.8.html . Como você afirmou, é limitado e eu não confiaria nisso.
003 Aki