Tanto el kernel de Linux como el kernel macOS están basados en UNIX. Algunas personas dicen que macOS es “Linux”, algunos dicen que ambos son compatibles debido a las similitudes entre los comandos y la jerarquía del sistema de archivos, sin embargo todavía existen diferencias significativas.
Kernel de macOS
En 1985, Steve Jobs dejó Apple debido a un desacuerdo con el CEO John Sculley y la junta directiva de Apple. Luego fundó una nueva compañía de computadoras llamada NeXT.
Jobs quería una nueva computadora (con un nuevo sistema operativo) para ser lanzada rápidamente.
Para ahorrar tiempo, el equipo NeXT utilizó el Kernel Carnegie Mellon Mach y partes de la base de código BSD para crear el sistema operativo NeXTSTEP.
NeXT nunca se convirtió en un éxito financiero, en parte debido a la costumbre de Jobs de gastar dinero como si todavía estuviera en Apple.
Mientras tanto, Apple intentó sin éxito actualizar su sistema operativo en varias ocasiones, incluso asociándose con IBM. En 1997, Apple compró NeXT por $ 429 millones. Como parte del trato, Steve Jobs regresó a Apple y NeXTSTEP se convirtió en la base de macOS e iOS.
Kernel de Linux
A diferencia del kernel de macOS, Linux no se creó como parte de una empresa comercial. En cambio, fue creado en 1991 por el estudiante de informática Linus Torvalds.
Originalmente, el kernel se escribió de acuerdo con las especificaciones de la computadora de Linus porque quería aprovechar su nuevo procesador 80386.
Linus publicó el código de su nuevo kernel en la web en agosto de 1991.
Pronto, recibió sugerencias de código y recursos en todo el mundo. El año siguiente, Orest Zborowski transfirió el sistema X Windows a Linux, dándole la capacidad de admitir una interfaz gráfica de usuario.
Recursos del kernel de MacOS
El kernel macOS se conoce oficialmente como XNU. El acrónimo significa “XNU no es Unix”. Según la página oficial de Github de Apple, XNU es “un kernel híbrido que combina el kernel Mach desarrollado en la Universidad Carnegie Mellon con componentes FreeBSD y C ++ para los controladores”.
La parte del código del subsistema BSD es “normalmente implementada como servidores de espacio de usuario en sistemas de microkernel”. El código de Mach es responsable del trabajo de bajo nivel, como la multitarea, la memoria protegida, la gestión de la memoria virtual, la compatibilidad con la depuración del kernel y la E / S de la consola.
Mapa de MacOS: el corazón de todo se llama Darwin; y dentro de él, tenemos utilidades de sistema separadas y el kernel de XNU, que está compuesto en partes por el kernel de Mach y por el kernel de BSD.
A diferencia de Linux, este kernel está dividido en lo que llaman el kernel híbrido, lo que permite que una parte se detenga para el mantenimiento, mientras que otra continúa funcionando. Un kernel híbrido es más estable, si una de sus partes se detiene, la otra puede comenzar de nuevo.
Recursos del kernel de Linux
Mientras que el kernel macOS combina las capacidades de un microkernel con Mach y un kernel monolítico como BSD, Linux es solo un kernel monolítico. Un kernel monolítico es responsable de administrar CPU, memoria, comunicación entre procesos, controladores de dispositivo, sistema de archivos y llamadas al servicio del sistema. Es decir, hace todo sin subdivisiones.
Obviamente, esto ya ha generado mucha discusión, incluso con el propio Linus y otros desarrolladores, que afirman que un kernel monolítico es más susceptible a los errores, además de ser más lento.
Pero linux prueba lo contrario cada año, además se puede optimizar como kernel híbrido. Adicionalmente, con la ayuda de RedHat, el núcleo ahora incluye un Live Patch que permite el mantenimiento en tiempo real sin necesidad de reiniciar el computador.
Diferencia entre el kernel Mac y Linux
El kernel macOS (XNU) ha existido por más tiempo que Linux y se basa en una combinación de dos bases de código aún más antiguas. Por otro lado, Linux es más nuevo, está escrito desde cero y se usa en muchos más dispositivos.