> For the complete documentation index, see [llms.txt](https://books.spartan-cybersec.com/cppj/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://books.spartan-cybersec.com/cppj/os-for-juniors/linux.md).

# Linux

Linux es un sistema operativo de código abierto basado en el núcleo Linux (Linux Kernel), creado por Linus Torvalds en 1991. Es conocido por su robustez, seguridad, y flexibilidad, lo que lo hace adecuado para una variedad de aplicaciones, desde sistemas personales hasta servidores empresariales y supercomputadoras. Aquí se detallan aspectos técnicos clave de Linux, su estructura, importancia en el mercado, y otros elementos técnicos relevantes.

```
cat /etc/os-release
lsb_release -a
```

## <mark style="color:green;">Estructura y Características</mark>

* <mark style="color:green;">**Núcleo Linux (Kernel)**</mark><mark style="color:green;">:</mark> Es el corazón del sistema operativo, encargado de gestionar los recursos del sistema, como el hardware, la memoria, y los procesos. Se comunica directamente con el hardware y proporciona una capa de abstracción para el software de usuario.
* <mark style="color:green;">**Shell**</mark><mark style="color:green;">:</mark> Interfaz de línea de comandos (CLI) que permite a los usuarios interactuar con el sistema operativo mediante comandos. Bash es el shell más común en distribuciones Linux.
* <mark style="color:green;">**Sistema de Archivos**</mark><mark style="color:green;">:</mark> Linux utiliza un sistema de archivos jerárquico con una única estructura de árbol. Todo comienza desde el directorio raíz (`/`), bajo el cual se organizan todos los archivos y directorios.
* <mark style="color:green;">**Gestor de Paquetes**</mark><mark style="color:green;">:</mark> Casi todas las distribuciones de Linux vienen con un gestor de paquetes que facilita la instalación, actualización, y gestión de software (por ejemplo, `apt` en Debian y Ubuntu, `yum` en RHEL y CentOS, `pacman` en Arch Linux).

## <mark style="color:green;">Importancia de Uso en el Mercado</mark>

Linux domina varios mercados, incluidos los servidores web, supercomputadoras, y dispositivos móviles (Android está basado en el kernel de Linux). Su seguridad, estabilidad, y naturaleza de código abierto lo hacen ideal para entornos empresariales, infraestructuras críticas, y desarrollos de software.

## <mark style="color:green;">Archivos y Rutas Importantes</mark>

* **`/bin` y `/usr/bin`**: Contienen binarios esenciales para el usuario.
* **`/sbin` y `/usr/sbin`**: Albergan binarios esenciales del sistema y comandos administrativos.
* **`/etc`**: Directorio de configuración del sistema, donde se almacenan archivos de configuración.
* **`/var`**: Contiene archivos variables como logs y bases de datos.
* **`/home`**: Directorio de los usuarios, donde se guardan los archivos personales.
* **`/root`**: Directorio del usuario root, el superusuario del sistema.

## <mark style="color:green;">Permisos</mark>

Linux tiene un sistema de permisos detallado para archivos y directorios, basado en tres categorías de usuarios: propietario, grupo, y otros. Los permisos se definen para lectura (r), escritura (w), y ejecución (x), permitiendo un control granular del acceso a los recursos.

## <mark style="color:green;">Sistemas Operativos Linux Más Comunes (Distribuciones)</mark>

* <mark style="color:green;">**Ubuntu**</mark><mark style="color:green;">:</mark> Famosa por su facilidad de uso, es ideal para principiantes y usuarios de escritorio.
* <mark style="color:green;">**Debian**</mark><mark style="color:green;">:</mark> Conocida por su estabilidad y seguridad, es la base de muchas otras distribuciones, incluyendo Ubuntu.
* <mark style="color:green;">**Fedora**</mark><mark style="color:green;">:</mark> Ofrece lo último en software y tecnologías de código abierto, siendo popular entre desarrolladores.
* <mark style="color:green;">**CentOS**</mark> <mark style="color:green;"></mark><mark style="color:green;">(y ahora Rocky Linux, AlmaLinux como sucesores):</mark> Basado en Red Hat Enterprise Linux, es preferido para servidores y entornos empresariales.
* <mark style="color:green;">**Arch Linux**</mark><mark style="color:green;">:</mark> Destacado por su filosofía KISS (Keep It Simple, Stupid), ofrece un sistema minimalista y personalizable.

## <mark style="color:green;">Consideraciones Técnicas Relevantes</mark>

* <mark style="color:green;">**Kernel Linux**</mark><mark style="color:green;">:</mark> Su desarrollo es uno de los proyectos de software libre más grandes y activos. Los usuarios pueden compilar su propio kernel, ajustándolo a sus necesidades específicas.
* <mark style="color:green;">**Contenedores y Virtualización**</mark><mark style="color:green;">:</mark> Linux ha sido fundamental en el desarrollo de tecnologías de contenedores (por ejemplo, Docker) y es ampliamente utilizado en virtualización y la nube.
* <mark style="color:green;">**Seguridad**</mark><mark style="color:green;">:</mark> Linux es considerado uno de los sistemas operativos más seguros, gracias a características como SELinux, espacios de nombres, cgroups, y políticas de seguridad estrictas.
