Con alrededor de 30 millones de líneas de código, el «Kernel (Núcleo)» de «Linux» es uno de los proyectos de «código abierto» más grandes del mundo. Pero, ¿Qué es el «Kernel de Linux»?, y ¿Cómo funciona dentro de los «Sistemas Operativos» libres y abiertos conocidos como «Distribuciones GNU/Linux» y otros más?, ¿Que tipos de «Kernels» existen y en que se diferencian?

Estás y otras interrogantes tan importantes y de moda, esperamos abarcar y aclarar dentro de está publicación, sobre todo hoy en día, cuando hay tantas noticias importantes relacionadas con la nueva versión del «Kernel de Linux» que va por la serie 5, la cuál avanza a gran velocidad, y las relacionadas con el nuevo «Kernel» del futuro «Sistema Operativo» de la Compañía «Huawei».

Todo sobre el Kernel de Linux: ¡Feliz Cumpleaños número 28!

El «Kernel» oficial de «Linux» tiene muchos sitios interesantes e importantes que pueden tomarse como oficiales de la Comunidad del «Software Libre», los cuales incluyen mucha documentación y noticias actualizadas al respecto de su estado actual y desarrollo.

Kernel de Linux: Introducción

Siendo uno de los más reconocidos el de Kernel.org, KernelNewbies.org y el Repositorio del «Kernel de Linux» en GitHub del famoso desarrollador «Linus Torvalds». Por lo que, más adelante, cualquiera pudiera ampliar lo aquí expuesto para seguir expandiendo sus conocimientos sobre el «Kernel de Linux».

Todo sobre el Kernel de Linux

¿Que es un Kernel?

La palabra «Kernel», tan nombrada hoy en día por muchas personas, a través de los distintos «Medios de comunicación y Redes sociales», es una de esas palabras que circula habitualmente en el mundo de la «terminología informática», pero que a pesar de lo nombrada que es, seguramente, la mayoría no sabría qué responder con una exactitud apreciable.

Significado

Así que, para entenderla en su justa dimensión, lo primero que debemos saber sobre la palabra «Kernel», es que tiene su procedencia lingüística en la raíz de origen germano escrita como «Kern», la cuál se traduce fielmente como «Núcleo».

Lo que nos deja en consecuencia, y hablando sobre el área de la «Informática y la Computación», y específicamente sobre «Sistemas Operativos», que un «Kernel» viene siendo el «Núcleo» o centro de los tradicionales «Sistemas Operativos», y no el «Sistema Operativo» en si mismo. Por mucho, que el concepto de «Kernel» se use muy frecuentemente para referirse o sustituir al concepto de «Sistema Operativo», no son lo mismo sino conceptos relacionados o complementarios.

Content PC Kernel de Linux: ¿Que es un Kernel?

Concepto

Dependiendo del «Sistema Operativo» del que se hable, un «Kernel» puede tener ciertas características, funciones o alcances, de diferencia con respecto a otros, pero en términos globales, se puede decir que un «Kernel» es:

“La porción de software dentro de un Sistema Operativo que se ejecuta en modo privilegiado, es decir, el software que facilita que los diferentes programas del Sistema Operativo o instalados sobre el Sistema Operativo, gocen de un acceso seguro a los componentes físicos (hardware) del equipo o dispositivo, para lograr así una eficiente y eficaz gestión de los recursos al alcance”.

Kernel: Software de Sistema

Concepto, que nos deja claramente definido que no es un «Sistema Operativo» sino un «Software de Sistema» más, uno de los más importantes dentro de este. Ya que un «Software de Sistema», según un artículo anterior nuestro, es definido como:

“Todos aquellos programas que comprenden el Sistema Operativo, como los Controladores de dispositivos, los Utilitarios de sistema y toda aquella herramienta que sirva para el control específico de las características del ordenador. Es decir, todos aquellos programas que permiten la gestión (administración) de los recursos relativos a la memoria, discos, puertos, dispositivos de comunicaciones, y periféricos (impresoras, pantallas, teclados, entre otros)”.

Kernel de Linux: Kernel y Sistema Operativo

Diferencia con el Sistema Operativo

Y mientras, entonces el Kernel es solo una pieza más, aunque muy importante dentro del «Sistema Operativo», este último puede definirse en términos generales como la totalidad empaquetada y distribuida de cierta cantidad de «Software de Sistemas (Kernel+Controladores+Utilitarios)» y de «Software de Aplicaciones (Programas de Usuario)». Lo que muchas veces se conoce en el mundo del «Software Libre» como «GNU/Linux», pero que se suele abreviar simplemente como «Linux», ya sea por comodidad, desconocimiento o falta de valoración positiva al aporte de la «Comunidad GNU» al éxito de «Linux».

Siendo entonces, fácilmente describir al «Sistema Operativo» como:

“El conjunto de programas informáticos que permite la administración eficaz de los recursos de un equipo (servidor, ordenador, móvil, tableta, entre otros). Un Sistema Operativo comienza a trabajar apenas se enciende el equipo, ya que gestiona el hardware desde los niveles más básicos y permite además la interacción con el usuario. El Sistema Operativo cumple con cinco funciones básicas: el suministro de interfaz al usuario, la administración de recursos, la administración de archivos, la administración de tareas y el servicio de soporte y utilidades”.

Y describir a los «Software de Aplicaciones» como:

“Todos aquellos programas utilizados por los usuarios para la concreción de una tarea, y en este grupo podemos encontrar software del tipo ofimático, de diseño gráfico, de contabilidad y de electrónica, por solo citar una pequeña fracción de todas las categorías de aplicaciones que podemos encontrar en el mercado. Por ende, una aplicación se trata de programas que permiten desarrollar diferentes tareas en un ordenador, portátil, tableta, móvil u otros tipos de equipos tecnológicos”.

Kernel de Linux: Tipos de Kernel

Tipos de Kernel

Espacio o Modos

Cuando se habla del «Kernel», también suele usarse el siguiente nombre: «Espacio de Kernel». Y junto ha este, se suele leer de forma asociada el siguiente: «Usuario» o «Espacio de Usuario», cuando se habla de «Sistemas Operativos». Y ambos, pueden ser explicados de la siguiente forma: El «Espacio de Kernel» es la parte del Sistema Operativo que se ejecuta con los altos privilegios mientras que el «Espacio de Usuario» normalmente se ejecuta con privilegios bajos para permitir la ejecución de aplicaciones.

En otras palabras, puede decirse que el «Espacio o Modo» de «Kernel» y «Usuario» son términos que definen específicamente el modo de ejecución del procesador. En el primero, el código que se ejecuta puede controlar completamente la «CPU» mientras que en el segundo, el código que se ejecuta tiene ciertas limitaciones. Por ejemplo, las «Interrupciones  (IRQ)» de la «CPU» local sólo pueden deshabilitarse o habilitarse mientras se ejecutan en «Modo Kernel». Si se intenta en «Modo Usuario», se genera una excepción y el «Kernel» se encargará de manejarla.

Kernel de Linux: Espacio de Usuario y Espacio de Kernel

Estos 2 conceptos, también suelen referirse específicamente a la «protección de la memoria» o a los «espacios de direcciones virtuales» asociados al «Kernel» o las aplicaciones del «Usuario». De forma tal, que cada «Espacio o Modo» conserva un área de memoria reservada. Y así, el «Espacio de Kernel» está protegido para que las aplicaciones del usuario no puedan acceder directamente a él, mientras que el «Espacio de Usuario» puede ser accedido directamente desde el código que se ejecuta en «Modo Kernel».

Forma de trabajo

En una arquitectura típica de un «Sistema Operativo», el «Kernel» del mismo, es responsable de acceder y compartir el «HW» de forma segura y equitativa con las múltiples aplicaciones de usuario. Esto debido, a que el «Kernel» ofrece un conjunto de «APIs» que las aplicaciones solicitan, mediante lo que se conoce como «Llamadas del Sistema». Estas «APIs» son diferentes de las «APIs» de las librerías normales, porque son el límite en el que los procesos que se ejecutan cambian del «Modo Usuario» al «Modo Kernel».

Además, el propio código del «Kernel» puede separarse lógicamente, una parte en si mismo, y otra parte en el código de los controladores de los dispositivos. Así, el código de los controladores de los dispositivos es responsable de acceder a dispositivos particulares mientras que el código del «Kernel» es genérico. De forma tal, que el «Kernel» pueda ser dividido en múltiples subsistemas lógicos o módulos, que gestionen por ejemplo, el acceso a archivos, redes, gestión de procesos, entre muchos otros.

Kernel de Linux: Forma de trabajo

En el caso, del «Kernel de Linux» está característica hace que el mismo tenga un «diseño modular». Lo que en realidad quiere decir modular, es que permite insertar y eliminar código bajo demanda con el fin de añadir o quitar una funcionalidad. Esto nos deja con que los «Módulos del Kernel», no son más que fragmentos de código, abierto o cerrado, que se pueden añadir o quitar del mismo, con el fin de añadir o quitar una funcionalidad.

Por ejemplo, al encenderse un ordenador y cargarse el sistema de arranque, se carga un «Kernel» residente mínimo en memoria. Al estar en marcha, completamente el «Sistema Operativo» y solicitarle alguna característica o función que no este presente en dicho «Kernel» residente, este carga dinámicamente en memoria el correspondiente «Módulo del Kernel» necesario, que algunas veces suele ser un «Controlador»para un «HW» o «SW» en especifico.

Kernel de Linux: Listar módulos

 

Si es durante un proceso de instalación, el «Sistema Operativo» prueba y detecta todo «HW» en el equipo o dispositivo. Para con esa información y la proporcionada por el usuario, el programa de instalación decida qué «Módulos del Kernel» debe cargar en el momento de arranque. Luego, el instalador configura el mecanismo de carga dinámica para que funcione de forma transparente.

O si se añade un nuevo «HW» después de la instalación, el cual requiera un nuevo «Módulo del Kernel», el «Sistema Operativo» configura la carga del módulo adecuado para el nuevo hardware, de forma tal, que al arrancar la próxima vez se cargue el mismo, y siempre y cuando este soportado, de lo contrario se deberá incluir y configurar manualmente el módulo necesario para él. Los «Módulos del Kernel» de «Linux» suelen ser especificado manualmente dentro de un archivo de configuración de módulos, ubicado con la siguiente ruta y nombre: «/etc/modules.conf».

Tipos de Kernel

Monolítico

Aquel en el que no hay protección de acceso entre los distintos «Subsistemas» que lo componen, y en el que las funciones públicas pueden ser llamadas directamente entre los diferentes «Subsistemas». Aunque, la mayoría de los mismos suelen establecer una separación lógica entre dichos «Subsistemas», especialmente entre el «Espacio de Kernel» y los «Controladores de dispositivos» con «APIs» relativamente estrictas.

Estos suelen ser grandes y complejos, y tratan de contener todos los servicios del «Sistema Operativo», es decir, no son modulares. Razón por la cuál, tienen un rendimiento mayor que uno del tipo «Microkernel», pero cualquier cambio a realizarse sobre el mismo, requiere su recompilación y el reinicio del «Sistema Operativo» para aplicar los nuevos cambios.

Kernel de Linux: Kernel Monolítico

Pros

  • Accesos más directo al hardware por parte de los programas de usuarios.
  • Mejores facilidades de comunicación para los procesos y entre si mismos.
  • Detecciones e instalaciones de HW más rápidas en caso de ser compatible.

Contras

  • Mucho consumo de memoria.
  • Menos seguro, porque todo se ejecuta en modo Kernel.
Microkernel

Aquel en el que grandes secciones del mismo están protegidas unas de otras, normalmente funcionando como servicios en el espacio de usuario. Característica que le da sentido a su nombre, ya que debido a que partes significativas del mismo se están ejecutando en «Modo Usuario», el código restante que se ejecuta en «Modo Kernel» es significativamente menor.

En este tipo, el «Kernel» como tal, contiene sólo el código suficiente que permita el paso de mensajes entre diferentes los procesos en ejecución. Lo que obliga a implementar un «Programador» y un «Mecanismo IPC» en el «Kernel», así como la gestión de memoria básica para configurar la protección entre aplicaciones y servicios.

Además, los servicios están aislados y por lo tanto, los errores en un servicio no afectarán a otros servicios, o la falla de alguno, permitirá su reinicio sin afectar a todo el sistema. Tarea difícil de implementar, que impone un enfoque modular al «Kernel» para así ofrecer protección de memoria entre servicios, pero a un coste de rendimiento.

Kernel de Linux: Microkernel

Pros

* Mayor nivel de portabilidad
* Mayor nivel de seguridad

Contras

* Mayor nivel de abstracción del HW
* Mayor lentitud para manejar el HW
* Mayor tiempo de gestión de los procesos y de acceso de los mismos al Kernel

Híbridos

Aquel con la capacidad de escoger y elegir lo que desea ejecutar en «Modo Usuario» y en «Modo Kernel». Característica que permite ofrecer lo mejor de ambos mundos, pero que deja a menudo, una gran carga de trabajo sobre los fabricante de «HW», ya que la responsabilidad del buen funcionamiento del controlador depende de ellos. Este tipo suele presentar algunos problemas de latencia, que son inherentes de los «Microkernels».

Kernel de Linux: Kernel Híbrido

Pros

  • Mas flexibilidad entre los modos de ejecución con respecto a los Monolíticos.
  • Menor necesidad de instalaciones con respecto a los Monolíticos.

Contras

  • Niveles de latencia similares con respecto a los Microkernels.

Historia y Licenciamiento del Kernel Linux

Inicio

El origen del «Kernel de Linux» se puede decir que se inicio, con la típica y harta conocida historia de «Linus Torvalds», su creador, pero la verdad es que para no repetir la misma, este puede resumirse en:

“En el año 1991, Linus Torvalds (LT), de 23 años de edad, Estudiante de Informática de la Universidad de Helsinki en Finlandia, inicio el desarrollo no oficial de Linux (versión 0.01), anunciando la existencia del mismo, un 25 de agosto de 1991 sobre un grupo de noticias en Internet. Luego, un 5 de octubre de 1991, anuncio la primera versión oficial de Linux (versión 0.02). Con esta versión oficial pudo ejecutar Bash (GNU Bourne Again Shell) y gcc (El compilador GNU de C). Logrando así su objetivo de crear un Sistema Operativo igual ha UNIX, pero que funcionase sobre cualquier ordenador compatible (PC) de la época (Clones AT 386/486)”.

Kernel de Linux: La Historia de Linux

Actualidad

Desde aquel entonces hasta nuestros días, se han hecho muchísimas actualizaciones al mismo, este ha crecido enormemente en tamaño y complejidad, y se han creado centenares de «Sistema Operativo» y/o «Distribuciones» basadas en dicho «Kernel», con sus respectivas versiones a lo largo del tiempo, con la participación de una cada vez más grande Comunidad de programadores y usuarios, de todo el mundo.

Sin embargo, para llegar ahí primero, es decir, a la necesidad de crear un Sistema Operativo o Programa nuevo de forma independiente o colectiva, libre y abierta, por parte de él u otros, se dieron una cadena o serie de eventos anteriores que están íntimamente ligados a la «Historia del Movimiento Hacker y del Software Libre», la cual te invitamos a leer más detalladamente en este, nuestro anterior artículo llamado "El Movimiento Hacker: Estilo de vida y Software Libre", para que complementes este punto de la lectura.

Hechos importantes a tener en cuenta y no olvidar, ya que muchas veces se suele asociar el origen o la fama de «Linux» a historias de éxito, relacionadas con «Facebook, Amazon y Google», o su uso en plataformas bancarias, de súper-ordenadores o dispositivos móviles. Cuando todo esto en realidad, ha sido el resultado de un gigantesco y global esfuerzo de desarrollo colaborativo, que ya alcanza casi 3 décadas.

Avance

Sin embargo, es digno de reconocer que, actualmente tanto desarrolladores independientes como organizaciones privadas o compañías/empresas, a nivel mundial, están patrocinando o colaborando con dicho objetivo, de forma directa o indirectamente. Lo que fácilmente nos ayuda a darnos una idea de cómo «Linux», como «Kernel» o «Sistema Operativo», es capaz de crecer y adaptarse a las nuevas tendencias y avances tecnológicos, en todos los sectores de la vida tecnológica moderna, de una forma más rápida que cualquier otro. Lo que hace de la historia de «Linux», una historia viva que todavía se escribe.

Por lo que actualmente, se puede decir con absoluta certeza, que la visión de «Linux» y el «Software Libre» ha cambiado drásticamente la forma en que se desarrolla y distribuye el «Software». Los Desarrolladores y Organizaciones de hoy en día, están tratando de entender: ¿Cómo innovar en un mundo donde el software es, puede o debe ser, gratuito, libre y abierto? y ¿Cómo sacar provecho o ganancia de las miles de horas/labor de ingeniería invertida en la construcción colaborativa de software?

Kernel de Linux: Licencia GPL

Licenciamiento

Ahora, específicamente lo que tiene que ver con «Linux», su éxito basado en la filosofía libre y abierta, desde el mismo momento de su creación y desarrollo, se debe en parte a que se ha ido adaptando a las estipulaciones «Copyleft» de la «Fundación de Software Libre (FSF)», acción que causo el origen de la «Licencia Pública General (GNU-GPL)».

Dichas estipulaciones «Copyleft» expresan que:

“Cualquier cosa tomada gratuitamente y modificada, debe a su vez, ser distribuida de forma gratuita”.

Lo que hace en la práctica, que:

“Si Linux o otros componentes de GNU se desarrollan o modifican para crear una nueva versión de Linux, esa nueva versión debe ser distribuida de forma gratuita. Y esta es la base del desarrollo de código abierto que evita que un desarrollador u otros grupos se beneficien del trabajo libremente disponible de otros”.

La «GNU-GPL», en general, no prohíbe la «propiedad intelectual», por lo que es común que ciertos creadores de componentes de «Linux», como «Kernel» o «Sistema Operativo», posean «derechos de autor» sobre diversos componentes. Ya que está, garantiza que esos componentes permanezcan libres y sean distribuidos libremente. Situación, que a su vez ha gestado que, aunque el «Software» siga siendo gratuito, algunos Desarrolladores u Organizaciones, realicen distribuciones comerciales y cobren por servicios de valor agregado a las mismas, como servicios de soporte o desarrollo personalizado. Si quiere saber más sobre las licencias, acceda al siguiente enlace  "Licencias: GNU.org".

Licencias aplicadas

De forma tal, que hoy en día, «Kernel de Linux» se proporciona únicamente bajo los términos de la «GNU-GPL versión 2 (GPL-2.0)» , tal y como se explica en los siguientes archivos de la documentación incluida:

  • LICENSES/preferred/GPL-2.0
  • LICENSES/exceptions/Linux-syscall-note
  • COPYING

Documentación que proporciona una descripción de cómo se debe anotar cada archivo fuente para que la licencia aplicada a estos sea clara e inequívoca, y no afecten la licencia general que aplica al «Kernel de Linux». Específicamente en el archivo COPYING, la licencia descrita se aplica a la fuente del núcleo como un todo, mientras que los archivos fuentes individuales pueden tener una licencia diferente pero compatible con la «(GPL-2.0)», tal como se muestra en el texto a continuación:

GPL-1.0+  :  GNU-GPL v1.0 o superior
GPL-2.0+  :  GNU-GPL v2.0 o superior
LGPL-2.0  :  GNU-Library-GPL v2.0 solamente.
LGPL-2.0+ :  GNU-Library-GPL v2.0 o superior.
LGPL-2.1  :  GNU-Lesser-GPL v2.1 solamente.
LGPL-2.1+ :  GNU-Lesser-GPL v2.1 o superior.
Kernel de Linux: Estructura

Estructura del Sistema Operativo Linux y del Kernel Linux

Sistema Operativo Linux

El «Sistema Operativo Linux» se compone de varias piezas diferentes:

  • Cargador de arranque (Bootloader): Programa que gestiona el proceso de arranque del SO en los Equipos. Por lo general, consta de una pantalla de bienvenida que aparece para mostrar las alternativas de arranque y que luego desaparece para dar inicio a la opción seleccionada.
  • Núcleo (Kernel): Programa del Sistema Operativo que gestiona la CPU, la Memoria y los Periféricos. Por ser la pieza de software central y esencial de todo, posee el nivel más bajo (importante) dentro del mismo.
  • Sistema de Inicio (Init System): Subsistema que arranca el Espacio de usuario predeterminado o seleccionado, y que se encarga de controlar los demonios necesarios por defecto y de las aplicaciones instaladas que lo requieran. Una vez el Cargador de arranque se ejecuta y termina, el Sistema de inicio toma control del proceso de arranque.
  • Demonios (Daemons): Servicios de fondo (impresión, sonido, programación, red, entre muchos otros) que se inician durante el arranque o después de iniciar sesión en el escritorio.
  • Servidor Gráfico (Graphical Server): Subsistema que muestra las gráficas (interfaz visual de consola y escritorio) en los monitores (pantallas). Se le conoce comúnmente como el Servidor X o simplemente como X.
  • Entorno de Escritorio (Desktop Environment): Programa que gestiona la Interfaz Gráfica de Usuario (GUI) creada por el Servidor X, es decir, todo aquello con lo que los usuarios interactúan realmente. Los entornos de escritorio no suelen ser solo un simple paquete de escritorio, menús o ventanas, la mayoría suele incluir aplicaciones integradas, tales como: Administradores de archivos, herramientas de configuración, Navegadores web y hasta Juegos.
  • Aplicaciones (Applications): Estás suelen ser el resto de los programas no incluidos en los Entornos de Escritorio, es decir, todas aquellas aplicaciones nativas o externas que solemos usar para trabajar o gestionar nuestros recursos disponibles. Estás pueden instalarse vía consola, por gestores de paquetes gráficos, manualmente o simplemente ejecutarse sobre el SO.

Kernel Linux

El «Kernel Linux» se compone de varios elementos (carpetas/directorios) que a su vez representan una parte o función esencial dentro del mismo:

  • arch: Contiene el código específico de arquitectura soportada; y dentro de ella cada arquitectura se implementa en una subcarpeta específica, por ejemplo, arm, arm64, x86, entre muchas otras.
  • block: Contiene el código del subsistema de bloques que se ocupa de leer y escribir los datos de los dispositivos de bloques, es decir, gestiona todo lo relacionado con las solicitudes de E/S de bloques.
  • certs: Contiene el código que implementa el soporte para la verificación de firmas mediante certificados.
  • crypto: Contiene el código que implementa los algoritmos de criptografía, así como un framework que permite descargar dichos algoritmos en hardware.
  • documentation: Contiene toda la documentación de los subsistemas existentes. Lo que suele incluir cosas como: opciones de línea de comandos del Kernel de Linux, descripción de los archivos y del formato sysfs, entre muchos otros.
  • drivers: Contiene el código que implementa el soporte para los múltiples dispositivos existentes o ha agregarse.
  • firmware: Contiene los múltiples archivos de firmware en formato binario o hexadecimal que se utilizan para que los dispositivos funcionen tal y como el fabricante lo ha diseñado.
  • fs: Contiene el código que implementa el Sistema de ficheros y de los varios controladores del mismo.
  • include: Contiene los ficheros (archivos) de cabecera del Kernel Linux.
  • init: Contiene los ficheros (archivos) del Sistema de Inicio (Init System).
  • ipc: Contiene el código que implementa las llamadas al Sistema IPC (Inter Process Communication).
  • kernel: Contiene el código que implementa la gestión de procesos y las tareas del programador, de rastreo, gestión de tiempo, código genérico de IRQ, bloqueo, entre muchas otras.
  • lib: Contiene el código relacionado con las funciones genéricas, tales como: clasificación, sumas de comprobación, compresión y descompresión, manipulación de mapas de bits, etc.
  • mm: Contiene el código relacionado con las funciones de gestión de memoria, tanto para la memoria física como para la virtual, incluyendo los asignadores de página, swapping, mapeo de memoria virtual, entre muchas otras.
  • net: Contiene el código relacionado con la implementación ciertas pilas de red, incluyendo IPv4 e IPv6; además de la implementación de los sockets BSD, enrutamiento, filtrado, programación de paquetes, puenteo, entre muchas otras.
  • samples: Contiene los ficheros (archivos) de muestras de controladores.
  • scripts: Contiene los ficheros (archivos) de procesamiento por lotes (ejecutables) que suelen ser partes del SO en construido.
  • security: Contiene los ficheros (archivos) relacionados con el framework del Módulo de Seguridad de Linux que permite extender el modelo de seguridad por defecto (Unix) así como la implementación de múltiples extensiones tales como SELinux, smack, apparmor, tomoyo, entre muchos otros.
  • sound: - Contiene los ficheros (archivos) relacionados con el programa ALSA (Advanced Linux Sound System) así como de la antiguo programa de sonido Linux (OSS).
  • tools: Contiene los ficheros (archivos) relacionados con las herramientas disponibles dentro del espacio de usuario para probar o interactuar con los demás subsistemas del Kernel de Linux.
  • usr: Contiene los ficheros (archivos) relacionados con el soporte necesario para incrustar un archivo initrd en la imagen del Kernel de Linux.
  • virt: Contiene los ficheros (archivos) relacionados con el Hipervisor KVM (Kernel Virtual Machine).

De resto, el «Kernel Linux» incluye por fuera una serie de archivos importantes tales como: Kbuild y Kconfig, útiles para conocer como funciona el sistema de configuración/construcción del mismo. Y otros informativos pero igual de importantes, tales como: COPYING, CREDITS y MAINTAINERS.

¿Cómo se compila un Kernel?

Este paso lo veremos en nuestro próximo artículo a publicar, como una continuación de este, ya que es un tema extenso que requiere un gran nivel de detalle y mucha explicaciones al respecto.

Kernel de Linux: Conclusión

Conclusión

De todo estos conceptos e informaciones presentadas y analizadas, podemos entonces concluir que:

Primeramente, que un «Kernel» puede ser definido como una parte central y esencial de todo «Sistema Operativo», que sirve de intermediario entre el «HW» y el «SW» de un equipo o dispositivo. Y que ambos, «Kernel» y «Sistema Operativo» trabajan en perfecta sinergia, ya que mientras el «Sistema Operativo» le envía al «Kernel» las necesarias y requeridas serie de órdenes procesadas, el «Kernel» envía a los respectivos componente de «HW» que correspondan las ordenes resultantes o derivadas, con el fin de que sean ejecutadas.

Hecho que origina, en cierta forma, la siempre presente confusión y debate, sobre que «Kernel» y «Sistema Operativo» son lo mismo, cuando en realidad, como ya hemos dicho antes, el «Kernel» es más como el epicentro del «Sistema Operativo» , pero a la vez, no es más que un «Software de Sistema» más que forma parte dentro del «Sistema Operativo».

Y en segundo lugar, por lo menos para el caso de los «Sistemas Operativos» Libres y Abiertos basados en el «Kernel de Linux» los cuales poseen un «diseño modular» que ha sido un factor de éxito, para las muchas variaciones y distribuciones existentes en las distintas plataformas de hardware, se puede resumir la simpleza de funcionamiento de ambos de la siguiente manera:

“Un cargador de arranque inicia el Kernel de Linux, y este a su vez a todos los demás elementos (módulos/partes) del Sistema Operativo, para que el mismo en su conjunto gestione las tareas necesarias, tales como el acceso a la red, los procesos de programación o de las diversas aplicaciones de usuario, la administración de los dispositivos periféricos conectados, y la supervisión de los servicios del sistema de archivos, entre otras. Dejando interactuar a los Usuarios normales solo a nivel de los Software de Aplicaciones, y ha algunos Usuarios más avanzados solo a nivel de los demás Software de Sistemas del mismo o Software de Desarrollo que sean instalados”.

Destacando por último que, los «Sistemas Operativos» Libres y Abiertos basados en el «Kernel de Linux», son de «código abierto» y desarrollados y soportados por grandes comunidades, y muy fáciles de adaptar sobre todo tipo de equipos y dispositivos, desde mainframes, servidores, ordenadores de escritorio, hasta dispositivos móviles, vestibles (weareables) y embebidos. Poseen gran compatibilidad con casi todas las principales plataformas tecnológicas existentes, incluyendo x86, ARM y SPARC. Lo que hace que el«Kernel de Linux»le otorgue a dichos «Sistemas Operativos» Libres y Abiertos basados en él, un éxito seguro en cuanto a su uso masivo en cualquier esfera.

Y no olvidemos que el «Kernel de Linux» es más que simple código funcional. También es el núcleo, la base del «Movimiento del Software Libre y Código Abierto», ya que favorece la cohesión de las personas interesadas alrededor de una filosofía o forma de pensar basada en que: «La tecnología no sólo debe ser buena, sino también hacer el bien», más allá de los conceptos de accesible, libre y abierta.

Content laptop

Gracias por visitar el blog oficial de la tienda ReDIGIT Informática Circular. Si estás buscando ordenadores, monitores o portátiles baratos, en nuestra tienda online podrás encontrar PC de sobremesa a partir de 99 euros IVA incluido y portátiles económicos con 2 años de garantía. Todos los equipos en venta en ReDIGIT son de ocasión (segunda mano, renovados, refurbished y outlet), funcionan perfectamente y son ideales para cualquier tarea de tipo doméstico y profesional. ReDIGIT es la primera tienda en España que ofrece hasta 3 años de garantía en productos de informática de ocasión. Ponte en contacto con nosotros llamando/escribiendo directamente al Tel. y WhatsApp: 974 353 720.

  1. Anual
  2. GNU/Linux
  3. Debian
  4. Ubuntu
  5. Windows 10
  6. Windows
Ofertas ordenadores usados