El caparazón, por supuesto.
La metáfora original que nos dio la palabra "núcleo" para esto en primer lugar se olvida con demasiada frecuencia. La metáfora es que un sistema operativo es una semilla o una nuez. El "núcleo" de la semilla es el núcleo del sistema operativo, proporcionando servicios del sistema operativo a los programas de aplicaciones, que está rodeado por el "caparazón" de la semilla que es lo que los usuarios ven desde el exterior.
Algunas personas quieren vincular "kernel" (y, de hecho, "shell") para ser más específico que eso. Pero, en verdad, hay mucha variación entre los sistemas operativos. No menos importante es que estas variaciones constituyen un "shell" (que puede variar desde Solaris a sh
través del Intérprete de comandos de consola de Netware hasta Workplace Shell de OS / 2 y el Explorador de Windows NT), pero también hay mucha variación de un sistema operativo a otro en lo que es, y no es, una parte de un "núcleo" (que puede o no incluir E / S de disco, por ejemplo). Es mejor recordar que estos términos son metáforas .
Hay otras terminologías. En la terminología de mainframe de IBM, el "núcleo" en la metáfora seed / nut se llama programa de control . Otros nombres incluyen el supervisor , el monitor , el núcleo y el ejecutivo . El núcleo es otra metáfora biológica bastante obvia. Es interesante que también lo sea otro nombre. Harvey M. Deitel, en sus Sistemas Operativos , llama núcleo al programa de control y dice
El núcleo normalmente representa una pequeña porción del código de lo que comúnmente se cree que es todo el sistema operativo [...]
La palabra "núcleo" proviene del núcleo latino y significa el núcleo de una nuez (cf el latín nux , que significa "nuez"). Entonces, incluso llamar al programa de control "el núcleo" es, de hecho, hacer esta misma analogía de sistema operativo como una nuez. Es una analogía que se usa para algo más que sistemas operativos. Si está familiarizado con la química, por ejemplo, sabrá que un núcleo atómico está rodeado de electrones en capas .
Lo que la persona seudónima new123456
escribe a continuación ejemplifica los errores resultantes de olvidar los orígenes de estas metáforas en la medida en que uno confunde la parte con el todo y el núcleo con todo el sistema operativo. Ser un programa "userland" no hace que el shell sea menos externo al sistema operativo, ni tampoco lo que encierra el núcleo. Además, lejos de ser una idea solo para DOS que no se aplica a Unix más allá de la versión 7, esta idea es generalizada y actual en el mundo de Unix.
(Es irónico que new123456
lo confunda con un DOSismo. La metáfora kernel / shell era bastante extraña para DOS en sus primeros años, lo que favoreció al procesador de comandos y similares, de CP / M. Al igual que CP / M antes, MS-DOS se dividió en el sistema operativo de disco básico (BDOS), el sistema básico de entrada-salida (BIOS, no el firmware del sistema, nota), el procesador de comandos y las utilidades de limpieza . El código se dividió en archivos de esta manera. Esta es otra ejemplo, de hecho, de cómo la metáfora kernel / shell realmente no cubre o coincide completamente con las divisiones reales en muchos sistemas operativos).
new123456
está olvidando lo que Deitel escribió acerca de que el núcleo forma parte del sistema operativo general. Un sistema operativo es tanto kernel como shell. Esa es, después de todo, la metáfora. Deitel tampoco está solo. Hay montones de libros de Unix que explican la metáfora de Unix como loco, desde la década de 1980 en adelante. Recomiendo Urban's y Tiemann's Teach Yourself FreeBSD en 24 horas (SAMS, ISBN 9780672324246), por la sencilla razón de que en la página 54 tiene un diagrama que ilustra la metáfora del sistema operativo como semilla y, sorprendentemente, es uno de Pocos libros para hacerlo.
El nombre "núcleo" es probablemente el nombre más antiguo; ciertamente anterior a Unix, que favorece la terminología kernel / shell que hoy, probablemente en gran parte gracias a Unix, es la más frecuente. Esto es lo que hay en el libro de Alan C. Shaw de 1974 El diseño lógico de los sistemas operativos (Prentice-Hall, ISBN 9780135401125), por ejemplo:
La parte del sistema que reside permanentemente en el almacenamiento principal se ha denominado históricamente núcleo . El núcleo generalmente consistirá en un conjunto mínimo de primitivas y procesos para la gestión de procesos, recursos y entrada-salida.
Shaw también tiene un diagrama. ☺
@
lugar cuando mencione mi nombre de usuario para que se publique en mi cola de respuestas.Otras partes del sistema operativo incluyen los controladores que interactúan con el núcleo, hay varias capas de programas auxiliares que se ocupan de la interfaz de usuario, la red y otras partes centrales del sistema operativo que se encuentran entre el núcleo y la aplicación real.
Para dar un ejemplo, he mostrado la estructura de OS X , como puede ver en la parte superior del núcleo (azul claro) yace varias capas de funcionalidad "núcleo", herramientas del sistema, servicios y API (interfaz de programación de aplicaciones) antes que usted incluso acceda a la GUI, que es con lo que normalmente trabaja en las propias aplicaciones.
La mayoría de los sistemas operativos tienen una estructura similar, pero hay un amplio margen para las diferencias con respecto a cuánto es realmente parte del núcleo. Vea el artículo de Wikipedia sobre Microkernels para una comparación.
EDITAR: para responder su comentario (mi comentario se hizo un poco largo)
Usted podría arrancar sólo un núcleo de Linux, pero no sería capaz de lograr realmente mucho, es todas esas aplicaciones de ayuda que proporcionan toda la interfaz que se ve y uso.
Una vez que el kernel se inicia (e inicializa el hardware) intentará pasar a otras partes del sistema operativo GNU / Linux que proporcionan la funcionalidad para iniciar servicios (como UDEV, que se llena
/dev
con interfaces de dispositivos en bruto para que los programas usen cosas como discos duros y puertos seriales, etc.) y programas para configurar la red ( dhcpcd ) y API como X.org para que las aplicaciones puedan mostrar ventanas e íconos a través de un Administrador de ventanas como GNOME o KDE .Pero sí, simplemente podría arrancar el núcleo en sí, simplemente se quedaría allí con un "He arrancado, ¿y ahora qué?" rápido.
fuente