Contexto
Introducción
En Linux, cualquier operación relevante (leer archivos, crear procesos, escribir en pantalla) requiere una transición desde el espacio de usuario hacia el kernel mediante llamadas al sistema (system calls o syscalls).
Estas llamadas representan el único mecanismo controlado para interactuar con recursos del sistema.
Las syscalls son el punto exacto donde un proceso en modo usuario solicita servicios al kernel.
En esta práctica se analizará el comportamiento real de programas mediante strace, una herramienta que permite observar estas interacciones en tiempo real.
Objetivo
Objetivo
- Observar cómo un proceso interactúa con el kernel
- Identificar syscalls comunes en Linux
- Analizar el costo de las operaciones del sistema
Entorno
Condiciones del entorno
La práctica se ejecuta sobre un sistema Linux remoto mediante SSH.
ssh usuario@IP_SERVIDOR
Verificar disponibilidad:
which strace
Si no está instalado, puede requerir instalación:
sudo apt install strace
El comportamiento puede variar dependiendo de los procesos activos y permisos del sistema.
Comandos
Comandos y explicación
strace → Intercepta y muestra syscalls de un proceso
strace ls
strace -c → Resumen estadístico de syscalls
strace -c ls
strace -o archivo → Guarda salida en archivo
strace -o salida.txt ls
Ejecución
Actividad paso a paso
- Ejecutar un comando simple con tracing:
strace ls
- Identificar llamadas:
- Ejecutar análisis resumido:
strace -c ls
- Ejecutar sobre un programa interactivo:
strace nano
- Salir de nano y observar comportamiento
- Guardar salida:
strace -o traza.txt ls
- Analizar archivo generado:
less traza.txt
Análisis
Análisis del sistema
- ¿Qué syscalls aparecen con mayor frecuencia?
- ¿Qué operación genera más llamadas al sistema?
- ¿Qué diferencia existe entre ejecutar ls y nano?
- ¿Cómo cambia el comportamiento entre ejecuciones?
Cada syscall representa un cambio de contexto entre usuario y kernel, lo cual implica costo computacional.
Reflexión
Preguntas de reflexión
- ¿Por qué un comando simple como ls genera múltiples syscalls?
- ¿Qué implicaciones tiene el cambio de contexto usuario-kernel?
- ¿Por qué diferentes programas generan diferentes patrones de syscalls?
- ¿Cómo impacta esto en el rendimiento del sistema?
Extensión
Actividad complementaria
- Investigar las syscalls más comunes en Linux
- Analizar qué syscalls utiliza un comando como cat o echo
- Explicar qué es un cambio de contexto (context switch)
Entrega: análisis técnico breve con ejemplos reales
Entrega
Evidencia
- Capturas de:
- strace ls
- strace -c ls
- strace nano
- Archivo de traza generado
- Respuestas de reflexión
- Actividad complementaria