¿Qué tienen en común los diferentes BSD?

62

... y cuáles son las diferencias entre ellos? Formulé mi pregunta de esta manera para dejar en claro que no estoy interesado en una guerra de opiniones, sino en una comparación objetiva entre los diferentes sabores de BSD Unix. Idealmente, podría recibir comentarios de los usuarios que tienen experiencia en todos ellos.

Antecedentes

Recientemente descubrí que hay mucho más en Unix que simplemente Linux. Uso Solaris en el trabajo, me abrió los ojos. Ahora estoy interesado en nuevas unidades, quiero probar una nueva y tengo curiosidad por los BSD.

El problema

No estoy pidiendo consejos u opiniones sobre qué BSD instalar ; Quiero saber las diferencias (y puntos comunes) entre ellos para poder decidirme. El problema es que es difícil obtener las comparaciones adecuadas entre ellos.

Si tienes suerte, obtienes una definición apresurada como esta:

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

(Puede ser cierto, pero no es realmente útil. Estoy seguro de que FreeBSD es portátil y seguro también ...)

Si tiene mala suerte, queda atrapado en una de esas inevitables leyendas de Unix sobre proyectos que se dividen, bifurcan, cambian de marca por razones intelectuales / morales, cómo Theo de Raadt es un extremista y cómo MacOS X y FreeBSD tuvieron un antepasado común hace más de 20 años.

Fascinante, pero no realmente informativo, ¿verdad?

Los BSD

Los BSD que me interesan son:

  • FreeBSD
  • OpenBSD
  • NetBSD

y opcionalmente

  • Libélula
  • Darwin
  • ...

Mis preguntas

Para comprender mejor las diferencias, aquí hay una lista de preguntas algo relacionadas sobre las diferentes distribuciones (¿podemos usar este término?). Si presentas tu respuesta bajo alguna forma de datos tabulares, ¡eres mi héroe de todos los tiempos!

  • ¿Usan el mismo núcleo?
  • ¿Utilizan las mismas herramientas de usuario? (¿Cuáles son las diferencias, si las hay?)
  • ¿Utilizan el mismo sistema de gestión de paquetes / fuentes?
  • ¿Usan el mismo shell predeterminado?
  • ¿Los binarios son portables entre ellos?
  • ¿Las fuentes son portátiles entre ellos?
  • ¿Utilizan diferentes árboles de directorio?
  • ¿Qué tan grandes son sus respectivas comunidades? ¿Son del mismo orden de magnitud?
  • ¿Cuánto del desarrollo actual es común?
  • ¿Cuáles son las principales incompatibilidades entre ellos?

No sé lo fácil que son responder esas preguntas y qué tan relevante para el formato StackExchange es realmente esta pregunta. Simplemente nunca encontré un documento simple que enumerara las diferencias entre los BSD de una manera clara, útil para que los usuarios con bastante experiencia lo vean y hagan una elección fácilmente.

rahmu
fuente
13
Esta es una gran pregunta, +1
n0pe
44
Estaba 100% seguro de que la tostadora era una broma ... embeddedarm.com/software/arm-netbsd-toaster.php
tkbx
jaja bueno, fue solo una demostración. Me gusta cómo el nivel de grabación parece estar por encima del 200% en la pantalla.
Aki

Respuestas:

50

No creo que les proporcione a usted y a todos la respuesta perfecta, sin embargo, al usar un sistema BSD todos los días para el trabajo, estoy seguro de que puedo brindarles una visión útil en el mundo BSD. Nunca utilicé NetBSD, no hablaré mucho sobre eso.

¿Usan el mismo núcleo?

No, aunque hay similitudes debido a los tenedores históricos. Cada proyecto evolucionó por separado.

¿Utilizan las mismas herramientas de usuario? (¿Cuáles son las diferencias, si las hay?)

Todos siguen a POSIX. Puede esperar que un conjunto de herramientas tenga la misma funcionalidad entre * BSD. También es común ver algunas diferencias obvias en las herramientas de gestión de procesos / redes dentro de los BSD.

¿Utilizan el mismo sistema de gestión de paquetes / fuentes?

Proporcionan un sistema de empaque, diferente para cada sistema operativo.

¿Usan el mismo shell predeterminado?

No, por ejemplo, FreeBSD usa csh, OpenBSD usa ksh.

¿Los binarios son portables entre ellos?

No:

(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

Realmente no admiten emulación binaria estable y rápida. No confíes en eso.

¿Las fuentes son portátiles entre ellos?

Algunos sí, siempre y cuando no use el código del kernel o el código libc (que está estrechamente vinculado al sistema operativo), por ejemplo.

¿Utilizan diferentes árboles de directorio?

No, son muy similares a Linux aquí. Sin embargo, FreeBSD recomienda el uso de / usr / local / etc para los archivos de configuración de software de terceros. OpenBSD pone todo en / etc ... Ponen a todos los terceros en / usr / local, mientras que la distribución de Linux hará lo que mejor les parezca. En general, puede decir que * BSD es muy conservador al respecto, las cosas pertenecen a donde pertenecen, y eso no es algo para compensar.

¿Qué tan grandes son sus respectivas comunidades? ¿Son del mismo orden de magnitud?

FreeBSD es el más grande y más activo, puedes acceder a él a través de muchos foros, listas de correo, canales de IRC y demás ... OpenBSD tiene una buena comunidad, pero en su mayoría visible a través de IRC y listas de correo.

En realidad, si cree que necesita una buena comunidad, FreeBSD es el camino a seguir. Las comunidades de NetBSD y OpenBSD se centran en el desarrollo, hablan de nuevas mejoras, etc. Realmente no les gusta hacer publicidad o soporte básico para el usuario. Esperan que todos sean usuarios avanzados de Unix y puedan leer la documentación antes de preguntar cualquier cosa.

¿Cuánto del desarrollo actual es común?

Debido a que el código de licencias realmente gratuito puede fluir entre los proyectos, OpenBSD a menudo parchea su código siguiendo a NetBSD (ya que sus fuentes tienen mucho en común), FreeBSD toma e integra el filtro de paquetes de OpenBSD, etc. Obviamente es más difícil cuando se trata de controladores y otros cosas del grano

¿Cuáles son las principales incompatibilidades entre ellos?

No son compatibles en forma binaria, pero en su mayoría son compatibles en sintaxis y código. Puede confiar en eso para lograr la portabilidad en su código. Se compilará o ejecutará fácilmente en todos los tipos de BSD, excepto si te acercas demasiado al núcleo (ifconfig, pfctl ...).

Así es como puedes disfrutar aprendiendo del mundo BSD:

Intente reemplazar su enrutador doméstico con una caja openbsd, juegue con pf y la red. Verás lo fácil que es hacer lo que quieres. Es limpio, confiable y seguro. Use un FreeBSD como escritorio, admiten muchas GPU, puede usar flash hasta cierto punto, hay cierta compatibilidad con los binarios de Linux. Puede construir de manera segura su kernel personalizado (en realidad, esto se recomienda). En general, es una buena experiencia de aprendizaje. Pruebe NetBSD en hardware muy antiguo o incluso tostadoras .

Aunque son diferentes, cada uno de ellos trata de ser un buen sistema operativo, y coincidirá con los usuarios más que las situaciones. Como experiencia de aprendizaje, pruébelos todos (Net / Open / Free), pero más tarde podría encontrarse usando solo 1 para la mayoría de las situaciones (ya que tiene más conocimiento en un sistema específico o encaja más con la comunidad).

Los otros BSD son híbridos o simplemente versiones ligeramente modificadas, me parece mejor estar cerca de la fuente del desarrollo del software (use el filtro de paquetes en OpenBSD, configure su escritorio en FreeBSD, ...).

Como nota personal, estoy feliz de ver a un entusiasta como tú, y espero que encuentres muchas cosas buenas en el mundo BSD. BSD no se trata de odiar Windows u otros sistemas operativos, se trata de que te guste Unix.

Aki
fuente
55
Al desplazarme hacia abajo, estaba seguro de que esta era una respuesta de Gilles. Gracias por una gran respuesta, Aki!
npe
2
@MaxMackie - ¡Sé lo que quieres decir, estaba pensando lo mismo! :-)
Chris Down
2
Jaja, no estoy realmente activo aquí, así que no sé quién es Gilles, ¡pero estoy ansioso por leer su respuesta!
Aki
1
¡Muchas gracias por una gran respuesta! Disfruté especialmente la última parte. Acabo de instalar FreeBSD en una máquina virtual. Vamos a ver cómo va ...
rahmu
66
+1 para la última oración. Pero desearía poder +2 para todo el conjunto
Shiplu Mokaddim
16

(No puedo dar una respuesta completa, pero tampoco puedo apartarme de esta pregunta, así que ... solo abordaré algunos puntos ... FreeBSD fue el BSD más utilizado (en 2005) , así que intento para ofrecer algunas pistas sobre "los otros".)

  • En primer lugar, tiene razón al descartar las explicaciones de una línea , el lema de OpenBSD es "gratuito, funcional y seguro" y los desarrolladores de NetBSD también se esfuerzan por crear un sistema funcional.
  • compatibilidad binaria : aparentemente puede ejecutar binarios de FreeBSD en NetBSD (que nunca he probado). Esta es la única forma de compatibilidad binaria entre los BSD que conozco (aparte de la compatibilidad binaria de Linux de NetBSD y FreeBSD (limitada)).
  • puertos : NetBSD y DragonFlyBSD usan puertos pkgsrc, OpenBSD están aquí , FreeBSD están aquí . Puede referirse a eso para comparar los paquetes disponibles. Los ecosistemas respectivos son similares pero no idénticos.
    • pkgsrcdestaca porque está hecho para ser portátil, es decir, también puede usarlo con Minix 3 o Linux. Por lo tanto, no hay interés de BSD en él y (tal vez como consecuencia) hay más puertos. pkgsrc-wiphace que sea fácil contribuir.
  • NetBSD introdujo recientemente un completo Marco de pruebas automáticas (ver también kyua) que les permite ejecutar pruebas automáticas (y hay rump, haciendo posible que se pruebe el código del kernel en el espacio de usuario). También tiene el soporte XEN más completo, creo. Partiendo un poco de la búsqueda de "portabilidad", introdujeron tres niveles: "Enfoque", "Orgánico" y "Soporte vital" . También introdujeron Lua en el sistema base.
  • Para captar la deriva de OpenBSD , estos "documentos" (en su mayoría buenas diapositivas) son un recurso valioso y le brindan una idea de los desarrollos recientes en OpenBSD.
  • DragonFlyBSD desarrolló su propio contendiente de ZFS, HAMMER , que aparentemente consume mucha menos memoria (probablemente no sea tan completo, no puedo decirlo).
  • No estoy de acuerdo con @Aki en la falta de apoyo en OpenBSD o NetBSD, mirando a las listas de correo, tanto ofrecer a las comunidades votos - han un vistazo a ti mismo - se hace referencia a una página de manual no es una ofensa.

¿Línea de fondo? Echa un vistazo y pruébalos. El uso de paquetes binarios (generalmente ofrecidos con un lanzamiento binario, es decir, no para instantáneas -current), no es mucho trabajo obtener un sistema BSD utilizable.

Editar Puede que le interesen sus planetas: undeadly.orgpara OpenBSD, blogss.FreeBSDish.org para FreeBSD y planet.netbsd.separa todos ellos ( abajo en este momento (?))

sr_
fuente
55
Buena respuesta. Creo que hay mucho que contar, merecería escribir un artículo. No quise decir que la comunidad OpenBSD no es útil. Investigué un poco sobre la compatibilidad binaria, hay más: netbsd.org/docs/compat.html y compat_linux en OpenBSD. Aparentemente, Open solía tener compatibilidad binaria freebsd: nixdoc.net/man-pages/OpenBSD/man8/compat_freebsd.8.html . Como dijiste, es limitado y no confiaría en ello.
Aki