Kernel de Linux

Introducción al kernel de Linux

Introducción al kernel de Linux
El núcleo de un sistema operativo es el programa que hace que el hardware y el software funcionen juntos. Con la ayuda de controladores de dispositivo, el kernel de Linux actúa como un traductor que permite la comunicación entre el software y la interfaz de usuario con el hardware.

Este artículo se centrará en el kernel de Linux, que es un kernel monolítico basado en Unix.

Otros núcleos pueden ser MicroKernels que delegan algunas funciones a otros programas, como controladores externos.

Un kernel monolítico es un kernel que monopoliza todas las operaciones de hardware y controladores como partes de sí mismo, en contraste con los microkernels que se ocupan de algunas tareas básicas y dejan el resto como tareas externas, debido a la falta de sistemas operativos populares que utilicen microkernels, ignoraremos su existencia por ahora.Podemos pensar en el kernel como el primer nivel o el nivel más bajo de comunicación entre nuestro SO (sistema operativo) y nuestro dispositivo físico.

Al ser un "traductor de hardware-software", la principal tarea del kernel es asignar recursos de hardware a los procesos de software, principalmente memoria y procesador. El kernel también puede limitar la asignación de memoria a dispositivos defectuosos para evitar bloqueos.

Digamos que instalamos un nuevo sistema Linux y algunos de nuestros dispositivos no funcionan correctamente, como una tarjeta wifi no detectada. Después de hacer algunas comprobaciones, nos damos cuenta de que el sistema operativo que acabamos de instalar no es compatible con nuestra tarjeta wifi. Ante tal escenario podemos editar la configuración de nuestro kernel agregando soporte para el dispositivo que necesitamos. En un artículo anterior sobre LinuxHint tomamos este escenario para enseñar cómo compilar el kernel de Slackware Linux para agregar soporte de hardware. Si queremos, también podemos eliminar el soporte de hardware que no necesitamos de nuestro kernel para hacerlo más liviano.

Mientras modificamos un kernel, podemos editar el soporte de hardware como nativo o podemos cargar el soporte como un módulo cargable llamado según sea necesario y, por supuesto, puede escribir sus propios módulos si es necesario.
Los módulos del kernel tienen ventajas sobre las aplicaciones normales con la misma utilidad (como los controladores externos) porque los módulos solo funcionan según sea necesario. A diferencia de las aplicaciones, los módulos del kernel liberan recursos de hardware que terminan toda su actividad, mientras que las aplicaciones normales pueden retenerlos. Por otro lado, su desventaja es que es menos probable que las aplicaciones regulares hagan que el sistema se bloquee.

Dado que el kernel de Linux administra cada interacción entre nuestro hardware y software, también puede regular las funciones de nuestro sistema. Al editar el kernel de Linux, podemos eliminar o agregar soporte para protocolos de Internet como IPv6, tablas de firewall y todas las formas de interacción entre nuestro hardware y software.

Es fundamental mantener el núcleo de nuestro sistema, el kernel actualizado para evitar fallas de seguridad como 2018-14634 que permite la escalada de privilegios dentro de un sistema. En LinuxHint ya explicamos cómo mantener actualizado su kernel, consulte este artículo para mantener actualizado el kernel de Debian, esto para su kernel de Ubuntu y este para actualizar el kernel de Linux Mint.

Consulte también este artículo adicional escrito en Linux Sugerencia: Tutorial del kernel de Linux para principiantes.

Espero que esta introducción al kernel de Linux le haya resultado útil para comprender sus funciones y su potencial de una manera sencilla. Continúe siguiéndonos en LinuxHint para obtener más consejos y actualizaciones sobre Linux.

Cómo desarrollar un juego en Linux
Hace una década, no muchos usuarios de Linux predecían que su sistema operativo favorito algún día sería una plataforma de juegos popular para videoju...
Puertos de código abierto de motores de juegos comerciales
Las recreaciones gratuitas, de código abierto y de motores de juegos multiplataforma se pueden usar para jugar títulos de juegos antiguos y también al...
Los mejores juegos de línea de comandos para Linux
La línea de comandos no es solo su mayor aliado cuando usa Linux, también puede ser la fuente de entretenimiento porque puede usarla para jugar muchos...