Tema 2. El sistema operativo

Servicios, llamadas al sistema, estructura y arranque

🏷️ Kernel🏷️ Llamadas🏷️ GRUB🏷️ Linux 📚 I · Fundamentos del SO

🔧 Servicios del SO y llamadas al sistema
El SO proporciona servicios accesibles a través de la API del sistema:
  • Servicios de usuario: interfaz gráfica (GUI), interfaz de comandos (CLI), carga de programas.
  • Servicios de sistema: gestión de archivos, comunicaciones, detección de errores.

Llamadas al sistema (System Calls)

Las llamadas al sistema son la interfaz entre los programas y el kernel:
  • open(), read(), write(), close() — gestión de archivos
  • fork(), exec(), exit(), wait() — gestión de procesos
  • malloc(), free() — gestión de memoria
💡 En Linux las syscalls se realizan mediante interrupciones software (INT 0x80 o SYSCALL en x86-64).
🏗️ Estructura del SO
Existen varias arquitecturas de SO:

Monolítica

Todo el SO corre en modo kernel. Mayor rendimiento pero menos modularidad. Ejemplo: Linux clásico.

Micronúcleo (Microkernel)

Solo funciones esenciales en el kernel; el resto en espacio de usuario. Más seguro y portable. Ejemplo: Minix, QNX.

Híbrida

Combina ventajas de ambos. Ejemplo: Windows NT, macOS (XNU).

Por capas

El SO se organiza en niveles de abstracción, cada uno usa los servicios del nivel inferior.
💡 Linux tiene arquitectura monolítica modular: el kernel es monolítico pero permite cargar módulos dinámicamente con modprobe.
🐧 El SO Linux — Componentes del núcleo
El núcleo (kernel) de Linux incluye:
  • Gestión de procesos: scheduler, creación/destrucción de procesos.
  • Gestión de memoria: MMU, paginación, memoria virtual.
  • Sistema de ficheros virtual (VFS): capa de abstracción sobre ext4, NTFS, etc.
  • Subsistema de red: pila TCP/IP, sockets.
  • Controladores de dispositivos: drivers para hardware.
Comandos útiles: uname -r (versión kernel), lsmod (módulos cargados), dmesg (mensajes del kernel).
🚀 Arranque del sistema — Gestores de arranque
Proceso de arranque (boot):
  1. POST: Power-On Self Test — comprueba hardware.
  2. BIOS/UEFI: localiza el dispositivo de arranque.
  3. Bootloader (GRUB): carga el kernel en memoria.
  4. Kernel: se inicializa, detecta hardware, monta sistema de archivos raíz.
  5. Init/Systemd: primer proceso (PID 1), lanza servicios y lleva al nivel de ejecución.

GRUB (GRand Unified Bootloader)

  • Configuración en /etc/grub.d/ y /etc/default/grub
  • Actualizar: sudo update-grub
  • Soporta arranque dual (dual boot) Windows/Linux

🃏 Conceptos clave — Flashcards

Concepto
Syscall
Click para ver definición
Llamada al sistema: interfaz entre programas de usuario y el kernel
Click para volver
Concepto
Kernel monolítico
Click para ver definición
Todo el SO en espacio kernel; mayor rendimiento
Click para volver
Concepto
Microkernel
Click para ver definición
Solo funciones esenciales en kernel; resto en espacio usuario
Click para volver
Concepto
GRUB
Click para ver definición
GRand Unified Bootloader: gestor de arranque de Linux
Click para volver
Concepto
Systemd
Click para ver definición
Sistema de inicio moderno (PID 1) que gestiona servicios en Linux
Click para volver
Concepto
VFS
Click para ver definición
Virtual File System: capa de abstracción sobre los sistemas de ficheros
Click para volver

📝 Test de autoevaluación

🎯 Quiz — Tema 2