¿Qué es el kernel de un sistema operativo?

Por El sabio informático el Dom 3 Sep 2017


Te contamos qué es un kernel y cuál utilizan los principales sistemas operativos utilizados en la actualidad.

Twitter
Google +
Facebook

Tal vez  a más de uno le sorprenda leer que el sistema operativo tiene un kernel, y se preguntará ¿Qué es eso?

Pues sí, todos los sistemas operativos tienen kernel, tanto Android, como Windows, Mac OS o cualquier variedad de Linux.

Y… ¿qué es el kernel de un sistema operativo?

El kernel de un sistema operativo es una parte imprescindible para que ese software, que es el sistema operativo, se pueda ejecutar en un equipo informático y los usuarios podamos ver el resultado en la pantalla  e interactuar con él a través de los periféricos, teclado, ratón, impresoras, etc.

Qué es y que hace exactamente

El kernel, en definitiva, es una parte de software programada para hacer que todas las aplicaciones y el hardware de un ordenador puedan coordinarse para trabajar juntos. Para ello, administra la memoria y el tiempo de procesado que  usan las aplicaciones y gestiona el acceso de los periféricos tanto de entrada como de salida.

Cada vez que encendemos el ordenador el kernel se carga en memoria RAM y permanece ahí hasta que apagamos el equipo.

En realidad sí sería posible usar un ordenador sin kernel, también llamado núcleo del sistema operativo, siempre que no necesitásemos hacer abstracción del hardware, es decir, disponer de una capa a través de la cual las aplicaciones acceden al hardware.

No obstante, los sistemas operativos tratan de facilitar lo más posible el manejo de un dispositivo a los usuarios sin que éstos tengan que tener conocimientos informáticos, de ahí que muchos ni siquiera se hayan detenido nunca a investigar qué es el kernel.

Existen diferentes tipos de kernel o núcleo

  • Monolítico

El modo en que este tipo de kernel está programado hace que todo se desarrolle en una capa, es decir sin módulos, lo que lo hace más rápido.
Si embargo, a la vez es menos seguro pues una modificación en una parte implica compilar todo el programa, de igual manera un error puede afectar a todo el núcleo. 

  • Micronúcleo

Son núcleos de pequeño tamaño que sólo incluyen las funciones básicas del sistema operativo, añadiendo el resto mediante módulos externos.
Este sistema aunque lo hace más seguro, lo cierto es que resulta más lento que el monolítico pues los procesos tienen que esperar para obtener respuesta.

  • Núcleo híbrido

Su arquitectura es modular, parecida al micronúcleo, pero incluye además de las funcionalidades básicas otras adicionales para hacerlo más rápido.

  • Exonúcleo

Trabajan en estructura vertical mediante una serie de bibliotecas que permiten el acceso prácticamente directo al hardware.

Qué tipo de núcleo o kernel tienen los sistemas operativos más conocidos

Utilizan micronúcleo sistemas operativos como 

  • Mac OS X, que utiliza el micronúcleo Mach
  • AIX sistema operativo de la familia UNIX propiedad de IBM
  • BeOS sistema operativo orientado  para dar alto rendimiento en aplicaciones multimedia en PC.
  • QNX, es un sistema operativo en tiempo real de tipo UNIX. Este tipo de sistemas operativos en tiempo real se usan, por ejemplo, cuando es necesaria la toma continua de datos.
  • MorphOS, cuyo logo es una mariposa azul, basado en micronucleo de Quarck, y actualmente se encuentra en  desarrollo.
  • Minix, clon de Unix, se distribuye con su código fuente y fue creado con fines educacionales, por las restricciones que tenía Unix. 

Con un micronúcleo se consigue una abstracción muy básica del hardware, implementando el resto de procesos en servidores en el espacio de usuario, con la ventaja de que el fallo de uno de los servidores no afecta a los demás y no se colgará el sistema.

Sistemas operativos con kernel monolítico

  • Unix, sistema operativo portable, multiusuario y multitarea 
  • Linux, su principal característica que lo diferencia de otros tipos de kernel es que es de código abierto y cualquiera con los conocimientos necesarios puede modificarlo. Esto hace que  se  use en muchos sistemas operativos de la familia GNU/ Linux. Y como kernel monolítico no tiene capa de usuario.

Sistemas operativos de núcleo hibrido

  • Windows. El kernel Windows NT, es modular y tiene dos capas principales, la capa kernel y la capa usuario.  Escrito en lenguaje C. La arquitectura incluye el núcleo híbrido, una capa de abstracción del hardware o HAL, driver, librerías dinámicas y el executive que se relaciona con todos los subsistemas del modo usuario.

Sistemas operativos de exonucleo 

Aunque es un sistema de alto rendimiento,  pues su función es impedir errores de permisos al hardware  y conflictos de libOs, actualmente ningún sistema operativo popular usa  exonúcleo. 

Némesis es un sistema operativo que usa exonúcleo escrito por varias universidades.

Como ves, los sistemas operativos Windows, Linux y Mac Os, los 3 más conocidos popularmente, utilizan diferentes modos de  kernel. 

Aparentemente, siendo Linux y Windows, monolítico e hibrido respectivamente, uno de código abierto otro privado, cabría esperar pocas similitud, cosa que no es así. En los dos el núcleo controla el software del sistema de bajo nivel y el hardware mediante el HAL, los dos manejan los drivers, el almacenamiento en caché, la memoria virtual, los protocolos de red…y otra serie de funcionalidades que en ambos son prácticamente iguales.

Quizás, que es el kernel de un sistema operativo, pueda resultar más difícil de entender cuando accedemos a ellos como simples usuarios, que un kernel diferente pueda llegar a  ofrecernos a los usuarios cosas tan parecidas, sobre todo si pensamos en Windows y Mac más usados por usuarios sin  ningún conocimiento informático.