¿Qué es el kernel o núcleo Linux? ¿Para qué sirve?

Seguramente muchas veces te habrás preguntado que es un kernel, para qué sirve y que papel juega dentro del sistema operativo. Pues bien, hoy vamos a intentar responder a estas preguntas de manera breve. Como es un tema ciertamente complejo, si lo queremos analizar en profundidad, al final de la entrada os dejo varios enlaces al respecto.

Quizás te puede interesar escuchar el último programa de podcast donde te hablo del mismo tema.

¿Qués es el kernel o núcleo? ¿Para qué sirve?

El kernel es el corazón y el núcleo de un sistema operativo. Se trata de la parte más importante de este. Siempre que se inicia un sistema, el kernel es el primer actor que sale a escena después del cargador de arranque. Una vez iniciado el sistema, el kernel permanece en la memoria hasta que se apaga el sistema.

El kernel es responsable de tareas de bajo nivel como administración de discos, la administración de la memoria, la administración de tareas, etcétera. Proporciona una interfaz entre el usuario y los componentes del hardware. Cuando un proceso realiza una solicitud al kernel, se denomina llamada al sistema.

Las funcionales principales de un núcleo son:

  • Acceder a los recursos del equipo: un núcleo puede acceder a varios recursos, como la CPU, los dispositivos de entrada y salida, entre otros recursos. Actúa como un puente entre el usuario y los recursos del sistema.
  • Gestión de recursos: Es deber de un núcleo compartir los recursos entre varios procesos de tal manera que haya un acceso uniforme a estos.
  • Gestión de la memoria: cada proceso necesita algo de espacio en la memoria. Por lo tanto, la memoria debe asignarse y desasignarse para su ejecución. Toda esta gestión la realiza el kernel.
  • Gestión de dispositivos: los procesos utilizan los dispositivos periféricos conectados en el sistema. La asignación de estos dispositivos es administrada por el kernel.

En el caso de GNU/Linux el núcleo está escrito mayormente en lenguaje C, aunque también se utiliza el lenguaje ensamblador. Actualmente las líneas del código fuente del kernel en linux son más de 225000.

Esquema de funcionamniento del kernel

La historia del kernel en GNU/Linux

Como seguramente sabrás, a principios de los años 80 el hacker y programador Richard Stallman, que por entonces trabajaba en el MIT, se puso manos a la obra para crear su propio sistema operativo, que más tarde llamaría GNU. Con el paso de los años ya tenía creados una gran parte de las aplicaciones de ese sistema, como un compilador (gcc), el editor de textos (Emacs) o el intérprete de comandos (Bash), además de gran número de bibliotecas, esenciales para el sistema. Pero le quedaba la parte más importante, el núcleo o kernel.

La respuesta a esa necesidad vino desde Finlandia, cuando en el año 1991 un estudiante universitario llamado Linus Torvalds, empezó a escribir el núcleo Linux inspirado por otro sistema operativo, llamado Minix. Ya en el año 1992 Torvalds decidió utilizar la licencia GPL, creada por Richard Stallman, por lo que pasó a ser software libre.

La unión de ambas piezas fue un chute de adrenalina para muchos programadores y hackers del mundo, que se pusieron manos a la obra, colaborando a través de Internet, resultando el sistema operativo libre y completamente funcional que sigue usándose hoy en día, conocido como GNU/Linux

Para saber más

Aquí os dejo una serie de enlaces que os pueden servir:

¿GNU? ¿Linux? ¿De qué me hablas?

Entrada en Wikipedia sobre el kernel Linux

Redhat.com –  Qué es el kernel de Linux?

Proyecto GNU – El sistema operativo GNU