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:
- Espacio de Usuario: Aplicaciones y programas de usuario
- 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(): Archivosfork(),exec(): Procesossocket(),bind(): Redmmap(): 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