Diferencia conceptual entre Linux y el kernel BSD (gratuito)

19

(Ya me di cuenta de que esta pregunta se hizo antes, pero creo que no se ha respondido de una manera que me gustaría entender el tema).

¿Cuáles son las diferencias conceptuales y estructurales entre un

  • Kernel de Linux
  • BSD Kernel (digamos FreeBSD)

Si bien al final del día ambos son núcleos, supongo que puede haber diferencias en la estructura, la funcionalidad y la especialización. ¿En qué escenarios un tipo de kernel tendría una ventaja sobre el otro? (Servidor web, base de datos, informática, etc.)

¿Hay algún esfuerzo conjunto para concentrar fuerzas para un núcleo común o ciertos módulos o eso sería inútil de todos modos?

PD: diferentes tipos de licencia o enfoques de envío / empaque / mantenimiento no son importantes en este contexto. Estoy realmente interesado en comprender cómo difieren en el nivel estructural, funcional / de características y especialización.

anomalía binaria
fuente
¿Hay algún esfuerzo conjunto para concentrar fuerzas para un núcleo común o ciertos módulos o eso sería inútil de todos modos? Mi primer pensamiento es: ¿qué punto podría tener eso ... para crear un tercer núcleo "basado completamente en una mezcla de Linux y FreeBSD"?
Ricitos de oro
No, para nada, más bien al revés: establezca una cooperación para partes que sean iguales para ambos. Creo que para ciertos controladores este ya es el caso si no me equivoco.
binaryanomaly
1
@binaryanomaly: las diferentes licencias son muy importantes para ambas partes. Hasta cierto punto, incluso eso podría llamarse una ideología a ambos lados del pasillo. Por ejemplo, GCC solía ser un punto doloroso en los BSD y FreeBSD ahora cambió a Clang como predeterminado por esta misma razón: problemas de licencia.
0xC0000022L
1
@ 0xC0000022L: Ciertamente tienes razón y no quería decir que las preguntas sobre licencias no son importantes, solo quería que no se convirtiera en el foco principal de esta discusión en particular.
binaryanomaly
Realmente @goldilocks, no puedes ver el beneficio de una tercera cosa que no es demasiado linuxy ni demasiado BSDish, pero ¿ verdad ?
Josh Rumbut

Respuestas:

22

1. ¿Cuáles son las diferencias conceptuales y estructurales entre un núcleo Linux y un núcleo BSD?

Con respecto a la arquitectura y las estructuras internas, por supuesto, hay diferencias en cómo se hacen las cosas (es decir: lvm vs geom , función de cárcel temprana y compleja para FreeBSD, ...), pero en general no hay muchas diferencias entre los dos:

  • El kernel BSD * y el kernel de Linux han evolucionado de un enfoque puramente monolítico a algo híbrido / modular.

Aún así, hay diferencias fundamentales en su enfoque e historia:

  • BSD-kernel está usando una licencia BSD y Linux-kernel está usando licencias GPL .
  • Los núcleos BSD no son núcleos independientes, sino que se desarrollan como parte de un todo . Por supuesto, este es simplemente un punto de vista filosófico y no técnico, pero esto le da coherencia al sistema .
  • BSD-kernel se desarrolla con un punto de vista más conservador y más preocupación por mantenerse coherente con su enfoque que tener características sofisticadas.
  • El kernel de Linux tiene más que ver con controladores, características, ... (cuanto más, mejor).

Como se dijo en otro lugar :

Es Diseño inteligente y orden (BSD *) versus selección natural y caos (GNU / Linux).

2. ¿En qué escenarios un tipo de kernel tendría una ventaja sobre el otro?

Acerca de su estructura y concepto general, mientras comparan un kernel Linux casi vainilla y un kernel FreeBSD, son más o menos del mismo nivel de uso general , es decir, sin especialización particular (no en tiempo real, no muy paralelo, no orientado al juego, no incrustado, ...).

Por supuesto, hay algunas diferencias aquí y allá, como el soporte nativo de ZFS o la arquitectura geom para FreeBSD frente a los muchos controladores o varios sistemas de archivos para Linux. Pero nada de lo que un software general, como servidores web o bases de datos, realmente usaría para hacer una diferencia real. Las comparaciones en estos casos probablemente terminarían en una batalla de sintonía entre los dos, nada importante.

Pero, algunos argumentarán que OpenBSD tiene un enfoque profundo y consistente de seguridad, mientras que las distribuciones de Linux reforzadas son versiones "simplemente" modificadas del núcleo Linux de vainilla. Esto podría ser cierto para un sistema tan altamente especializado, ya que Steam-OS sería el número uno para jugar.

3. ¿Existen esfuerzos conjuntos para concentrar fuerzas para un núcleo común o ciertos módulos?

No hay un esfuerzo conjunto para concentrar fuerzas para un núcleo común, ya que existen problemas importantes de licencias, filosóficos o de enfoque.

Si existen algunos esfuerzos comunes reales como OpenZFS , la mayoría de las veces se trata más de controladores y conceptos tomados o inspirados unos de otros.

Ouki
fuente
Las generalizaciones simplistas sobre los BSD generalmente son incorrectas. Tenga en cuenta aquí, por ejemplo, que DragonFly BSD existe porque ser conservador no es una generalización que se puede aplicar al mundo BSD.
JdeBP
5

Respuesta parcial que aborda algunos de los puntos.

Las muchas opciones a menudo se perciben como algo malo cuando en el exterior se busca el desarrollo de código abierto, pero piense en ello como en la naturaleza, hay muchas especies (a menudo) de un tipo de animal, dicen los pingüinos. Hay 17 . Cada uno está especializado para un conjunto particular de requisitos, también lo es con proyectos de código abierto (típicamente). La selección natural se encargará de eliminar el código abierto que es menos apto con el tiempo.

¿Hay algún esfuerzo conjunto para concentrar fuerzas para un núcleo común o ciertos módulos o eso sería inútil de todos modos?

Sería un poco inútil, a veces es una duplicación de esfuerzo, pero las personas que trabajan en estos componentes tampoco lo hacen en el vacío. Examinarán qué están haciendo los demás y, si hay un enfoque o algoritmo, lo incorporarán cuando tenga sentido hacerlo.

No puedo hablar de las diferencias de estructura con respecto a sus otras viñetas, pero pensé que al menos abordaría 2 de ellas.

slm
fuente
Ciertamente tienes un punto allí con especialización. Por otro lado, también apostaría a que el ADN de los pingüinos es en un porcentaje muy alto exactamente el mismo (como para los simios y los humanos) y solo difiere en áreas pequeñas. La naturaleza es bastante buena para evitar esfuerzos redundantes, pero se diferencia solo cuando y donde se necesita. Miles de millones de iteraciones naturales (reproducción) deciden entonces (selección) cuál de los patrones se adapta mejor a las condiciones ambientales dadas. (Se está
volviendo
@binaryanomaly: ese es el problema con las analogías 8-). Probablemente no lo llevaría a ese nivel ya que la correlación de los lenguajes / código de programación es más difícil de correlacionar con el ADN.
slm
Buena respuesta y una buena comparación usando pingüinos. A menudo olvidamos que la duplicación de esfuerzos no siempre es mala y que una bifurcación de un proyecto no siempre es el final. Es realmente más un proceso evolutivo, que tiene que suceder y podría crear nuevas ideas o fallar miserablemente.
Raphael Ahrens