kernel
¿Qué es?
El núcleo o kernel es la parte central de un
sistema operativo y es el que se encarga de
realizar toda la comunicación segura entre el
software y el hardware del ordenador. El núcleo
kernel es la parte más importante del sistema
operativo Unix y sus derivados, como Linux y
todas las distribuciones que dependen de él.
Función:
Permite la comunicación entre el software y los dispositivos físicos de un
ordenador, tanto el hardware interno como la placa base, procesador,
memoria y unidades de almacenamiento, hasta aquellos que se consideran
periféricos, como el ratón, teclado, monitor, llaves USB, cámaras, teléfonos,
etc.
El núcleo kernel también debe hacer una gestión de la memoria RAM. La
memoria debe ser utilizada de manera eficiente, dividiéndola entre los
distintos servicios y aplicaciones para que todo funcione de forma fluida, ya
que un sistema operativo actual es ‘multitarea’, por lo que se ejecutan todo el
tiempo varias aplicaciones y servicios al mismo tiempo.
Al igual que la memoria, el procesador también debe ser gestionado por el
núcleo de Linux. Actualmente tenemos procesadores con múltiples núcleos e
hilos, así que el kernel debe dividir las tareas que hace el ordenador entre
todos los núcleos de la CPU para que esas tareas se realicen correctamente
sin solaparse unas con otras
¿Para qué sirve un kernel?
El Kernel o núcleo de un sistema operativo sirve para administrar los recursos de
hardware solicitados por los diferentes elementos de software y hacer de
intermediario decidiendo a que y cuando se concede este acceso evitando así
sobrecarga del sistema, recursos innecesarios y acceso a software malicioso al propio
Kernel y llegar a poder controlar así todo el sistema. De este modo el Kernel sirve como
elemento de seguridad teniendo que pasar por varias capas antes de poder tener acceso,
además tiene que distribuir los recursos de manera eficiente y ordenada para que el
Hardware trabaje junto al Software de la mejor manera posible.
Aunque usualmente relacionamos un Kernel o un núcleo del sistema operativo a
un PC, también está presente y sirve para hacer funcionar todos los
computadores que podemos encontrar hoy en día, como por ejemplo un ordenador
de a bordo de un coche o un barco, una raspberry PI que ejecuta una versión
adaptada de Linux Debian o los dispositivos móviles con Android e iOS, que
también disponen de un Kernel basado en Linux / Unix.
Tiene también como trabajo conceder acceso a todos los periféricos que
tengamos conectados e interactuar con el software que los solicite, aunque no
sean los usuales con los que trabajamos. Por ejemplo si
ocasionalmente conectamos un móvil para usarlo como webcam con DroidCam,
este Kernel se encarga de conceder los permisos necesarios al software para
gestionar y poder tener la imagen y el audio para poder usarla en algún software
de videoconferencia o reuniones si por ejemplo tele trabajamos desde casa o
cualquier otro lugar.
El Kernel es el encargado de hacer funcionar básicamente todo, tiene que ser
capaz de arrancar, por ejemplo, un PC desde que lo encendemos hasta que vemos
visible el escritorio, todo esto comunicándose con los elementos hardware que
dispone el PC y que también son necesarios para hacerlo funcionar, una vez que
tengamos el escritorio deberá ser capaz de hacer funcionar los programas que
nosotros queramos abrir y hacerlos funcionar en nuestro PC.
¿Dónde se ocupa?
El kernel se encuentra en el centro del sistema operativo y controla todas las
funciones importantes del hardware, ya sea un sistema Linux macOS o Windows, un
smartphone, un servidor, una virtualización como KVM o cualquier otro tipo de
ordenador.
¿Cómo se ejecuta?
Puede acceder directamente al hardware. Un kernel es la base de la interacción entre
el hardware y el software y gestiona sus recursos de la forma más eficiente posible.
¿Qué son los módulos de kernel?
Un módulo del kernel es un fragmento de código o binarios que pueden ser cargado y
eliminados del kernel según las necesidades de este. Tienen el objetivo de extender
sus funcionalidades son fragmentos de código que pueden ser cargados y eliminados
del núcleo bajo demanda