Kernel
En informática, un núcleo o kernel (de la raíz germánica Kern, núcleo, hueso) es un software que constituye una parte fundamental del sistema operativo, y se define como la parte que se ejecuta en modo privilegiado (conocido también como modo núcleo). Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma básica, es el encargado de gestionar recursos, a través de servicios de llamada al sistema. Como hay muchos programas y el acceso al es limitado, también se encarga de decidir qué programa podrá usar un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como multiplexado. Acceder al hardware directamente puede ser realmente complejo, por lo que los núcleos suelen implementar una serie de abstracciones del hardware. Esto permite esconder la complejidad, y proporcionar una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso al programador.
Fuente: Wikipedia
¿Qué es el kernel o núcleo y por qué lleva parches?
La cita que encabeza este artículo es la definición en Wikipedia en el momento de escribir este artículo. Simplificando un poco esta definición, el kernel es el software más importante de un sistema operativo. Es el software que se dedica a repartir el uso del hardware entre los programas que usted utiliza a diario. Su reproductor de video favorito no utiliza directamente la pantalla, le pide al kernel que muestre todos esos fotogramas en pantalla. Cada columna de gemas que elimina en su videojuego favorito es un toque de pantalla que el kernel de Android le comunica al juego qué usted ha realizado. Es imposible que un programa haga algo sin pasar por el kernel. Todos los sistemas operativos modernos tienen uno (sí, incluso los que lleva usted en su teléfono móvil). Es tan importante, que hoy casi ningún dispositivo con electrónica se libra de tener uno, ya que el kernel de Linux, concretamente, ha demostrado ser tan eficiente que se utiliza hasta para lavadoras.
Siendo esta la situación, y añadiendo además que el kernel de Linux existe desde 1991, que es cuando el señor Torvalds hizo la siguiente afirmación en el grupo de noticias comp.os.minix:
Estoy haciendo un sistema operativo (gratuito, sólo un hobby, no será nada grande ni profesional como GNU) para clones AT 386(486). Llevo en ello desde abril y está empezando a estar listo. Me gustaría saber su opinión sobre las cosas que les gustan o disgustan en minix, ya que mi SO tiene algún parecido con él. […] Actualmente, he portado bash(1.08) y gcc(1.40), y parece que las cosas funcionan. Esto implica que tendré algo práctico dentro de unos meses…”
Entenderá la necesidad de parchear dicho núcleo. Lo que significa que, desde su publicación, se han ido incorporado diversas mejoras, actualizaciones y arreglos que se formulan en lo que en informática se conoce como un parche software. En la actualidad, hay una inmensa colección de parches en el kernel, que acaba de sacar su Versión 4.15.
Los parches y mejoras al kernel de Linux son bienvenidos
El kernel de Linux es de código abierto y su código fuente está disponible para que cualquiera pueda revisarlo, actualizarlo y mejorarlo. Además, los parches y mejoras son bienvenidos, pero antes tienen que pasar por un robusto sistema de revisiones. En esencia, un grupo de desarrolladores que trabajan para algunas de las empresas más influyentes del sector y que se dedican a revisar cada propuesta que llega, y deciden qué debe llegar al código fuente y qué no.
La clave está en dar solución a un problema real, lo cual puede parecer simple, pero es la parte más difícil. Por ejemplo, en mi caso yo hice una contribución al kernel de Linux porque mientras trabajaba en el desarrollo de nuestro producto de virtualización de escritorios y aplicaciones Linux QVD, encontré un problema en el kernel que me impedía avanzar en mi trabajo. Una vez detectado el problema, desde Qindel Group, empresa desarrolladora de QVD, contactamos con los desarrolladores detrás del kernel, reportamos el problema y le dimos solución.