¿Cuál es la diferencia entre un Kernel y un S.O.? Me asalta la duda...

Pues eso, preguntándolo desde la total ignorancia y el querer saber por lo menos algo: ¿Cuál es la diferencia entre lo que se llama Kernel y lo que se llama Sistema Operativo? ¿El Kernel va incluído necesariamente en el S.O.?

Es que me he puesto a ver la definición de la Wikipedia y no me queda claro, además de que por la forma de habalr de la gente en los foros siempre pensé que una cosa iba unida a otra.
Otra pregunta relacionado con esto: Si el Kernel hace de nexo entre hardware y software, ¿tiene esto algo que ver con los drivers?

Ya sé que con la misma he soltado 4 burradas en 5 palabras, pero gustosamente quisiera que me diéseis una bofetada de sabiduría. XD

Ahí queda eso pescaos.

Saludos!!! [Ooooo]
a grandes rasgos, el kernel es el nucleo del sistema operativo, y se encarga de cosas como manejar los dispositivos y cosillas parecidas.
Pongo el ejemplo del Linux ya que donde es mas facil de entender que es el kernel e ignoro si Mac OS o Windows tienen algo parecido aunke supongo k si.

El kernel seria como ha dixo demmin el nucleo de todo, depués tendriamos todos los programas que puede hacer funcionar (reproductores, escritorios, navegadores....). Todo en conjunto se llama ria distribución (creo que solo se llama así a las diferentes versiones de Linux) o creo que tambien se podria llamar S.O.


¿El Kernel va incluído necesariamente en el S.O.?
Estoy casi seguro de ello, ya que un S.O. sin kernel no funcionaria.

Sobre los drivers, creo que si que tiene algo que ver, ya que los drivers que són para el "kernel Windows" por ejemplo no funcionan para el kernel Linux (que se llama kernel UNIX).


Definición de Kernel encontrada por internet:

El kernel forma parte del sistema operativo, para ser más claros es el núcleo, la parte más importante.

Cuando arrancas un ordenador con cualquier sistema operativo, el Kernel se carga en memoria y permanece allí hasta que apagas el equipo, realizando funciones básicas como pueden ser:
- Comunicación entre procesos
- Control de periféricos
- Manejo de memoria
- Control de interrupciones


No se si me he explicado muy bien, he echo lo posible por ayudarte XD
basicamente gestiona la memoria e impide que se sobre escriban
datos donde "viven" los dispositivos dando privilegios de lectura/escritura
todo sistema operativo tiene que tener algo similar
aunque no se llame kernel

vaya me se adelantaron
Más o menos lo que imaginaba pero concretando. Sois la caña.

Muchas gracias! [oki]
El kernel de un SO es básicamente el corazón del SO. Se encarga de todas la operaciones de bajo nivel, como E/S, gestión de memoria, control de procesos, y llamadas al sistema. Esto último es la parte que permite a las aplicaciones comunicarse con el kernel y acceder a sus servicios, lo que proporciona la abstracción mínima para poder construir aplicaciones usándolo como base, esto incluye tanto aplicaciones de escritorio como drivers (que no dejan de ser programas ;) )
Sin embargo para esta última parte hay niveles de privilegio, ya que una aplicación no necesita acceder a las llamadas del kernel que un driver por ejemplo, y como sería potencialmente peligroso que cualquier aplicación pudiera acceder al harware se prohibe. Por ejemplo si se deja a una aplicación de usuario acceder a la memoria directamente, éste escribir en cualquier parte de la memoria, incluyendo memoria usada por otros programas, o por el propio sistema operativo, lo que sería un total descontrol.

Mucha más info y detallada en la wikipedia inglesa:http://en.wikipedia.org/wiki/Kernel_%28computer_science%29
Y si necesitas información más avanzada te puedo recomendar algunos libros ;)
5 respuestas