Mac OS X no es FreeBSD en esteroides
General 24 Marzo, 2009
Existe un mito que se repite continuamente y que nació en la comunidad de software libre como un señalamiento de dedo hacia Apple, este mito dice que el núcleo de Mac OS X es FreeBSD, dando a entender que OS X no es más que un FreeBSD con un escritorio bonito hecho por Apple, este mito esta pensado para tapar las carencias de Linux respecto a OS X.
Leyendo la última columna de Silta en faq-mac me encuentro con esto:
Ya, silta, ¿y qué pinta el código abierto aquí? os preguntaréis. El kernel (núcleo) de Mac OS X es FreeBSD una “variante” de UNIX libre y gratuita alrededor de la que Apple dispone todas las tecnologías privativas y de pago que componen el atractivo interfaz gráfico de Mac OS X, y en consecuencia el producto final que comercializan. A nivel Mac OS X Server (la versión servidor del sistema) también se implementan soluciones abiertas como OpenDirectory, por ejemplo.
El nucleo de OS X no es FreeBSD sino XNU, se dice que se basa en FreeBSD por el hecho de tener una parte BSD en el nucleo, pero también podriamos decir que tiene una parte OpenBSD, otra NetBSD… hay un largo etcetera de posibilidades.
Para entender lo que tiene OS X se ha de hacer un recorrido histórico.
NextStep, el BSD 4.2 y FreeBSD
Cuando en 1987 NeXT presento Nextstep 1.0 este se basaba en la combinación del micronucleo Mach2 y BSD 4.2, por aquel entonces BSD era una versión academica de Unix completamente gratuita y de código abierto pero que necesitaba el Unix de pago para funcionar por lo que no era un sistema completo. NeXT decidio optar por el Mach2 que tomo el papel del Unix System V en el sistema y conjuntamente con el BSD 4.2 se creo un sistema operativo capaz de competir de tú a tú con Unix pero que no era Unix, curiosamente a este sistema le llamaron XNU.
Todas las versiones de NeXTStep hasta Mac OS X 10.0 y todas las versiones de este hasta Snow Leopard usan la combo Mach+BSD, en OS X esto vario levemente pero os lo explico más adelante.
En el caso de FreeBSD su gestación empezó en 1990 con el proyecto 386BSD, el plan era llenar los huecos que le faltaban a BSD para no ser dependiente del Unix de AT&T y poder distribuirse de forma completa, se trataba del primer SO de código abierto y distribuido que iba a aparecer en el mercado, ya desde ese momento el código del núcleo de NextStep y el código de los BSD ya era diferente.
El problema era que AT&T creía que todo el código del Unix de Berkeley era suyo también por lo que cuando BSDi lanzo el primer sistema operativo BSD independiente de AT&T los denunciaron en un juicio que duro dos años, paralizo el desarrollo de los BSD libres y al mismo tiempo permitio que un tal Linux apareciera y tuviera una ventaja de tiempo.
NeXT por otro lado terminaría cerrando su división de hardware en 1993 y seguiría haciendo software, no con mucho éxito hasta que al final Jobs consiguio vender su empresa a Apple. NextStep fue la base para Mac OS X, no son exactamente iguales sino que han habido una serie de diferencias, en este caso me centrare en el nucleo.
El núcleo XNU
Mach3
Este nucleo es un microkernel, se le llama así a aquellos que dejan ciertos servicios típicos del sistema operativo a manos de capas superiores, en el caso de XNU los servicios que no son manejados por Mach3 pasan a estar a menos de la parte BSD de XNU. Mach3 se encarga de:
- Gestión de hilos y procesos
- Multitarea preventiva
- Comunicación entre hilos y procesos
- Gestión de memoria protegida
- Gestión de memoria virtual
- API POSIX
- Perfiles de seguridad
- Perfiles de usuarios y grupos de usuairos
- Permisos
- La pila de red
- El sistema de archivos virtual incluyendo el Journaling
- …
Marzo 25th, 2009 at 10:49 am
Im-presionante. Gracias, en serio.
No pretender ser justificación pero en el artículo de ayer pequé de perezoso y no fui a buscar toda la documentación técnica. No pretendía ser exhaustivo, hace tiempo hice una presentación de “¿Por qué Apple?” que cobró cierta notoriedad y ahí hablaba del kernel Mach… pero hace mucho de eso y últimamente sólo uso el Mac, me preocupa un poco cómo está hecho, pero lo que más me preocupa es que funcione. Y lo hace.
Ayer simplemente quería celebrar los 8 años de Mac OS X yponer de relieve las 4 cosillas que se podrían modificar, en mi modesta e inexperta opinión.
Esta explicación con historia es una gozada que aclara muchas cosas, muchas de las cuales ni siquiera sabía de lejos (otras sí).
Gracias de nueva.
Namaste,
silta
Junio 26th, 2010 at 7:53 pm
excelente tu explicacion, pero me gustaria saber como la obtubiste si apple es celoso con sus tecnologias, bueno y ya que sabemos que que darwin es XNU y que OSX es la union de XNU y freebsd, ¿un particular podria sacar una variante OSX no-apple uniendo estas dos partes?
Agosto 8th, 2010 at 7:38 am
Excelente, me aclaraste muchas dudas, 1A!!!!