Una MacBook Pro con la tapa parcialmente abierta y la pantalla brillante en el teclado.

es macOS UNIX? (¿Y qué significa eso?)

Razvan Franco Nitoi / Shutterstock

¿Es macOS UNIX o solo Unix? ¿O es de tipo Unix? Respondemos al debate interminable y explicamos estándares como POSIX y SUS en el camino.

macOS: ¿UNIX o no?

Este tema plantea un montón de preguntas diferentes. ¿Cuál es el linaje de macOS? ¿Cuánto de este material heredado todavía está presente en macOS hoy? ¿Importa? Antes de que podamos comenzar a responder si algo es UNIX, Unix o similar a Unix, debemos estar cómodos con el significado de estos términos. ¿Quién decide si algo es Unix o UNIX y qué criterios utilizan?

Empecemos por el principio.

Unix fue creado hace cincuenta años en Laboratorios Bell, una empresa de investigación y desarrollo propiedad de AT&T. Avance rápido a 1973 y Unix versión 4, que fue reescrito en el lenguaje de programación C. Esto hizo que el sistema operativo fuera mucho más portátil y más fácil de transferir a diferentes plataformas de hardware. Ese mismo año, Ken Thompson y Dennis ritchie, dos de los principales arquitectos de Unix, presentaron un artículo en una conferencia de sistemas operativos. Inmediatamente recibieron solicitudes de copias del sistema operativo.

Vinculado por un Decreto de consentimiento Desde 1956, AT&T debía abstenerse de «cualquier actividad que no sea la prestación de servicios de comunicación por parte de operadores públicos». Unix no fue visto como algo de lo que AT&T pudiera aprovechar. Así que la empresa hizo algo extraordinario para la época: distribuir Unix como código fuente con una licencia liberal. Una pequeña tarifa cubría el envío y el embalaje y un «cargo razonable».

Una proliferación de Unix

Debido a que Unix se proporcionó «tal cual», vino sin soporte. Como resultado, una comunidad de Unix comenzó a unirse para ayudar a los miembros, parchear y extender Unix. Para que pueda obtener el código fuente, modificarlo y obtener el apoyo de la comunidad. Suena familiar. Comenzaron a aparecer diferentes versiones de Unix, adaptadas y ajustadas para adaptarse a la organización que realiza el trabajo.

Bob Fabry, profesor de ciencias de la computación en UC Berkeley, formó parte del comité de programa del Simposio sobre principios de sistemas operativos de 1973. Escuchó una presentación de Thompson y Ritchie titulada The UNIX Time-Sharing System.

Fabry solicitó una copia del sistema operativo y en 1974 se instaló Unix en un PDP / 11 en el Grupo de Investigación en Ciencias de la Computación de UC Berkeley (CSRG). Significativamente, Ken Thompson pasó un año allí, trabajando en lo que rápidamente se convirtió en el sabor propio de Unix de la universidad. Se distribuyeron copias de las modificaciones y adiciones de UC Berkeley y se conocieron como Berkeley Software Distribution (BSD). Con el tiempo, se convirtieron en distribuciones de todo un sistema Unix, todavía conocido como BSD. Los números de versión, como 4.2BSD, identificaron las diferentes versiones.

En 1984, AT&T fue liberada de las restricciones del Decreto de Consentimiento de 1956 y pudo comercializar adecuadamente su sistema operativo. Incluía código BSD, como TCP / IP, vi, y el shell C, csh. Incluso con esta polinización cruzada y colaboración, hubo dificultades con la concesión de licencias. BSD contenía código de AT&T, que no era de código abierto, pero sí los elementos de BSD.

Se ha desarrollado una versión de BSD sin código de AT&T para solucionar estos problemas. Sin embargo, cuando se eliminó el código de AT&T, faltaba aproximadamente el 20% del kernel. Guillaume Jolitz escribió las partes faltantes, y esta versión de Unix fue lanzada como 386BSD. El proyecto 386BSD se estancó, pero en 1993 su base de código fuente dio lugar a la NetBSD y FreeBSD proyectos.

Esto nos dio una pieza del rompecabezas: FreeBSD.

El siguiente paso

Después de ser despedido de Apple, Inc. en 1985, Steve Jobs fundó una empresa llamada Siguiente, Inc. Con el fin de proporcionar un sistema operativo para su línea de productos de estaciones de trabajo, NeXT ha desarrollado El siguiente paso. Usó BSD como base de código pero introdujo un kernel completamente diferente.

NeXT usó una versión modificada de Mach micronúcleo y 4.3BSD para formar NeXTSTEP, que es la segunda parte de este rompecabezas. Mach fue desarrollado en Carnegie Mellon para facilitar la investigación sobre computación distribuida y paralela. El equipo de investigación usó BSD como su sistema operativo y reemplazó el kernel en lugar de escribir su propio sistema operativo.

XNU

En 1996, Apple, Inc. compró NeXT, Inc. y, como resultado, adquirió NeXTSTEP. Apple comenzó a desarrollar el sistema operativo que eventualmente se convertiría en macOS a través de Mac OS X. Actualizó el kernel de Mach y lo reemplazó con la versión más avanzada que la Open Software Foundation desarrolló y usó en el OSF / 1 Sistema operativo. Apple también ha actualizado los componentes BSD con versiones actualizadas y mejoradas de la distribución FreeBSD.

Apple devolvió elementos del kernel BSD al kernel de Mach. También desarrolló un núcleo híbrido que combinaba las características de ambos monolítico y arquitecturas de microkernel.

la Kit de E / S, que Apple desarrolló basándose en DriverKit de NeXTSTEP, también se ha incluido. Esto hizo posible agregar controladores a un kernel sin tener que modificarlo cada vez.

XNU es la tercera parte del rompecabezas.

Estándares POSIX y SUS

En 1996, dos organismos de normalización:X / Abrir y el Fundación de software abierto-se fusionó para formar El grupo abierto.

Open Group es el organismo de certificación de la marca UNIX. En otras palabras, debe certificar que su sistema operativo cumple con sus estándares antes de que pueda llamarse UNIX. UNIX en letras mayúsculas es la insignia de cumplimiento.

Por tanto, las categorías son las siguientes:

  • Unix: Una familia de sistemas operativos. Esta familia incluye tanto sistemas operativos UNIX como sistemas operativos similares a Unix.
  • UNIX sistema de explotacion: Estos han sido certificados para cumplir con los estándares.
  • Tipo Unix sistema de explotacion: Se ven y funcionan como Unix, pero no se han certificado como compatibles.

Por supuesto, es muy posible que mañana mismo se prueben algunos sistemas operativos de la categoría “similar a Unix” y se determine que cumplen los requisitos. Son efectivamente UNIX ahora, pero solo pueden clasificarse como Unix porque aún no tienen el búfer.

Hay dos estándares que certifican UNIX: POSIX y Especificación UNIX única (SUS). SUS es un superconjunto de POSIX. Entonces, algo puede ser compatible con POSIX, pero eso no lo convierte en UNIX. Sin embargo, si algo es compatible con SUS, es UNIX.

POSIX y SUS forman grandes colecciones de documentos (aproximadamente 3.700 páginas). Definen el funcionamiento y el comportamiento esperado de cada aspecto de un sistema compatible con UNIX. Todo, desde las E / S asíncronas y síncronas hasta la interfaz de secuencias de comandos y los programas a nivel de usuario, está catalogado y definido.

Los estándares definen las interfaces de la aplicación y el comportamiento en tiempo de ejecución, pero no dictan cómo se implementan.

Entonces, ¿es macOS UNIX?

La respuesta debe ser afirmativa.

Puede rastrear su linaje desde FreeBSD hasta BSD, y desde allí hasta Unix distribuido por Bell Labs antes de que las tarifas de licencia subieran de AT&T.

Pero no importa.

Si escribe un sistema operativo desde cero en este momento, siempre que cumpla con los requisitos del SUS, se considera UNIX. Y no importa cómo lo implementes. El kernel de XNU en el corazón de macOS es una arquitectura híbrida. Combina código de Apple con partes de los núcleos Mach y BSD.

Pero eso tampoco importa. Lo que importa es que cumpla con los requisitos de los estándares con los que se mide.

La parte BSD del kernel XNU proporciona las interfaces de programación para aplicaciones POSIX (como las diversas llamadas al sistema API y BSD). Mantener este elemento del kernel BSD intacto en XNU es esencial para obtener la certificación como UNIX. Permite que XNU hable conforme a UNIX y compatible con el resto del sistema.

macOS es un sistema operativo compatible con UNIX 03 certificado por The Open Group. Lo ha sido desde 2007, comenzando con MAC OS X 10.5. La única excepción fue Mac OS X 10.7 Lion, pero se recuperó el cumplimiento con OS X 10.8 Mountain Lion.

Curiosamente, al igual que GNU significa «GNU’s Not Unix», XNU significa «X no es Unix. «

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Experto Geek - Tu Guía en Tendencias Tecnológicas