GNU/Linux >> Tutoriales Linux >  >> Linux

Núcleo de Linux vs. Núcleo de Mac

Tanto el kernel de Linux y el kernel de macOS están basados ​​en UNIX. Algunas personas dicen que macOS es "linux", otras dicen que ambos son compatibles debido a las similitudes entre los comandos y la jerarquía del sistema de archivos.

Hoy quiero mostrar un poco de ambos, mostrando las diferencias y similitudes entre el kernel de Linux y el kernel de Mac, como mencioné en artículos anteriores sobre el kernel de Linux.

Núcleo de macOS

En 1985, Steve Jobs dejó Apple debido a un desacuerdo con el director ejecutivo John Sculley y la junta directiva de Apple. Luego fundó una nueva compañía de computadoras llamada NeXT. Jobs quería que se lanzara rápidamente una nueva computadora (con un nuevo sistema operativo). Para ahorrar tiempo, el equipo de NeXT utilizó el kernel Carnegie Mellon Mach y partes del código base BSD para crear el sistema operativo NeXTSTEP. .

NeXT nunca se ha convertido 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.

Núcleo de Linux

A diferencia de macOS kernel, Linux no se creó como parte de una empresa comercial. En cambio, fue creado en 1991 por el estudiante de computación 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. Al año siguiente, Orest Zborowski portó el sistema X Windows a Linux, dándole la capacidad de admitir una interfaz gráfica de usuario.

Recursos del kernel de MacOS

El núcleo de 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 núcleo híbrido que combina el núcleo Mach desarrollado en la Universidad Carnegie Mellon con componentes FreeBSD y C++ para los controladores".

La parte del subsistema BSD del código "normalmente se implementa como servidores de espacio de usuario en sistemas de microkernel". La parte 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 núcleo XNU, que está compuesto en partes por el núcleo Mach y por el núcleo BSD.

A diferencia de Linux, este núcleo se divide en lo que llaman el núcleo híbrido, lo que permite que una parte se detenga para el mantenimiento, mientras que otra continúa funcionando. En varios debates esto también abrió la pregunta de si un núcleo híbrido es más estable; si una de sus partes se detiene, la otra puede volver a iniciarla.

Recursos del kernel de Linux

Mientras que el kernel de 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 la CPU, la memoria, la comunicación entre procesos, los controladores de dispositivos, el sistema de archivos y las llamadas de servicio del sistema. Es decir, hace todo sin subdivisiones.

Obviamente, esto ya generó mucha discusión incluso con el propio Linus y otros desarrolladores, quienes afirman que un kernel monolítico es más susceptible a errores además de ser más lento; pero Linux es lo opuesto a esto todos los años y puede optimizarse como un núcleo híbrido. Además, con la ayuda de RedHat , el kernel ahora incluye un Live Patch que permite el mantenimiento en tiempo real sin necesidad de reiniciar.

Diferencias entre MacOS Kernel (XNU) y Linux

  1. El kernel de macOS (XNU) existe desde hace más tiempo que Linux y se basó en una combinación de dos bases de código aún más antiguas. Esto pesa a favor, por la estabilidad y la historia.
  2. Por otro lado, Linux es más nuevo, está escrito desde cero y se usa en muchos otros dispositivos; tanto que está presente en las 500 mejores entre las mejores supercomputadoras y en la recién inaugurada supercomputadora norteamericana.

​En el alcance del sistema, no tenemos un administrador de paquetes a través de la línea de comando en la terminal de macOS.

La instalación de los paquetes en formato .pkg, como BSD, se realiza a través de esta línea de comando, si no a través de la GUI:

$ sudo installer -pkg /path/to/package.pkg -target /

NOTA: ¡MacOS .pkg es totalmente diferente de BSD .pkg!

No creas que macOS admite programas BSD y viceversa. No es compatible y no se instala. Puede tener un comando equivalente a apt en macOS, en 2 opciones: 

Instalando HomebrewMacPorts.   Al final, tendrá la siguiente sintaxis:$ brew install PACKAGE

$ port install PACKAGE

Recuerde que no todos los programas/paquetes disponibles para Linux o BSD estarán en Ports de MacOS .

Compatibilidad

En cuanto a compatibilidad, no hay mucho que decir; el núcleo de Darwin y el kernel de Linux son tan distintos como comparar el kernel de Windows NT con el kernel de BSD. Los controladores escritos para Linux no se ejecutan en macOS y viceversa. Deben compilarse de antemano; Curiosamente, Linux tiene una serie de demonios macOS, ¡incluido el servidor de impresión CUPS!

Lo que tenemos en común de compatibilidad son, de hecho, herramientas de terminal como paquetes GNU Utils o Busybox, por lo que no solo tenemos BASH pero también gcc, rm, dd, top, nano, vim, etc. Y esto es intrínseco a todas las aplicaciones basadas en UNIX. Además, tenemos la arquitectura de carpetas del sistema de archivos, carpetas comunes comunes a root en /, /lib, /var, /etc, /dev, etc. .

Conclusión

macOS y Linux tienen sus similitudes y diferencias, al igual que BSD en comparación con Linux. Pero debido a que se basan en UNIX, comparten patrones que los hacen familiares para el entorno. Aquellos que usan Linux y migran pro macOS o viceversa estarán familiarizados con una serie de comandos y funciones.

La diferencia más llamativa sería la interfaz gráfica, cuyo problema sería una cuestión de adaptación personal.


Linux
  1. El ciclo de vida de las pruebas del kernel de Linux

  2. Instale Linux Kernel 4.12 en openSUSE

  3. Linux – Kernel:¿Soporte de espacios de nombres?

  4. Linux – ¿Reenvío de IP del kernel?

  5. Linux:¿un núcleo corrupto en Linux?

Kernel de Linux y sus funciones

Comando sysctl en Linux

Qué hacer en caso de pánico en el kernel de Linux

Cómo cambiar la dirección MAC en Linux

Actualice el kernel de Linux de CentOS 8

Guía completa de registro de Linux