¿Qué es un núcleo del sistema operativo? ¿Cómo se diferencia de un sistema operativo? [cerrado]

Respuestas:

74

La definición técnica de un sistema operativo es "una plataforma que consiste en un conjunto específico de bibliotecas e infraestructura para que las aplicaciones se construyan e interactúen entre sí". Un kernel es un sistema operativo en ese sentido.

La definición del usuario final suele ser algo relacionado con "un paquete de software que proporciona un escritorio, accesos directos a aplicaciones, un navegador web y un reproductor multimedia". Un núcleo no coincide con esa definición.

Entonces, para un usuario final, una distribución de Linux (por ejemplo, Ubuntu) es un sistema operativo, mientras que para un programador, el núcleo de Linux en sí es un sistema operativo perfectamente válido dependiendo de lo que intente lograr. Por ejemplo, los sistemas integrados son principalmente kernel con un número muy pequeño de procesos especializados que se ejecutan sobre ellos. En ese caso, el núcleo se convierte en el sistema operativo.

Creo que puede trazar la línea en lo que requiere la mayoría de las aplicaciones que se ejecutan sobre ese sistema operativo. Si la mayoría de ellos solo requieren kernel, el kernel es el sistema operativo, si la mayoría de ellos requieren que se ejecute el sistema X Window, entonces su sistema operativo se convierte en X + kernel.

Sedat Kapanoglu
fuente
66
La definición del usuario final suele ser algo relacionado con "un paquete de software que proporciona un escritorio, accesos directos a aplicaciones, un navegador web y un reproductor multimedia". Un núcleo no coincide con esa definición. El hecho de que alguien no tenga idea de qué es un sistema operativo no significa que su definición sea válida.
DIMMSum
1
@dimmsum no es solo una definición coloquial. Los sistemas operativos se han vendido y comercializado a los usuarios como tales.
Sedat Kapanoglu
¿Podrías señalarme algún tipo de marketing? Pude ver a un proveedor de sistemas operativos que dice que proporcionan una plataforma en la que se pueden ejecutar todos esos tipos de programas, pero un sistema operativo no incluye esos programas. Si combina los dos, literalmente está hablando de todo el sistema, por lo que la definición pierde su significado.
DIMMSum
1
@dimmsum Entiendo tu punto y es por eso que proporcioné dos definiciones diferentes. tal vez debería haberlo llamado "comprensión"? Creo que los usuarios finales, especialmente durante la época en que los sistemas operativos se vendían en cajas, tienen una comprensión diferente de lo que es un sistema operativo y eso es directamente relevante para la forma en que se comercializan los sistemas operativos. Windows XP Box prometía una transacción completamente diferente a una definición técnica, eso es lo que quería señalar.
Sedat Kapanoglu
1
@dimmsum, así que hay un sistema operativo en informática y hay otro sistema operativo en los estantes de una tienda de tecnología. ambos son sistemas operativos desde diferentes perspectivas. Quería enfatizar esa distinción.
Sedat Kapanoglu
73

Un núcleo es la parte del sistema operativo que media el acceso a los recursos del sistema. Es responsable de permitir que múltiples aplicaciones compartan efectivamente el hardware controlando el acceso a la CPU, la memoria, las E / S de disco y las redes.

Un sistema operativo es el núcleo más aplicaciones que permiten a los usuarios hacer algo (es decir, compilador, editor de texto, administrador de ventanas, etc.).

Erich Douglass
fuente
18
¿Los compiladores y editores de texto son realmente parte del sistema operativo? Word es un editor de texto glorificado: ¿forma parte del sistema operativo?
jon-hanson
66
Lo que no entiendo es "Un sistema operativo es el núcleo más las aplicaciones", pero si instalo una aplicación, digamos Word Perfect, entonces eso no debería contar como parte del sistema operativo, ¿no?
Celeritas
77
@Celeritas Un poco tarde para la fiesta, pero no, esa aplicación instalada no se contará como parte del sistema operativo. Las "aplicaciones" son en realidad las utilidades del sistema que vienen con el sistema operativo. Todos los demás softwares / aplicaciones que instales se encuentran en la capa superior a esta.
hashcode55
Lo estabas haciendo bien hasta que escribiste el comentario entre paréntesis en el segundo párrafo. Un sistema operativo maneja las solicitudes realizadas por esas aplicaciones para controlar el hardware. Por lo tanto, el sistema operativo incluye el núcleo, los controladores de dispositivos y cualquier otro software / firmware que controle específicamente el hardware en el nivel más bajo.
Bob
42

Parece que la metáfora original que nos dio la palabra "núcleo" para esto en primer lugar ha sido olvidada. La metáfora es que un sistema operativo es una semilla. 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 shtravé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 qué es y qué no es parte de un "núcleo" (que puede incluir o no E / S de disco, por ejemplo).

Es mejor recordar que estos términos son metáforas .

Otras lecturas

JdeBP
fuente
Agradable. Sin embargo, su respuesta es textualmente tomada de la "Lectura adicional". Ahora sé cómo obtener muchos votos a través de copiar y pegar. Jajaja Todavía útil, no obstante.
lacostenycoder
18

Bueno, hay una diferencia entre kernel y OS. El núcleo, como se describió anteriormente, es el corazón del sistema operativo que gestiona las características principales de un sistema operativo, mientras que si se agregan algunas aplicaciones y utilidades útiles sobre el núcleo, el paquete completo se convierte en un sistema operativo. Por lo tanto, se puede decir fácilmente que un sistema operativo consta de un espacio de kernel y un espacio de usuario.

Entonces, podemos decir que Linux es un núcleo, ya que no incluye aplicaciones como utilidades de sistemas de archivos, sistemas de ventanas y escritorios gráficos, comandos de administrador de sistemas, editores de texto, compiladores, etc. Por lo tanto, varias compañías agregan este tipo de aplicaciones sobre el núcleo de Linux y proporcionar su sistema operativo como ubuntu, suse, centOS, redHat, etc.

n.zia
fuente
9

El sistema operativo es un nombre genérico dado a todos los elementos (interfaz de usuario, bibliotecas, recursos) que componen el sistema en su conjunto.

El núcleo es el "cerebro" del sistema operativo, que controla todo, desde el acceso al disco duro hasta la administración de la memoria. Siempre que quieras hacer algo, pasa por el núcleo.

Kyle
fuente
8

El kernel es parte del sistema operativo, aunque no es el sistema operativo en sí. En lugar de entrar en todo lo que hace un kernel, me referiré a la página de Wikipedia: http://en.wikipedia.org/wiki/Kernel_%28computing%29 . Gran resumen completo.

danben
fuente
3
Meh, prueba la primera oración de en.wikipedia.org/wiki/Operating_system en su lugar. Un sistema operativo tiene la tarea formal de mediar el acceso a recursos limitados (aproximadamente todo en la computadora), y los núcleos monolíticos hacen exactamente eso (los micro núcleos descargan parte de ese trabajo en los procesos, pero aún se distribuyen con el núcleo). Desde una perspectiva de programadores, el núcleo es el sistema operativo. Los usuarios pueden contar con el shell u otras interfaces, pero eso es usuarios . Recuerde que los sistemas operativos se ejecutan en todo, desde súper computadoras hasta cualquier widget incorporado que necesita hacer dos cosas.
dmckee --- ex-gatito moderador
¿Entonces su punto es que ALGUNOS sistemas operativos son en sí mismos núcleos, o que las partes de un SO con las que interactúa un usuario no son parte del SO?
danben
Además, "la primera oración de en.wikipedia.org/wiki/Operating_system" dice "Un sistema operativo (SO) es una interfaz entre el hardware y el usuario ...", así que no entiendo por qué haces la distinción entre lo que un usuario interactúa con el resto.
danben
7

un kernel es parte del sistema operativo, es lo primero que el cargador de arranque carga en la CPU (para la mayoría de los sistemas operativos), es la parte que interactúa con el hardware, y también administra qué programas pueden hacer qué con el hardware, es realmente la parte central del sistema operativo, está formado por controladores, un controlador es un programa que interactúa con una pieza de hardware en particular, por ejemplo: si hiciera una cámara digital para computadoras, tendría que hacer un controlador para ello, los controladores son los únicos programas que pueden controlar la entrada y salida de la computadora

Noé
fuente
3

Respuesta simple

El Kernel es la pieza central del sistema operativo. No es necesariamente un sistema operativo en sí mismo.

Todo lo demás está construido a su alrededor.

Definición elaborada

Kernel (informática) - Wikipedia

Justin Niessner
fuente
Entonces, ¿es Kernel Operating System sin controladores?
Xinus
1
No ... la mayoría de los Kernels unen las diversas partes del sistema operativo (no solo los controladores).
Justin Niessner
2

En informática, el 'núcleo' es el componente central de la mayoría de los sistemas operativos de la computadora; Es un puente entre las aplicaciones y el procesamiento de datos real realizado a nivel de hardware. Las responsabilidades del núcleo incluyen la gestión de los recursos del sistema (la comunicación entre los componentes de hardware y software). Por lo general, como componente básico de un sistema operativo, un núcleo puede proporcionar la capa de abstracción de nivel más bajo para los recursos (especialmente procesadores y dispositivos de E / S) que el software de la aplicación debe controlar para realizar su función. Por lo general, pone estas instalaciones a disposición de los procesos de aplicación a través de mecanismos de comunicación entre procesos y llamadas al sistema.


fuente
2

El núcleo podría ser el sistema operativo o podría ser parte del sistema operativo. En Linux, el núcleo se carga y ejecuta primero. Luego, inicia otros bits del sistema operativo (como init) para que el sistema sea útil.

Esto es especialmente cierto en un entorno de micro-kernel. El núcleo tiene una funcionalidad mínima. Todo lo demás, como los sistemas de archivos y TCP / IP, se ejecuta como un proceso de usuario.

Richard Pennington
fuente
¿Qué pasa con Kernel en un lenguaje de script como Ruby? Por ejemplo, si tiene instalado Ruby, puede ejecutar esto desde el terminal * nix ruby -e "puts Kernel.methods"y verá muchos métodos definidos.
lacostenycoder
2

El kernel reside en el sistema operativo. En realidad, es un espacio de memoria especialmente provisto para manejar las funciones del sistema operativo. Algunos incluso dicen que el sistema operativo maneja los recursos del sistema y el núcleo es uno de los principales del sistema operativo y lo mantiene, gestiona el seguimiento del sistema operativo.

Raj
fuente