Práctica 2: Análisis de System Calls con strace

Sistemas Operativos - Interacción Usuario ↔ Kernel

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

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

  1. Ejecutar un comando simple con tracing: strace ls
  2. Identificar llamadas:
    • open()
    • read()
    • write()
  3. Ejecutar análisis resumido: strace -c ls
  4. Ejecutar sobre un programa interactivo: strace nano
  5. Salir de nano y observar comportamiento
  6. Guardar salida: strace -o traza.txt ls
  7. Analizar archivo generado: less traza.txt
Análisis

Análisis del sistema

Cada syscall representa un cambio de contexto entre usuario y kernel, lo cual implica costo computacional.
Reflexión

Preguntas de reflexión

Extensión

Actividad complementaria

Entrega: análisis técnico breve con ejemplos reales

Entrega

Evidencia