Sigo leyendo esta oración:
Linux es un sistema similar a Unix, pero no es Unix.
No sé cuál es la verdadera diferencia entre los dos. Sé que Linux obtuvo muchas ideas de Unix y las licencias de los dos son diferentes. Aparte de eso, como no soy un experto en ninguno de ellos, quiero saber si hay diferencias básicas entre ellos en el diseño u otros aspectos significativos.
linux
operating-systems
unix
Gnijuohz
fuente
fuente
Respuestas:
Un sistema "similar a Unix" puede cumplir totalmente con la especificación UNIX única , el nombre colectivo de los estándares para lo que califica como sistema Unix, pero al mismo tiempo Unix es una marca registrada de The Open Group y los proveedores de sistemas similares a Unix necesitan para registrar sus sistemas para calificar oficialmente como Unix. Actualmente los sistemas UNIX 03 registrados son:
Los proveedores de sistemas de código abierto tipo Unix (principalmente Linux y FreeBSD) generalmente no se registran en The Open Group, ya sea para evitar los costos de certificación o, bueno, porque no encuentran mucho valor al hacerlo. En teoría, es completamente posible que un sistema similar a Unix sea técnicamente Unix, y todo lo que falta es la certificación.
La Fundación Linux, por otro lado, creó Linux Standard Base , un estándar ISO , en un esfuerzo por estandarizar Linux. El cumplimiento de POSIX está en el corazón tanto del SUS como del LSB, manteniendo de alguna manera el enlace entre Unix y Linux.
Los sistemas similares a Unix y Unix tienden a ser más similares que diferentes, en teoría todos los sabores populares de Unix, registrados o no, son compatibles con POSIX (completos o en su mayoría), por lo que comparten una interfaz de programación central, shells y utilidades (y muchos otros cosas). IEEE y The Open Group mantienen una copia disponible gratuitamente de la última versión, POSIX.1-2008 , donde puede encontrar más información sobre lo que significa realmente el cumplimiento de POSIX.
Ahora, aparte de las razones legales y técnicas, Linux heredó el mantra "no Unix" de su asociación con GNU , un sistema operativo similar a Unix iniciado por Richard Stallman. GNU significa "GNU's not Unix", ya que las intenciones de Stallman eran construir un sistema compatible con Unix que fuera gratuito, y para hacerlo no debería contener ningún código Unix, ya que Unix es propietario.
Los primeros desarrolladores de Linux comenzaron a portar herramientas GNU a Linux, y el sistema resultante se denominó GNU / Linux ya en 1992 . Existe una controversia duradera sobre si Linux debe ser referido como Linux o GNU / Linux (ya que incorpora varias partes de GNU), pero eso es irrelevante para su pregunta, lo relevante es que "no Unix" puede referirse a la asociación con GNU y tiene poco que ver con su diseño, dependiendo del contexto.
El artículo "Historia de Linux" en Wikipedia explica los orígenes de Linux y su relación con Unix (a través de Minix y GNU) con cierto detalle, y también debe tomarse un tiempo para leer las referencias del artículo, si está interesado en aprendiendo más.
fuente
UNIX es una familia de sistemas operativos y hoy en día UNIX es más una marca propiedad de The Open Group. Para que un sistema operativo tenga la marca UNIX, debe someterse a una prueba de conformidad, y para Linux esto significaría que cada distribución (Ubuntu, Debian, Fedora, Red Hat, etc.) debería someterse por separado a esta prueba de conformidad para cada versión. . Esta es una de las principales razones por las que Linux es un sistema tipo Unix y no UNIX.
Esta prueba que mencioné es para garantizar el cumplimiento del sistema operativo con la especificación Single Unix, que actualmente se encuentra en la versión 4 SUSv4 (especificación Single Unix versión 4). Esta especificación define un conjunto de API que deben estar disponibles para las aplicaciones para que un sistema esté calificado para el nombre UNIX.
fuente
Las respuestas existentes ya mencionan algunas de las diferencias que está buscando. Sin ser el experto en kernel de Linux, también agregaría que muchas de las diferencias de diseño / implementación entre GNU / Linux y los diversos Unices están cubiertas en la serie de patrones de diseño de kernel de Linux .
fuente
"UNIX" es algo complicado de precisar. En términos de conformidad con los estándares, tanto Solaris como Mac OS X son UNIX "oficialmente", pero no tiene que pasar mucho tiempo antes de encontrar diferencias bastante grandes entre los dos. Hay un gran diagrama que documenta el lanzamiento de varios tipos de sistemas operativos UNIX o similares a UNIX y cómo se influenciaron y divergieron entre sí.
En el gran esquema de cosas que se ven, caminan y graznan como UNIX, un sistema Linux [*] es uno de los lanzamientos más convencionales. Es bastante común que la gente se refiera a Unices o * nix y signifique "cualquier cosa similar a UNIX", que probablemente incluye Linux. Sin embargo, UNIX es una marca registrada con limitaciones sobre cómo puede aplicarse comercialmente; ninguna distribución de Linux se ajusta a esas limitaciones.
[*] Debido a que esta pregunta invita a un nivel de división semántica, creo que es un tema en este caso señalar que Linux en sí mismo es solo un núcleo en el que se puede construir un sistema operativo. Es común construir un sistema similar a UNIX sobre Linux, que es para lo que fue diseñado, y ese sistema generalmente se construye a partir de componentes del proyecto GNU. En la respuesta anterior, "Linux" podría leerse como una abreviatura de "un sistema operativo que incorpora el kernel de Linux".
fuente
Una vez leí que Linux es lo que obtienes cuando tomas un desarrollador de PC y le pides que escriba un sistema operativo Unix, mientras que FreeBSD es lo que obtienes cuando tomas un desarrollador de Unix y le pides que haga un sistema operativo de PC ... no ' ¡No olvide los BSD en su comparación!
Las diferencias están principalmente en el Kernel ya que las aplicaciones de espacio de usuario (incluidas cosas como ls) son parte del proyecto GNU. Esto significa que Unix, FreeBSD y Linux parecen ser casi lo mismo.
Sin embargo, hay diferencias una vez que miras de cerca. El diseño del directorio será diferente (pero muchas distribuciones de Linux usan sus propios diseños en su mayoría compatibles pero aún diferentes), los sistemas de archivos son diferentes (Unix usa UFS, FreeBSD usa FFS, Linux usa Ext3 para ser simplista, todos pueden usar puertos de FS comunes, por ejemplo, ZFS)
Luego hay diferencias en las API principales, Linux le dará la API de inotify para informarle cuándo cambian los archivos, Mac OSX le ofrece FSEvents y FreeBSD le proporciona kqueue .
Por lo tanto, pueden considerarse la misma familia: compare un sistema Windows con herramientas GNU portadas con un sistema Linux con las mismas herramientas. Solo aparecerán superficialmente igual, pero un sistema Unix o FreeBSD seguirá siendo comparable. De un vistazo más de cerca, encontrará que la transferencia de aplicaciones entre FreeBSD, Unix y Linux es relativamente fácil en comparación con la transferencia a sistemas operativos alternativos como Windows.
fuente
Unix ya no es un solo sistema operativo. Solía ser una implementación de Bell Labs / AT&T, pero ahora es un estándar.
Técnicamente, Linux es solo un núcleo. Este núcleo se puede encontrar en sistemas operativos que no son de Unix, siendo el más popular Android. Por otro lado, hay muchos sistemas operativos basados en Linux que son similares a Unix. La mayoría (si no todos) de ellos están utilizando las bibliotecas y utilidades Gnu. Esta combinación proporciona distribuciones de Linux a la API de Unix y el cumplimiento (o incumplimiento) de los estándares.
El estándar Unix no requiere un sistema compatible para ser propietario o tener una licencia en particular. Los BSD, OpenSolaris / Illumos, darwin son ejemplos de implementaciones de Unix que aún no son Linux.
Los sistemas compatibles generalmente son, pero no siempre, una mezcla de componentes de código abierto y propietario, mientras que Gnu / Linux puede ser de código abierto o también incluir cosas de propietario.
En lo que respecta al cumplimiento de Unix, no hay muchas diferencias. La mayoría de las distribuciones de Linux y las implementaciones de Unix comparten el mismo conjunto de comandos utilizando el mismo conjunto de opciones. Sin embargo, encontrará muchas extensiones de los comandos estándar, especialmente en el lado de Gnu donde se llaman Gnuisms, y numerosos comandos que no están definidos por los estándares en primer lugar (compiladores, comandos administrativos, instalación, empaquetado, entorno gráfico). Esta es un área donde puedes encontrar mucha divergencia, incompatibilidades y, a veces, guerras santas.
El modelo de desarrollo Gnu / Linux generalmente se considera más "orgánico" y "bazar", mientras que otros sistemas similares a Unix son más "diseñados" y "catedral". Dependiendo de los subsistemas, la diferencia no es tan clara y depende de las personas y / o empresas que los respaldan.
fuente
Linux viene con muchas herramientas como:
Sin embargo, la mayoría de los sistemas operativos UNIX se consideran como un sistema operativo completo, ya que todo proviene de una única fuente o proveedor.
Algunas cosas que comparten:
fuente
En realidad no, Linux era una ingeniería inversa improvisada de Unix después de todo, por lo que el diseño del núcleo siguió la filosofía de Ken Thompson. La forma de Linux parece ser imitar la filosofía de Unix lo más cerca posible sin nunca agobiarse con el pensamiento original.
fuente