GNU/Linux >> Tutoriales Linux >  >> Linux

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

… y ¿cuáles son las diferencias entre ellos? Formulé mi pregunta así 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 usuarios que tengan 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 nuevos unices, quiero probar uno nuevo y, naturalmente, siento curiosidad por los BSD.

El problema

No estoy pidiendo consejos u opiniones sobre qué BSD instalar; Quiero saber las diferencias (y los puntos en común) entre ellos para poder tomar mi propia decisión. El problema es que es difícil obtener 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 que sea cierto, pero no es realmente útil. Estoy seguro de que FreeBSD también es portátil y seguro...)

Si no tiene suerte, se verá atrapado en una de esas inevitables leyendas de Unix sobre proyectos que se dividen, bifurcan y cambian de marca por motivos intelectuales/morales, cómo Theo de Raadt es un extremista y cómo MacOS X y FreeBSD tuvieron un ancestro 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 entender 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 kernel?
  • ¿Utilizan las mismas herramientas de usuario? (¿Cuáles son las diferencias, si las hay?)
  • ¿Utilizan el mismo sistema de gestión de paquetes/fuentes?
  • ¿Utilizan el mismo shell predeterminado?
  • ¿Los binarios son portátiles entre ellos?
  • ¿Las fuentes son portátiles entre ellas?
  • ¿Usan diferentes árboles de directorios?
  • ¿Qué tamaño tienen sus respectivas comunidades? ¿Son del mismo orden de magnitud?
  • ¿Cuánto de la actual desarrollo es común?
  • ¿Cuáles son las principales incompatibilidades entre ellos?

No sé cuán fáciles son de responder esas preguntas y cuán relevante es realmente esta pregunta para el formato de StackExchange. Simplemente nunca encontré un documento simple que enumerara las diferencias entre los BSD de una manera clara, útil para que los usuarios bastante experimentados lo vean y tomen una decisión fácilmente.

Respuesta aceptada:

No creo que pueda brindarle 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 brindarle una perspectiva útil en el mundo BSD.
Nunca lo hice use NetBSD, no hablaré mucho al respecto.

¿Usan el mismo kernel?

No, aunque hay similitudes debido a las bifurcaciones históricas. Cada proyecto evolucionó por separado.

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

Todos siguen 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 empaquetado, diferente para cada sistema operativo.

¿Utilizan el mismo shell predeterminado?

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

¿Los binarios son portátiles entre ellos?

No:

([email protected] 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 una 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 ligado al sistema operativo), por ejemplo.

¿Usan diferentes árboles de directorios?

No, aquí son muy similares a Linux.
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 todos los terceros en /usr/local, mientras que la distribución de Linux hará lo que crea conveniente.
En general, se puede decir que *BSD es muy conservador al respecto, las cosas pertenecen a donde pertenecen, y eso no es algo para inventar.

¿Qué tamaño tienen sus respectivas comunidades? ¿Son del mismo orden de magnitud?

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

Relacionado:¿Por qué el siguiente comando está matando un sistema?

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 sobre nuevas mejoras, etc. Realmente no les gusta hacer publicidad o asistencia básica al usuario. . Esperan que todos sean usuarios avanzados de Unix y que puedan leer la documentación antes de preguntar nada.

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

Debido a que el código de licencias realmente libres 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 núcleo.

¿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 construirá y/o ejecutará fácilmente en todas las versiones de BSD, excepto si se acerca demasiado al núcleo (ifconfig, pfctl...).

Así es como puede disfrutar aprendiendo del mundo BSD:

Intente reemplazar el enrutador de su hogar con una caja openbsd, juegue con pf y la red. Verás lo fácil que es hacer lo que quieras. 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 con seguridad su núcleo personalizado (en realidad, esto es lo recomendado). En general, es una buena experiencia de aprendizaje.
Pruebe NetBSD en hardware muy antiguo o incluso en tostadoras.

Aunque son diferentes, cada uno de ellos intenta ser un buen sistema operativo y se adaptará a los usuarios más que a las situaciones. Como una experiencia de aprendizaje, pruébelos todos (Neto/Abierto/Gratis), pero luego puede encontrarse usando solo 1 para la mayoría de las situaciones (ya que tiene más conocimientos en un sistema específico o encaja más con la comunidad).

Los otros BSD son híbridos o solo versiones ligeramente modificadas, creo que es mejor permanecer cerca de la fuente del desarrollo del software (use el filtro de paquetes en OpenBSD, configure su escritorio en FreeBSD, …).

Relacionado:Linux:¿el valor apropiado de vm.swappiness cuando se usa zram?

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


Linux
  1. ¿Líneas comunes entre dos archivos?

  2. ¿Qué es diferente entre /bin/false y /sbin/nologin como shell del usuario nologin?

  3. ¿Cuáles son los tipos de servidores DNS?

  4. ¿Cuál es el propósito de cada uno de los diferentes UID que puede tener un proceso?

  5. ¿Cuál es la diferencia entre strtok_r y strtok_s en C?

¿Cuál es la diferencia entre InnoDB y MyISAM?

¿Cuál es la diferencia entre Linux y Unix?

¿Qué es un Hipervisor? ¿Cuál es la diferencia entre el tipo 1 y 2?

¿Cuál es la diferencia entre curl y Wget?

¿Puede un proceso tener un propietario? ¿Qué significa?

¿Cuál es la diferencia entre volver a montar y desmontar/montar?