GNU/Linux >> Tutoriales Linux >  >> Linux

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

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 las preguntas más difíciles.

GNU no es realmente un sistema operativo. Es más un conjunto de reglas o filosofías que rigen el software libre, que al mismo tiempo dio origen a un montón de herramientas al intentar crear un sistema operativo. Entonces, las herramientas GNU son básicamente versiones abiertas de herramientas que ya existían pero que se rehicieron para ajustarse a 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 "más antiguas" de POSIX que son varios niveles de "código cerrado". Unix suele ser de código totalmente cerrado, pero hay tantas versiones de Unix como Linux, si no más. Algunas personas generalmente no consideran que BSD sea "abierto", pero en realidad es mucho más abierto que cualquier otra cosa que haya existido. Sus licencias también se permiten para uso comercial con muchas menos restricciones que 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 herramientas GNU y muchas otras cosas.

La principal diferencia gobernante son los ideales. Unix, Linux y BSD tienen diferentes ideales que implementan. Todos son POSIX y 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 las lea, obtendrá una buena idea de las diferencias.

Este diagrama genealógico de Unix muestra claramente la historia de Unix, BSD, GNU y Linux (de Wikimedia):


Linux no es un sistema operativo, es un kernel. Linux por sí mismo no tiene un entorno de 'tierra de usuario' (sin aplicaciones, sin comandos, sin...etc...).

Si desea tener un sistema operativo completo, debe agregar un espacio de usuario a su kernel. Históricamente, para Linux, es GNU. Todas (?) las distribuciones de Linux no son distribuciones 'reales de Linux'. Son distribuciones GNU/Linux (GNU + Linux).

BSD es un sistema operativo completo 'similar a Unix', con su propio kernel y su propio espacio de usuario (sin kernel de Linux ni GNU).

GNU/Linux y la familia *BSD (FreeBSD, OpenBSD y NetBSD) son SO 'similares a Unix', 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


Linux
  1. ¿Cuál es la diferencia entre env y set (en Mac OS X o Linux)?

  2. ¿Cuál es la diferencia entre el búfer y la memoria caché en Linux?

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

  4. ¿Cuál es la diferencia entre un controlador de plataforma Linux y un controlador de dispositivo normal?

  5. ¿Cuál es la diferencia entre 'localizar' y 'buscar' en Linux?

¿Cuál es la diferencia entre los núcleos de macOS y Linux?

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

¿Cuál es la diferencia entre Rsync y BTRFS en Linux?

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

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

¿Cuál es la diferencia entre ls y l?