O que diferentes BSDs têm em comum?

56

... e quais são as diferenças entre eles? Eu formulei minha pergunta assim para deixar claro que não estou interessado em um flamewar de opiniões, e sim 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.

Plano de fundo

Eu descobri recentemente que há muito mais no Unix do que apenas Linux. Eu uso o Solaris no trabalho, ele abriu meus olhos. Agora estou interessado em novos unices, quero experimentar um novo e estou naturalmente curioso sobre BSDs.

O problema

Eu não estou pedindo conselhos ou opiniões sobre o que o BSD deve instalar ; Eu quero saber as diferenças (e pontos comuns) entre eles para que eu possa decidir. O problema é que é difícil conseguir comparações adequadas entre eles.

Se você tiver sorte, terá uma definição precipitada 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 de que o FreeBSD é portátil e seguro também ...)

Se você é azarado, você é pego em uma dessas inevitáveis lendas do Unix sobre projetos dividindo, forjando, rebranding de motivos intelectuais / morais, como Theo de Raadt é um extremista e como o MacOS X e o FreeBSD tinham um ancestral comum acima de 20 anos atrás.

Fascinante, mas não realmente informativo, é?

Os BSDs

Os BSDs que me interessam são:

  • FreeBSD
  • OpenBSD
  • NetBSD

e, opcionalmente,

  • Libélula
  • Darwin
  • ...

Minhas perguntas

Para entender melhor as diferenças, aqui está uma lista de perguntas relacionadas sobre as diferentes distribuições (podemos usar este 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 de usuário? (quais são as diferenças, se houver alguma?)
  • 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áveis entre elas?
  • Eles usam árvores de diretórios 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?

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

    
por rahmu 03.02.2012 / 13:25

2 respostas

48

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

Do they use the same kernel?

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

Do they use the same userland tools? (what are the differences, if any?)

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 dentro dos BSDs.

Do they use the same package/source management system?

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

Do they use the same default shell?

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

Are binaries portable between them?

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 não suportam emulação binária estável e rápida. Não confie nisso.

Are sources portable between them?

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

Do they use different directory trees?

Não, eles são muito parecidos com o 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 do Linux fará o que eles acharem melhor. Em geral, você pode dizer que * BSD são muito conservadores sobre isso, as coisas pertencem onde eles pertencem, e isso não é algo para se fazer.

How big are their respective communities? Are they the same order of magnitude?

O FreeBSD é o maior e mais ativo, você pode alcançá-lo através de vários fóruns diferentes, listas de discussão, canais de IRC e ... O OpenBSD tem uma boa comunidade, mas principalmente visível através do IRC e das listas de discussão.

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

How much of the current development is common?

Devido ao código de licença realmente livre fluir entre os projetos, o OpenBSD frequentemente corrige seu código seguindo o NetBSD (já que suas fontes têm muito em comum), FreeBSD pega e integra o Filtro de Pacotes do OpenBSD, etc. É obviamente mais difícil quando se trata de drivers e outras coisas do kernel.

What are the main incompatibilities between them?

Eles não são compatíveis em uma forma binária, mas são compatíveis na sintaxe e no código. Você pode confiar nisso para conseguir portabilidade em seu código. Ele irá construir ou executar facilmente em todos os tipos de BSD, exceto se você estiver muito próximo do kernel (ifconfig, pfctl ...).

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

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

Embora sejam diferentes, cada um deles tenta ser um bom sistema operacional, e isso irá corresponder mais aos usuários do que às situações. Como uma experiência de aprendizado, experimente todas (Net / Open / Free), mas depois você pode se encontrar usando apenas 1 para a maioria das situações (já que você é mais conhecedor de um sistema específico ou se encaixa mais com a comunidade). p>

Os outros BSDs são versões híbridas ou apenas ligeiramente modificadas, acho melhor ficar perto da fonte do desenvolvimento de software (usar filtro de pacotes no OpenBSD, configurar você mesmo 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 BSD. O BSD não é sobre odiar janelas ou outros sistemas operacionais, é sobre gostar do Unix.

    
por 03.02.2012 / 15:54
16

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

  • Antes de tudo, você está certo em descartar as explicações de uma linha , o lema do OpenBSD é "livre, funcional e seguro" e os desenvolvedores do NetBSD também se esforçam para criar um sistema funcional.
  • compatibilidade binária : Você pode aparentemente executar binários do FreeBSD no NetBSD (que eu nunca tentei). Esta é a única forma de compatibilidade binária entre os BSDs que conheço (além da compatibilidade binária Linux do NetBSD e do FreeBSD (limitada)).
  • ports : Portas do NetBSD e do DragonFlyBSD usam pkgsrc , o OpenBSD é aqui , o aqui do do FreeBSD. Você pode consultar isso para comparar os pacotes disponíveis. Os respectivos ecossistemas são semelhantes, mas não idênticos.
    • pkgsrc se destaca por ser portátil, ou seja, você também pode usá-lo com o Minix 3 ou o Linux. Portanto, há interesse não-BSD nele e (talvez como consequência) há mais portas. pkgsrc-wip facilita 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 , tornando possível testar o código do kernel no userspace). Ele também tem o melhor suporte ao XEN, eu acho. Partindo um pouco da missão "portabilidade", eles introduziram três níveis: "Focus", "Organic" e "Life Support" . Eles também introduziram Lua no sistema básico.
  • Para entender o OpenBSD , estes "papers" (slides em sua maioria legais) são um valioso recurso e dar-lhe uma visão sobre desenvolvimentos recentes no OpenBSD.
  • O DragonFlyBSD desenvolveu o seu próprio ZFS-contender, HAMMER , que aparentemente tem muito menos fome de memória ( provavelmente não como um recurso completo, não sei dizer).
  • Eu não concordo com o @Aki na falta de suporte com o OpenBSD ou o NetBSD, olhando para as listas de discussão, ambos oferecem comunidades úteis - têm uma aparência você mesmo - sendo encaminhado para uma manpage não é ofensa.

Linha de fundo? Dê uma olhada e experimente. Usando pacotes binários (geralmente oferecidos com uma versão binária, isto é, não para snapshots de -current ), não é muito trabalhoso obter um sistema BSD utilizável.

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

    
por 03.02.2012 / 16:41