Software de base y software de aplicación
El software de base es el conjunto de programas imprescindibles para que el ordenador funcione y sirva de plataforma al resto de programas. Su componente central es el sistema operativo (Windows, Linux, macOS), al que se suman controladores de dispositivos, utilidades del sistema y entornos de ejecución. Se distingue del software de aplicación, que es el que utiliza el usuario final para tareas concretas: reproductores multimedia como VLC, suites ofimáticas, navegadores o clientes de correo. En síntesis: el sistema operativo es software de base; VLC, un procesador de textos o un editor de imágenes son software de aplicación.
El kernel o núcleo es el corazón del sistema operativo: gestiona la memoria, los procesos, el sistema de archivos y el acceso al hardware, actuando de intermediario entre las aplicaciones y los dispositivos. NO es "el núcleo del procesador" (afirmación incorrecta habitual): el procesador es hardware, mientras que el kernel es software del sistema operativo.
Sistemas de control de versiones (VCS)
Un sistema de control de versiones (VCS, Version Control System) es una herramienta que facilita la gestión del control de versiones de un producto software. Se emplea principalmente en el desarrollo de software para controlar las distintas versiones del código fuente, permitiendo el trabajo colaborativo sin riesgo de perder el historial de cambios.
Los términos VCS (Version Control System), SCM (Software Configuration Management) y CMS (Configuration Management System) son formas de referirse al control de cambios de los programas de una instalación, es decir, están relacionados con la gestión de versiones y la gestión de configuración del software.
Características que debe proporcionar un VCS:
-
Un mecanismo de almacenamiento de los elementos que debe gestionar.
-
Un registro histórico de las acciones realizadas con cada elemento o conjunto de elementos.
-
La posibilidad de realizar modificaciones parciales, añadir, borrar, renombrar o mover elementos.
Su principal ventaja es permitir el trabajo colaborativo en un proyecto sin riesgo de perder el historial de cambios. Ejemplos habituales son Git, Subversion (SVN) o Mercurial.
Estructura y arranque en Linux
En Linux, el directorio /boot contiene todos los ejecutables y archivos necesarios en el proceso de arranque del sistema: el kernel (vmlinuz), el disco RAM inicial (initramfs/initrd) y los ficheros del gestor de arranque (GRUB).
En la gestión de módulos del kernel, el comando modprobe añade o elimina módulos del kernel de Linux, resolviendo automáticamente sus dependencias (a diferencia de insmod/rmmod, que no las resuelven).
Sobre particiones de disco, un sistema operativo puede instalarse tanto en una partición primaria como en una partición lógica (dentro de una partición extendida). El esquema MBR admite hasta cuatro particiones primarias, o tres primarias más una extendida que a su vez contiene particiones lógicas.
Gestión de paquetes y repositorios en Linux
Los repositorios en Linux actúan como servidores o bases de datos que alojan paquetes y aplicaciones que el sistema puede instalar o actualizar mediante el gestor de paquetes. Los gestores de paquetes (apt, rpm, urpmi, dnf...) necesitan definir una serie de fuentes o repositorios desde donde descargar los paquetes de instalación; para ello, cada gestor cuenta con comandos específicos orientados a su definición y actualización.
Familia Debian (APT/dpkg)
APT (Advanced Package Tool) es un sistema de gestión de paquetes creado por el proyecto Debian. Comandos habituales:
| Comando | Función |
|---|---|
apt update / apt-get update | Descarga la información de los paquetes desde todas las fuentes configuradas (actualiza la lista de paquetes disponibles) |
apt-get install <paquete> | Instala un paquete y sus dependencias |
sudo apt-get install openssh-server | Instala el servidor SSH |
dpkg -l | Muestra la lista de paquetes instalados con su versión, arquitectura y una breve descripción |
Las fuentes se definen en /etc/apt/sources.list. Para añadir un repositorio externo y asegurar su autenticidad antes de instalar, el orden correcto es:
-
Añadir la fuente:
echo "deb http://nuevo-repositorio/ stable main" >> /etc/apt/sources.list -
Importar la clave GPG:
wget -qO - http://nuevo-repositorio/key.gpg | sudo apt-key add - -
Actualizar índices:
apt-get update -
Instalar:
apt-get install paquete
El paquete popularity-contest (popcon) es el que envía anónimamente estadísticas a los desarrolladores de Debian sobre los paquetes más usados en el sistema; se ejecuta desde un cron diario y remite la información una vez por semana, ayudando a decidir qué paquetes se instalan por defecto.
Familia Red Hat (RPM/DNF)
En distribuciones basadas en RPM, el gestor de paquetes predeterminado en CentOS 8 (y RHEL 8, Fedora) es DNF (Dandified YUM), sucesor de YUM, con mejor resolución de dependencias y eficiencia de memoria.
Sistemas inmutables: Vanilla OS
Vanilla OS es una distribución inmutable basada en Debian. Gestiona la instalación de software minimizando conflictos y riesgos mediante contenedores gestionados por Apx, evitando así instalar paquetes directamente sobre el sistema base.
El sistema ABRoot permite aplicar modificaciones en el sistema mediante transacciones indivisibles (atómicas): una transacción se aplica por completo o no se aplica en absoluto, transaccionando entre dos sistemas de archivos raíz (A/B) para garantizar que el sistema quede siempre en un estado consistente. En su versión v2 las actualizaciones se realizan mediante imágenes OCI.
Actualización del sistema en Windows
En el ámbito de los sistemas operativos de Microsoft, la funcionalidad que permite mantener actualizado el sistema operativo es Windows Update, encargada de descargar e instalar parches de seguridad, correcciones y nuevas versiones del sistema.
Fuentes
-
Vanilla OS Documentation — Apx y ABRoot: https://docs.vanillaos.org/ y https://abroot.vanillaos.org/
-
ABRoot (repositorio oficial Vanilla-OS): https://github.com/Vanilla-OS/ABRoot
-
Debian — APT / gestión de paquetes (Debian Reference): https://www.debian.org/doc/manuals/debian-reference/ch02.en.html
-
Debian — popularity-contest(8), manpage oficial: https://manpages.debian.org/testing/popularity-contest/popularity-contest.8.en.html
-
Debian Popularity Contest (popcon): https://popcon.debian.org/
-
DNF, gestor de paquetes por defecto en CentOS/RHEL 8 — documentación oficial: https://dnf.readthedocs.io/
-
Linux man-pages — modprobe(8): https://man7.org/linux/man-pages/man8/modprobe.8.html
-
Filesystem Hierarchy Standard (directorio /boot): https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03.html
-
Microsoft Learn — Windows Update: https://learn.microsoft.com/windows/deployment/update/