¿Qué es UNIX?
Respuesta corta: UNIX es una especificación / estándar hoy en día.
Al momento de escribir, para citar las fuentes oficiales , "UNIX® es una marca registrada de The Open Group", la compañía que entre muchas cosas proporciona la certificación UNIX :
"UNIX®, un estándar abierto propiedad y administrado por The Open Group, es un habilitador de tecnologías clave y ofrece un costo total de propiedad reducido, mayor agilidad, estabilidad e interoperabilidad de TI en entornos heterogéneos que permiten la innovación empresarial y de mercado en todo el mundo ".
La misma página establece específicamente qué especificación define UNIX:
La última versión del estándar de certificación es UNIX V7, alineada con la Especificación UNIX Única Versión 4, Edición 2013
Los detalles de esas especificaciones se pueden encontrar aquí . Curiosamente, el último estándar enumerado en su sitio web es UNIX 03, y para citar otra fuente , "UNIX® 03: la marca para los sistemas que se ajustan a la versión 3 de la Especificación Single UNIX".
Para citar la página Acerca de nosotros con mi propio énfasis en negrita:
El éxito del enfoque UNIX condujo a una gran cantidad de sistemas operativos "similares", a menudo divergentes en compatibilidad e interoperabilidad. Para abordar esto, los proveedores y usuarios se unieron en la década de 1980 para crear el estándar POSIX® y más tarde la Especificación UNIX Única .
Entonces, lo que esto sugiere (o al menos es mi interpretación) es que cuando un sistema operativo se ajusta al estándar POSIX y a las especificaciones de UNIX único, es compatible en el comportamiento con Unix como sistema operativo que alguna vez existió en un momento de la historia. Tenga en cuenta que esto no menciona la presencia de ningún rastro del código fuente original de Unix, ni menciona el núcleo de ninguna manera (esto será importante más adelante).
En cuanto al AT&T y System V Unix desarrollado por Ritchie y Thompson, hoy en día podemos decir que ha dejado de existir. Basado en las fuentes anteriores, parece que UNIX hoy en día no es ese sistema operativo específico, sino más bien un estándar derivado de la mejor generalización posible sobre cómo se comportan los sistemas operativos en la familia Unix .
¿Dónde se encuentra macOS X en el mundo * nix?
En una definición muy específica, macOS versión 10.13 High Sierra en hardware basado en Intel cumple con el estándar UNIX 03 y, para citar el certificado pdf , "Apple Inc. ha firmado un Acuerdo de licencia de marca comercial con X / Open Company Limited". Nota al margen: dudo en preguntar qué significaría que se trate macOS 10.13 en hardware que no sea Intel, pero teniendo en cuenta que el hardware se menciona para otro sistema operativo, el hardware es significativo. Ejemplo: "Hewlett Packard Enterprise: HP-UX 11i V3 versión B.11.31 o posterior en servidores HP 9000 con arquitectura de precisión" (desde la página de registro ).
Volvamos a la sección anterior de mi respuesta. Dado que esta versión particular del sistema operativo se ajusta al estándar de interoperabilidad y compatibilidad, significa que el sistema operativo tiene el comportamiento y la implementación del sistema más cercanos posible al Unix original como sistema operativo. Por lo menos, será cercano en comportamiento y en ambiente. Cuanto más se acerque al nivel del sistema y al nivel del kernel, más específica y sombreada será el área, pero al menos la mecánica y el comportamiento fundamentales que estaban presentes en Unix deberían estar presentes en un sistema operativo que pretende ser compatible. macOS X debería estar muy cerca de ese objetivo.
¿Qué es una distribución?
Para citar Wikipedia :
Una distribución de Linux (a menudo abreviada como distribución) es un sistema operativo hecho de una colección de software, que se basa en el núcleo de Linux y, a menudo, un sistema de gestión de paquetes.
Recordemos por un segundo que Linux, como en Linux Kernel, se supone que es un software distribuible , con modificaciones, o al menos de acuerdo con GPL v2 . Si consideramos un gestor de paquetes y un núcleo, Ubuntu y Red Hat son distribuciones tiene sentido. macOS X tiene un kernel diferente que el AT&T Unix original, por lo que llamar a macOS X una distribución de Unix no tiene sentido. La gente sugiere que el núcleo de macOS X se basa en FreeBSD, pero para citar Wiki de FreeBSD :
El núcleo XNU utilizado en OS X incluye algunos subsistemas de (versiones anteriores de) FreeBSD, pero es principalmente una implementación independiente
Algunas personas erróneamente llaman al kernel OS X Darwin. Para citar la Guía de programación del kernel de Apple :
El núcleo, junto con otras partes centrales de OS X, se denominan colectivamente Darwin. Darwin es un sistema operativo completo basado en muchas de las mismas tecnologías que subyacen a OS X.
Y para citar la misma página:
La tecnología Darwin se basa en las tecnologías BSD, Mach 3.0 y Apple.
Según todo lo anterior, podemos decir con confianza que OS X no es una distribución , en el sentido de la distribución de Linux. Del mismo modo, otros sistemas operativos mencionados son compatibles con POSIX y son sistemas Unix certificados, pero nuevamente difieren en los núcleos y las variaciones en las llamadas del sistema subyacente (por eso existen libros sobre la programación del sistema Solaris y es un tema digno por derecho propio). Por lo tanto, no son distribuciones en el sentido en que lo son las distribuciones de Linux: un núcleo común con variaciones en las utilidades. En el caso de Linux, verá libros sobre la programación del sistema Linux o la programación del kernel de Linux, no la programación del sistema específica de la distribución, porque no hay nada específico del sistema en una distribución en particular.
La confirmación de lo que vemos aquí se puede encontrar en la documentación oficial. Por ejemplo, un artículo sobre developerWorks de IBM que abordó la diferencia entre los tipos de SO UNIX y los estados de distribución de Linux (énfasis agregado):
La mayoría de las variantes modernas de UNIX conocidas hoy en día son versiones con licencia de una de las ediciones originales de UNIX . Sun's Solaris, Hewlett-Packard's HP-UX y IBM's AIX® son sabores de UNIX que tienen sus propios elementos y fundamentos únicos .
En otras palabras, se basan en la misma base, pero no comparten exactamente la misma en el sentido en que las distribuciones de Linux comparten el núcleo.
Consideraciones
Tenga en cuenta que la distribución de palabras parece usarse principalmente cuando se hace referencia a sistemas operativos que tienen el núcleo de Linux en su núcleo. Tomemos, por ejemplo, el tipo de sistemas operativos BSD: hay GhostBSD , que se basa en el núcleo y utiliza algunas de las utilidades de FreeBSD , pero nunca he visto que se haga referencia a él como una distribución BSD; cada sistema operativo BSD solo menciona en qué se basa y, por lo general, un sistema operativo se menciona como un sistema operativo por derecho propio. Claro, BSD significa Berkeley Software Distribution, pero ... eso es todo.
Para citar esta respuesta en nuestro sitio en respuesta a la pregunta de si diferentes versiones de BSD usan los mismos núcleos:
No, aunque hay similitudes debido a los tenedores históricos. Cada proyecto evolucionó por separado.
Son no distribuciones en el sentido de las distribuciones de Linux. Considere el aviso de copyright de este documento :
Algunas partes de este producto pueden derivarse de los sistemas UNIX® y Berkeley 4.3 BSD
Notas
En conclusión:
- macOS X puede denominarse sistema operativo similar a Unix, sistema similar a Unix, implementación de Unix, sistema operativo compatible con POSIX cuando desee relacionarlo con el AT&T Unix original;
- "Versión Unix" no sería el término apropiado porque macOS X es muy diferente del AT&T Unix original, y como se mencionó anteriormente, no hay más Unix en el sentido del software, y ahora es más un estándar de la industria;
- Probablemente la palabra "distribución" se ajuste solo al mundo de Linux.
- El verdadero problema es que usted (el lector) y yo tenemos demasiado tiempo para discutir sobre el tema sobre el que los abogados deberían estar discutiendo. Tal vez deberíamos ser como Linux Torvalds y usar terminología y sistemas operativos que solo nos permitan seguir adelante con la vida y hacer las cosas que honestamente nos importan y se supone que debemos preocuparnos.