Saltar al contenido principal

Capítulo 1.4 - Arquitectura de Alto Nivel

Objetivos de Aprendizaje​

Al final de este capítulo, usted será capaz de:

  • Comprender la estructura de un sistema Linux
  • Identificar los componentes del Kernel
  • Identificar los componentes del Espacio de Usuario
  • Comprender la comunicación entre los componentes

Introducción​

Un sistema Linux está organizado en varias capas que trabajan juntas. Comprender esta arquitectura es esencial para dominar Linux.


Vista General de un Sistema​

Estructura Básica​

Dos espacios principales:

  1. Espacio de Usuario: Aplicaciones y programas de usuario
  2. Espacio Kernel: Gestión del sistema y del hardware

Espacio de Usuario (User Space)​

Aplicaciones​

Programas que usted utiliza:

  • Navegadores web
  • Editores de texto
  • Herramientas de desarrollo
  • Juegos, etc.

Shell​

Interfaz de línea de comandos:

  • Bash: Shell predeterminado en la mayoría de las distribuciones
  • Zsh: Shell moderno y potente
  • Fish: Shell amigable

Bibliotecas​

Funciones compartidas:

  • libc: Biblioteca estándar de C
  • Otras: Bibliotecas especializadas

Servicios​

Programas en segundo plano:

  • systemd: Gestor de servicios
  • cron: Planificación de tareas
  • sshd: Servidor SSH

Espacio Kernel (Kernel Space)​

Kernel Linux​

El núcleo del sistema:

  • Gestión de Procesos: Creación, planificación, terminación
  • Gestión de Memoria: Asignación, swap, protección
  • Sistema de Archivos: VFS, gestión de archivos
  • Gestión de Red: Stack TCP/IP, interfaces
  • Gestión de Dispositivos: Controladores de hardware

Llamadas al Sistema (Syscalls)​

Interfaz entre User Space y Kernel Space:

  • open(), read(), write(): Archivos
  • fork(), exec(): Procesos
  • socket(), bind(): Red
  • mmap(): Memoria

Comunicación Entre Capas​

Flujo Típico​


Componentes de Hardware​

CPU​

  • Ejecución de instrucciones
  • Gestión de procesos
  • Planificación (scheduler)

Memoria RAM​

  • Almacenamiento temporal
  • Datos y código en ejecución
  • Caché del sistema

Disco Duro​

  • Almacenamiento persistente
  • Sistema de archivos
  • Swap (extensión de RAM)

Red​

  • Interfaces de red
  • Comunicación con otros sistemas
  • Protocolos de red

Separación User/Kernel Space​

¿Por qué esta Separación?​

Seguridad:

  • Las aplicaciones no pueden acceder directamente al hardware
  • Protección contra errores
  • Aislamiento de procesos

Estabilidad:

  • Un error en una aplicación no afecta al kernel
  • El sistema permanece estable incluso si una app falla

Rendimiento:

  • Kernel optimizado para el hardware
  • Las aplicaciones pueden estar menos optimizadas

Resumen​

En este capítulo, usted ha aprendido:

Arquitectura: User Space + Kernel Space + Hardware
User Space: Aplicaciones, Shell, Bibliotecas, Servicios
Kernel Space: Kernel Linux, Llamadas al Sistema, Gestión de recursos
Comunicación: Vía llamadas al sistema (syscalls)
Separación: Seguridad, estabilidad, rendimiento
Hardware: CPU, RAM, Disco, Red


Próximos Pasos​

Capítulo 1.5: Conceptos Fundamentales
Capítulo 1.6: Instalación y Primer Uso


Capítulo creado el: Diciembre 2024