Diferença conceitual entre o Linux e o kernel BSD (Free)

16

(Eu já notei que esta pergunta foi feita antes, mas acho que não foi respondida de uma maneira que eu gostaria de entender o tópico.)

Quais são as diferenças conceituais e estruturais entre um

  • Kernel do Linux
  • Kernel BSD (digamos que o FreeBSD)

Enquanto no final do dia eles são ambos kernels - eu diria que pode haver diferenças na estrutura, funcionalidade e especialização. Em quais cenários um tipo de kernel teria vantagem sobre o outro? (Servidor Web, Banco de Dados, Computação, etc.)

Existe algum esforço conjunto para concentrar forças em um kernel comum ou em certos módulos ou isso seria inútil?

PS: Diferentes tipos de licenças ou abordagens de envio / empacotamento / manutenção não são importantes neste contexto. Estou realmente interessado em entender como eles diferem em nível estrutural, funcional / de recursos e especialização.

    
por binaryanomaly 02.05.2014 / 13:07

2 respostas

21

1. Quais são as diferenças conceituais e estruturais entre um kernel Linux e um kernel BSD?

Em relação à arquitetura e estruturas internas, há diferenças sobre como as coisas são feitas (por exemplo: lvm vs geom , precária e complexa cadeia recurso para o FreeBSD, ...), mas no geral não há muita diferença entre os dois:

    O kernel BSD * e o kernel Linux evoluíram de uma abordagem puramente monolítica para algo híbrido / modular.

Ainda assim, existem diferenças fundamentais em sua abordagem e história:

  • O BSD-kernel está usando a licença BSD e o Linux-kernel está usando licenças GPL .
  • O BSD-kernel não é um kernel independente, mas é desenvolvido como sendo parte de um todo . Claro, isso é meramente um ponto de vista filosófico e não técnico, mas isso dá coerência ao sistema .
  • O BSD-kernel é desenvolvido com um ponto de vista mais conservador e mais preocupação em permanecer consistente com sua abordagem do que ter recursos sofisticados.
  • Linux-kernel são mais sobre drivers, recursos, ... (quanto mais, melhor).

Quanto maior declarado em outro lugar :

It is Intelligent Design and Order (BSD*) versus Natural Selection and Chaos (GNU/Linux).

2. Em quais cenários um tipo de kernel teria uma vantagem sobre o outro?

Sobre sua estrutura geral e conceito, enquanto compara um kernel Linux quase baunilha e um kernel do FreeBSD, eles são mais ou menos do mesmo nível de uso geral , ou seja, sem especialização particular ( não em tempo real, não altamente paralelo, não orientado para jogos, não incorporado, ...).

É claro que existem algumas diferenças aqui e ali, como o suporte nativo ao ZFS ou a arquitetura geométrica do FreeBSD versus muitos drivers ou vários sistemas de arquivos para Linux. Mas nada que algum software geral, como servidores ou bancos de dados, realmente usaria para fazer uma diferença real. Comparações nesses casos provavelmente acabariam em alguma batalha de afinação entre os dois, nada maior.

Mas, alguns argumentam que o OpenBSD tem uma abordagem profunda e consistente para a segurança, enquanto as distribuições Linux reforçadas são "apenas" versões modificadas do kernel Linux. Isso pode ser verdade para um sistema altamente especializado, já que o Steam-OS é o número um para jogar.

3. Há algum esforço conjunto para concentrar forças para um kernel comum ou certos módulos?

Não há nenhum esforço conjunto para concentrar forças para um núcleo comum, pois há grandes licenças, questões filosóficas ou de abordagem.

Se existirem verdadeiros esforços comuns, tais como OpenZFS , na maioria das vezes é mais sobre drivers e conceitos tomados ou inspirados um do outro.

    
por 03.05.2014 / 03:21
5

Resposta parcial que aborda alguns dos pontos

As muitas opções são frequentemente percebidas como algo ruim quando, do lado de fora, examinamos o desenvolvimento de código aberto, mas pensamos que, como na natureza, existem muitas espécies (frequentemente) de um tipo de animal, digamos pinguins. Existem 17 . Cada um é especializado em um conjunto específico de requisitos, assim também em projetos de código aberto (normalmente). A seleção natural cuidará de eliminar o código aberto que é menos adequado ao longo do tempo.

Are there any joint efforts to concentrate forces for one common kernel or certain modules or would that be pointless anyway?

Seria meio inútil, é uma duplicação de esforço às vezes, mas as pessoas que trabalham nesses componentes não estão fazendo isso no vácuo também. Eles vão olhar em volta para o que os outros estão fazendo e se houver uma abordagem ou algoritmo, eles o incorporarão quando fizer sentido.

Eu não posso falar sobre as diferenças de estrutura em relação às suas outras balas, mas pensei em pelo menos abordar 2 delas.

    
por 02.05.2014 / 14:57