¿Cuál es la diferencia entre Unix, Linux, BSD y GNU? [cerrado]

27

¿Cuál es la diferencia fundamental entre Unix, Linux, BSD y GNU? Unix fue el primer sistema operativo, por lo que el término 'Me gusta en Unix' es comprensible, ya que tienen kernel, estructura del sistema de archivos, la mayoría de los comandos, usuarios, etc. son los mismos que Unix. ¿Aún por qué son diferentes? ¿Qué los hizo apartarse? ¿Es el núcleo?

Kapish M
fuente
2
Esta pregunta posiblemente sea respondida por la respuesta a ¿Se reescribieron todos los comandos de Unix en Linux? .
un CVn

Respuestas:

31

Esa es una pregunta difícil de responder.

Primero "Unix Like" o "* nix" generalmente significa POSIX. Todos los sistemas que enumeró son sistemas POSIX. POSIX es un conjunto de estándares para implementar.

Ahora para las preguntas más difíciles.

GNU no es realmente un sistema operativo. Es más un conjunto de reglas o filosofías que gobiernan el software libre, que al mismo tiempo dio origen a un montón de herramientas al intentar crear un sistema operativo. Por lo tanto, las herramientas GNU son básicamente versiones abiertas de herramientas que ya existían pero que se rehicieron para cumplir con los principios del software abierto. GNU / Linux es una malla de esas herramientas y el kernel de Linux para formar un sistema operativo completo, pero hay otros "GNU". GNU / Hurd por ejemplo.

Unix y BSD son implementaciones "antiguas" de POSIX que son varios niveles de "fuente cerrada". Unix suele ser de código totalmente cerrado, pero hay tantos sabores de Unix como Linux si no más. BSD no suele ser considerado "abierto" por algunas personas, pero en realidad es mucho más abierto que cualquier otra cosa que existiera. Su licencia también se permite para uso comercial con muchas menos restricciones, ya que se permiten las licencias más "abiertas".

Linux es el recién llegado. Estrictamente hablando, es "solo un núcleo", sin embargo, en general se considera un sistema operativo completo cuando se combina con GNU Tools y muchas otras cosas.

La principal diferencia de gobierno son los ideales. Unix, Linux y BSD tienen diferentes ideales que implementan. Todos son POSIX, y todos son básicamente intercambiables. Resuelven algunos de los mismos problemas de diferentes maneras. Entonces, aparte de los ideales y cómo eligen implementar los estándares POSIX, hay poca diferencia.

Para obtener más información, le sugiero que lea un breve artículo sobre la creación de GNU, OSS, Linux, BSD y UNIX. Se inclinarán hacia sus ideas individuales, pero cuando lo lea, obtendrá una buena idea de las diferencias.

Este diagrama de genealogía de Unix muestra claramente la historia de Unix, BSD, GNU y Linux ( de Wikimedia ):

Diagrama de genealogía de Unix

coteyr
fuente
nota: no todo es POSIX. por ejemplo, vea man unimplemented(IIRC, podría ser man security) en un sistema GNU / Linux.
strugee
Strugee es correcto. No son totalmente compatibles, pero están tratando de serlo. Sin embargo, no estoy seguro de cómo incluir eso en la respuesta. Unix-Like también es técnicamente diferente a POSIX, pero en general, cuando la gente dice Unix-Like, generalmente significa POSIX.
coteyr
1
Alguna información complementaria en estas preguntas y respuestas .
no, los desarrolladores del kernel de Linux nunca tienen la intención de cumplir con POSIX. Olvidé dónde leí esto (busqué en las páginas de manual pero no pude encontrarlo) pero hay ciertas llamadas al sistema que nunca se implementarán debido a consideraciones de seguridad.
strugee
Creo que GNU originalmente estaba destinado a ser un sistema operativo.
Faheem Mitha
14

Linux no es un sistema operativo, es un núcleo. Linux por sí mismo no tiene un entorno 'userland' (sin aplicaciones, sin comandos, no ... etc ...).

Si desea tener un sistema operativo completo, debe agregar una tierra de usuario a su núcleo. Históricamente, para Linux, es GNU. Todas las distribuciones de Linux (?) No son distribuciones de 'Linux real'. Son distribuciones GNU / Linux (GNU + Linux).

BSD es un sistema operativo completo 'similar a Unix', con su propio núcleo y su propio país de usuario (sin núcleo de Linux ni GNU).

GNU / Linux y la familia * BSD (FreeBSD, OpenBSD y NetBSD) son sistemas operativos 'unix-like', se comportan como Unix.

Aquí hay una comparación entre (GNU) / Linux y * BSD: http://www.freebsd.org/doc/en/articles/explaining-bsd/comparing-bsd-and-linux.html

dirtyvader
fuente
su enlace no funciona
Anthon
@Anthon está funcionando
Prvt_Yadav