¿Qué es el núcleo de Linux?

¿Qué es el núcleo de Linux?

¿Qué es el núcleo de Linux?

VALORACIÓN DEL ARTÍCULO:
5/5


Para los usuarios ocasionales y los aficionados menos que duros, Linux es un sistema operativo. Para los puristas, sin embargo, el título «Linux» está reservado para el núcleo que alimenta el sistema operativo. Si tienes curiosidad por saber qué es el núcleo de Linux, respondamos a esa pregunta con la vista puesta en el nuevo usuario.

Índice de contenidos

Modos

Antes de explicar qué es un kernel, es importante entender los términos «modo usuario» y «modo kernel». El modo de usuario es cuando el código de ejecución no tiene la capacidad de acceder directamente al hardware o a la memoria de referencia. Para acceder al hardware y a la memoria, el código que se ejecuta en el modo de usuario debe delegar instrucciones a las interfaces de programación de aplicaciones (API) del sistema. El modo kernel es cuando el código de ejecución tiene acceso ilimitado a todo el hardware y está reservado para las funciones más fiables de un sistema operativo.

¿Qué es un núcleo?

Cada sistema operativo tiene un núcleo. Windows, macOS, iOS, Android, Chrome OS y Linux tienen cada uno un sistema de bajo nivel que se encarga de interconectar todas las aplicaciones con el hardware físico del ordenador. Sin el núcleo, ninguna de sus aplicaciones podría hacer uso del ordenador físico; aplicaciones como Firefox, Chrome, LibreOffice, MS Office o Outlook no funcionarían. El núcleo también es responsable de permitir que los procesos intercambien información utilizando lo que se denomina Comunicación entre Procesos (IPC).

Hay (generalmente hablando) tres tipos de núcleos:

  • Núcleos monolíticos : estos núcleos abarcan la CPU, la memoria, el IPC, los controladores de dispositivos, la gestión del sistema de archivos y las llamadas al servidor del sistema. También es responsable de transferir la memoria libre del sistema a las aplicaciones. Estos tipos de kernels son típicamente mejores para acceder al hardware y a la multitarea.
  • Microkernels : Los microkernels adoptan un enfoque minimalista y sólo gestionan la CPU, la memoria y el IPC.
  • Núcleos híbridos : Los núcleos híbridos tienen la capacidad de decidir qué quieren ejecutar en modo Usuario o en modo Kernel. Aunque esto proporciona lo mejor de ambos mundos, requiere mucho más de los fabricantes de hardware para crear controladores que sirvan de interfaz entre el código en ejecución y el hardware.

Linux utiliza un código abierto, el kernel monolítico, mientras que macOS y Windows utilizan kernels híbridos. El núcleo de Linux fue concebido en 1991 por Linus Torvalds. Hasta el día de hoy, el Sr. Torvalds sigue siendo el desarrollador líder en el núcleo de Linux, mientras que desarrolladores de todo el mundo contribuyen al núcleo de Linux. De hecho, se estima que casi 10.000 desarrolladores, de más de 1.000 empresas, han contribuido al núcleo de Linux (desde que se inició el seguimiento en 2005).

¿Dónde está el núcleo?

Si abre una ventana de terminal y ejecuta el comando ls /boot , verá un archivo llamado vmlinuz-VERSION (donde VERSION es el nombre o número de la versión). El archivo vmlinuz es el kernel de arranque de Linux, y la «z» indica que el kernel está comprimido; así que en lugar de vmlinux tenemos vmlinuz.

La lista del directorio /boot. La lista del directorio /boot.

Dentro de ese directorio /boot hay otros archivos importantes del núcleo, como initrd.img-VERSION, system.map-VERSION, y config-VERSION (donde VERSION es un nombre o un número de versión). Estos otros archivos sirven para los siguientes propósitos:

  • initrd : se usa como un pequeño disco RAM que extrae y ejecuta el archivo real del núcleo.
  • system.map : se utiliza para la gestión de la memoria, antes de la carga del núcleo.
  • config : indica al núcleo qué opciones y módulos cargar.

Módulos

Sin módulos, el núcleo no sería de mucha utilidad. Los módulos encienden eficazmente los controladores necesarios para comunicarse con el hardware sin consumir toda la memoria del sistema. Los módulos también añaden funcionalidad al kernel, como la comunicación con periféricos, la gestión de sistemas de ficheros, la seguridad, etc. Es posible listar, agregar y quitar módulos al kernel con los siguientes comandos:

  • lsmod listará todos los módulos del núcleo actualmente cargados.
  • insmod cargará un módulo del núcleo en el núcleo en ejecución.
  • rmmod descargará un módulo del núcleo en ejecución.

Como puede ver, con la ayuda de algunos comandos simples, el kernel de Linux puede ser bastante flexible.

El núcleo actual

Al momento de escribir esto, el núcleo estable de Linux es 4.18.5, pero no todas las distribuciones de Linux incluirán el último núcleo. De hecho, la distribución de escritorio actualizada del SO Elementary ejecuta el kernel 4.15.0-30. ¿Qué significa ese número? En el caso del último kernel en Elementary OS, significa:

  • 4 es la versión principal
  • 15 es la versión Minor
  • 0-30 es la revisión

También es posible descargar diferentes versiones del núcleo de Linux desde kernel.org y compilarlo usted mismo. La compilación del kernel de Linux es una tarea que es mejor dejar a aquellos que realmente saben lo que están haciendo. Un kernel mal compilado puede hacer que un sistema no arranque. Por lo tanto, a menos que esté listo para sumergirse en la desafiante tarea de compilar código en este nivel, utilice el kernel predeterminado que se envía y actualiza en la distribución de su elección.

TAMBIÉN TE INTERESA

OnePlus Nord 4 precio

OnePlus Nord 4: un gama media con IA, metálico y con gran batería

El OnePlus Nord 4 se ha presentado de forma oficial. La marca vuelve a dar un paso más en su gama media con este esplendoroso smartphone que llega a España para destronar a sus oponentes y plantar cara a su competencia premium. De hecho, por la red ya circulan comentarios muy positivos de este dispositivo

ordenador sobremesa Deep Gaming

Deep Gaming, la marca española confiable para personalizar un PC

Como en casi todos los ámbitos, en el mundo del gaming hay dos tipos de personas: los que apuestan un por un PC ya configurado o los que quieren personalizar su PC. Para estos últimos, Deep Gaming es una gran opción para empezar a poner a punto su setup. Hablamos de una marca española con

Qué es un CDN y por qué es relevante

Cómo mejorar la experiencia web con un CDN

Imagínate visitar un sitio web y tener que esperar largos segundos para que se cargue cada página o imagen. Esta experiencia frustrante no solo afecta nuestra paciencia, sino que también puede influir negativamente en la percepción de una marca o empresa. Aquí es donde entra en juego el CDN, o Content Delivery Network, una tecnología

como detectar ofertas de trabajo falsas

Ojo con las ofertas de trabajo falsas: aprende a detectarlas

Las ofertas de trabajo falsas están a la orden del día. En muchos casos parecen reales porque coinciden en un momento en el que estamos en búsqueda activa de empleo. Puede que nos hallamos inscrito a un proceso de selección en LinkedIn y, de repente, alguien intenta contactar con nosotros por mail o WhatsApp. A