Curso de Linux / Qué es Linux: kernel, distribución y código abierto
Linux es, estrictamente hablando, el kernel que gestiona los recursos entre el hardware de la computadora y los programas. El 'sistema operativo Linux' que instalamos y usamos es una distribución que agrega al kernel comandos, bibliotecas, herramientas de instalación y actualización. Entender esta diferencia le permite saber por qué Ubuntu y Rocky Linux son ambos Linux pero tienen diferencias en la forma de usarse.
Si ha entendido el significado de distribución, puede elegir la familia que utilizará según los criterios de selección de distribución, y preparar la computadora para la práctica mediante la instalación de la máquina virtual y preparación de recuperación.
¿Linux es un kernel o un sistema operativo?
Ambas expresiones se usan, pero su alcance es diferente. El kernel Linux es el programa principal del sistema operativo, y el sistema operativo Linux de uso común se refiere al sistema completo que incluye el kernel y está configurado para ser utilizado. Por lo tanto, "actualizar el kernel de Linux" y "instalar Linux" no significan lo mismo.
El núcleo asigna tiempo de CPU y memoria a los programas que se están ejecutando y maneja el hardware a través del sistema de archivos, la red y los controladores de dispositivos. Los programas utilizan la interfaz proporcionada por el núcleo en lugar de controlar directamente los dispositivos de almacenamiento. La documentación oficial del núcleo de Linux también explica diferenciando la interfaz utilizada por el núcleo en sí y por los programas del espacio de usuario.
Por otro lado, un comando para copiar archivos, un navegador web, un servidor web o la pantalla gráfica no son el núcleo en sí. Estos programas y bibliotecas funcionan en el espacio de usuario y utilizan las funciones del núcleo cuando es necesario. Muchas distribuciones de Linux incluyen herramientas del proyecto GNU, pero no todos los programas del espacio de usuario son software GNU. La relación entre GNU y Linux se puede ver en detalle en la explicación del proyecto GNU.
¿De qué partes se compone un sistema Linux?
Al principio, es conveniente pensar en él como tres capas. Esto es una simplificación para comprender el concepto, y el sistema real también incluye el proceso de arranque y varios componentes intermedios.
- Hardware: CPU, memoria, dispositivos de almacenamiento, dispositivos de red y otras partes físicas.
- Kernel de Linux: Gestiona los recursos de hardware y proporciona funciones comunes que los programas pueden utilizar.
- Espacio de usuario: Es el área donde funcionan el shell, los comandos, los servicios del sistema, las bibliotecas, el entorno gráfico y las aplicaciones.
Por ejemplo, si ejecuta un comando para leer el contenido de un archivo en la terminal, el programa de comando se ejecuta en el espacio de usuario y la operación de abrir el archivo pasa por las funciones del kernel. Aunque se use el mismo kernel, la apariencia de un sistema para servidores y de un sistema de escritorio puede variar según qué programas se coloquen en el espacio de usuario.
¿Qué añade una distribución?
Distribución de Linux es un sistema operativo que proporciona el kernel de Linux junto con diversos programas seleccionados y combinados, permitiendo su instalación, configuración y actualización. Normalmente, una distribución incluye herramientas de gestión de paquetes, repositorios de software, servicios básicos del sistema, políticas de actualizaciones de seguridad y documentación. La introducción del proyecto Debian también describe una distribución como un sistema operativo completo, no solo el kernel.
Si tomamos Ubuntu y Rocky Linux como ejemplo, ambos se basan en el kernel de Linux, pero difieren en el formato de paquetes, las herramientas de gestión de software, la configuración predeterminada y las políticas de soporte. Por lo tanto, al aprender comandos, es necesario distinguir si se trata de 'funciones del kernel de Linux', 'herramientas utilizadas en la mayoría de las distribuciones' o 'métodos utilizados únicamente en distribuciones específicas'. La elección de qué distribución usar se tratará en la lección 02, por lo que aquí basta con recordar que aunque el kernel sea el mismo, el entorno de uso completo no lo es.
¿Qué significa que algo sea de código abierto?
Código abierto (open source) no significa simplemente que se pueda ver el código fuente. Debe ser posible usar, modificar y redistribuir el código bajo las condiciones establecidas por la licencia. La definición de código abierto de la Open Source Initiative incluye condiciones como la provisión del código fuente, redistribución y permiso para obras derivadas.
También es necesario diferenciar entre código abierto y 'proporcionado sin costo'. Incluso si el software es gratuito, si no se tiene el derecho de modificar o redistribuir, no se considera código abierto solo por eso. Por otro lado, el software de código abierto también puede distribuirse mediante pago o ofrecerse con servicios de soporte técnico. Además, no todos los componentes incluidos en una distribución necesariamente utilizan la misma licencia o son totalmente de código abierto, por lo que las condiciones para usar, modificar y redistribuir un programa específico deben verificarse en su licencia.
¿Qué se puede verificar en el sistema que utiliza actualmente?
Si tiene una computadora o máquina virtual con Linux instalado, puede verificar la versión del kernel en ejecución con el siguiente comando.
uname -r
El nombre y la versión de la distribución generalmente se verifican en el siguiente archivo.
cat /etc/os-release
En la salida, PRETTY_NAME es el nombre de la distribución legible por humanos, ID y VERSION_ID son información de identificación de la distribución. Los resultados de uname -r y la versión de la distribución corresponden a versiones de componentes diferentes, por lo que los números no necesitan coincidir. Algunos entornos minimizados o sistemas especiales pueden no tener /etc/os-release o su contenido puede variar.
Resumen de conceptos clave
- Kernel: Es el núcleo del sistema operativo que gestiona los recursos de hardware y proporciona funciones comunes a los programas.
- Espacio de usuario: Es la zona donde se ejecutan la shell, los comandos, los servicios y las aplicaciones.
- Distribución: Es el sistema completo creado para instalar y gestionar el kernel de Linux junto con diversos programas.
- Código abierto: Es software cuya licencia permite acceder al código fuente, usarlo, modificarlo y redistribuirlo bajo condiciones que cumplen la definición de código abierto.
Si tiene curiosidad sobre cómo Linux comenzó y se desarrolló, puede consultar la cronología y los puntos de inflexión importantes en Historia de Linux: de un proyecto hobby en 1991 a convertirse en la infraestructura mundial. Este artículo se centra más en comprender la configuración y la terminología de los sistemas Linux actuales que en la historia.




