Systems Programming
Arriba de la máquina pero debajo del framework está el sistema operativo, y llegás a él
mediante syscalls (llamadas al sistema). Esta rama es sobre esa frontera: cómo un
read() se convierte en un trap hacia el kernel, cómo se crean procesos con
fork/exec, qué es realmente un file descriptor, cómo mmap mapea memoria y archivos,
y cómo las señales interrumpen tu flujo de control. Es la capa POSIX — el contrato
entre tu programa y el OS — y prepara todo lo que vas a construir a mano en el proyecto
del OS.
Una syscall es el único lugar donde tu programa de user space tiene permitido pedirle al kernel algo que no puede hacer solo. Casi todo "hablar con el sistema" se reduce a eso.
Notas planificadas
- La syscall: cruzar la frontera hacia el kernel
- Procesos:
fork,execywait - File descriptors e I/O de bajo nivel (
open/read/write) - El address space del proceso y
mmap - Memory-mapping de archivos y mappings anónimos
- Señales y signal handling
- Pipes y comunicación entre procesos
- Sockets: las syscalls de networking (intro)
- Threads (pthreads) y la vista del OS sobre ellos
- La capa POSIX y qué estandariza
errnoy disciplina de manejo de errores- Diferencias de syscalls macOS/BSD vs Linux
Fuentes núcleo
- Michael Kerrisk — The Linux Programming Interface (TLPI) — la biblia de las syscalls. man7.org/tlpi
- Stevens & Rago — Advanced Programming in the UNIX Environment (APUE) — el clásico.
- man7.org — las man pages de Kerrisk, la referencia autoritativa de syscalls/APIs. man7.org
- Tené presente las diferencias macOS/BSD vs Linux en toda la rama (números de syscall distintos, algunas APIs ausentes).
Conecta con: Punteros y Memoria · Concurrencia y Performance · OS desde Cero