Lab 2.1 - Inspección del Kernel y Procesos del Sistema
Objetivos
Al final de este laboratorio, usted será capaz de:
- Inspeccionar el kernel de Linux
- Verificar los procesos del sistema
- Examinar systemd y los servicios
- Comprender la estructura de los procesos
Requisitos previos
- Sistema Linux funcional (se recomienda Ubuntu/Debian)
- Acceso root o sudo
- Terminal abierto
Ejercicio 1: Información sobre el Kernel
Paso 1: Versión del Kernel
# Ver la versión del kernel
uname -a
# Solo la versión
uname -r
# Información detallada
cat /proc/version
Pregunta: ¿Qué versión de kernel está utilizando?
Paso 2: Módulos del Kernel
# Ver los módulos cargados
lsmod
# Ver los detalles de un módulo
modinfo nombre-módulo
# Ver los módulos relacionados con una palabra clave
lsmod | grep network
Paso 3: Parámetros del Kernel
# Ver los parámetros sysctl
sysctl -a
# Ver un parámetro específico
sysctl kernel.version
# Ver los parámetros de red
sysctl net.ipv4
Ejercicio 2: Procesos del Sistema
Paso 1: Proceso Init (PID 1)
# Ver el proceso init
ps -p 1
# Detalles del proceso
ps -p 1 -o pid,ppid,cmd,etime
# Ver el tipo de init
systemctl --version
Pregunta: ¿Qué sistema de init está utilizando? (systemd, SysVinit, etc.)
Paso 2: Procesos del Sistema
# Ver todos los procesos
ps aux
# Ver el árbol de procesos
pstree
# Con PID
pstree -p
# Ver solo los procesos del sistema
ps aux | grep -E '\[.*\]'
Paso 3: Procesos por Usuario
# Procesos de root
ps -u root
# Procesos de su usuario
ps -u $USER
# Contar los procesos
ps aux | wc -l
Ejercicio 3: systemd y Servicios
Paso 1: Estado de systemd
# Ver la versión de systemd
systemctl --version
# Ver el estado de systemd
systemctl status
# Ver las unidades activas
systemctl list-units --type=service --state=running
Paso 2: Servicios del Sistema
# Ver todos los servicios
systemctl list-units --type=service
# Servicios activos
systemctl list-units --type=service --state=active
# Servicios fallidos
systemctl list-units --type=service --state=failed
Paso 3: Detalles de un Servicio
# Estado de un servicio (ej: sshd)
systemctl status sshd
# Ver los logs
journalctl -u sshd
# Últimas líneas
journalctl -u sshd -n 50
Ejercicio 4: Exploración de /proc
Paso 1: Información del Sistema
# Información de la CPU
cat /proc/cpuinfo
# Información de la memoria
cat /proc/meminfo
# Información del sistema
cat /proc/loadavg
Paso 2: Procesos en /proc
# Ver los procesos
ls /proc/ | grep -E '^[0-9]+$'
# Información sobre un proceso (reemplazar PID)
cat /proc/1/status
# Archivos abiertos por un proceso
ls -l /proc/1/fd/
Paso 3: Información de Red
# Conexiones de red
cat /proc/net/sockstat
# Estadísticas de red
cat /proc/net/dev
Ejercicio 5: Análisis Avanzado
Paso 1: Uso de Recursos
# Procesos principales
top -bn1 | head -20
# Con htop (si está instalado)
htop
# Uso de CPU por proceso
ps aux --sort=-%cpu | head -10
# Uso de memoria por proceso
ps aux --sort=-%mem | head -10
Paso 2: Árbol de Procesos
# Árbol completo
pstree -a
# Con usuarios
pstree -u
# Limitar la profundidad
pstree -L 2
Paso 3: Procesos Zombie
# Ver los procesos zombie
ps aux | grep -w Z
# Contar los zombies
ps aux | grep -w Z | wc -l
Ejercicio 6: Monitoreo en Tiempo Real
Paso 1: top
# Iniciar top
top
# Comandos en top:
# - 'q': Salir
# - 'k': Matar un proceso
# - 'r': Cambiar prioridad (renice) de un proceso
# - 'f': Cambiar las columnas mostradas
Paso 2: htop (si está disponible)
# Instalar htop
sudo apt install htop
# Iniciar
htop
# Más interactivo que top
Paso 3: Script de Monitoreo
# Crear un script simple
cat > monitor.sh << 'EOF'
#!/bin/bash
echo "=== Kernel ==="
uname -a
echo
echo "=== Load Average ==="
uptime
echo
echo "=== Top 5 CPU ==="
ps aux --sort=-%cpu | head -6
echo
echo "=== Top 5 Memory ==="
ps aux --sort=-%mem | head -6
EOF
chmod +x monitor.sh
./monitor.sh
Verificación
Lista de verificación
Verifique que usted puede:
- Ver la versión del kernel
- Listar los módulos cargados
- Identificar el proceso init (PID 1)
- Ver los procesos del sistema
- Usar systemctl para ver los servicios
- Explorar /proc para información del sistema
- Usar top/htop para el monitoreo
Preguntas de Reflexión
-
¿Cuál es el rol del proceso PID 1?
- Es el padre de todos los procesos
- Gestiona los procesos huérfanos
- Inicializa el sistema
-
¿Cuál es la diferencia entre ps y top?
psmuestra una instantáneatopmuestra en tiempo real
-
¿Por qué es importante /proc?
- Interfaz hacia el kernel
- Información en tiempo real
- No son archivos reales, todo es virtual
Próximos Pasos
- Lab 2.2: Análisis de la Gestión de Memoria
- Lab 2.3: Monitoreo Avanzado del Sistema
- Capítulo 2.3: Gestión de Memoria y Swap
Lab creado el: diciembre 2024