Low-Level Atlas
De “sé programar” a “entiendo la máquina”
Un atlas personal y denso para meterse debajo del runtime: el modelo de máquina, C y memoria manual, punteros, assembly, el toolchain, programación de sistemas, concurrencia y performance — con un OS hecho desde cero como proyecto vertebrador.
Leelo como mapa, no como catálogo de cursos.
Empezá por el modelo de máquina, bajá por C y punteros hasta assembly y el toolchain, volvé a subir a sistemas y performance, y dejá que el proyecto de OS desde cero tire de todo el hilo.
Orientación
Por dónde empezar, qué ignorar por ahora y cómo se organiza el atlas.
Empezá por Acá
El camino de lectura por el Low-Level Atlas — el orden que te lleva desde el modelo de máquina hasta un OS construido desde cero sin saltearte los pasos que...
ExplorarLo que Tenés que Saber
Las ideas que sostienen la programación de bajo nivel — el puñado de verdades que, una vez internalizadas, hacen que el resto del atlas encaje.
ExplorarÍndice Low-Level
Todas las ramas del Low-Level Atlas de un vistazo, agrupadas por fase — desde el modelo de máquina hasta el metal y de vuelta a un OS construido desde cero.
ExplorarFundamentos
Cómo funciona de verdad la máquina por debajo del runtime — CPU, jerarquía de memoria, representación de datos y el reset de “ahora el runtime sos vos”.
La Capa C
C como capa fina sobre la máquina, undefined behavior y memoria manual: punteros, el heap, allocators y los bugs clásicos.
C desde el Metal
C para alguien que ya programa: sistema de tipos flaco, undefined behavior, el preprocesador, decay de array a puntero y una capa fina sobre la máquina.
ExplorarPunteros y Memoria
El corazón: stack vs heap, malloc/free, aritmética de punteros, alineación y padding, bugs clásicos de memoria y custom allocators.
ExplorarBajar al Metal
Leer el assembly que emite tu compilador, calling conventions y el toolchain completo preprocess→compile→assemble→link con sus debuggers.
Assembly y Salida del Compilador
Leer x86-64 (con apéndice ARM64): registros, instrucciones, stack frames, calling conventions y Compiler Explorer como herramienta diaria.
ExplorarToolchain y Linking
El pipeline completo: preprocess, compile, assemble, link. Object files, ELF, linking estático vs dinámico, gdb/lldb, sanitizers y valgrind.
ExplorarC++ (opcional)
El salto de C a C++ — RAII, smart pointers, move semantics, templates y la STL. Opcional: el OS es C-first.
Sistemas
Hablarle al kernel vía syscalls y POSIX, y después dónde paga el bajo nivel: concurrencia, memory ordering y performance.
Programación de Sistemas
Hablarle al SO: syscalls, procesos, threads, mmap, I/O de bajo nivel, señales y la capa POSIX que une tu programa con el kernel.
ExplorarConcurrencia y Performance
Donde el bajo nivel paga: threads, atomics, memory ordering, lock-free, false sharing, código cache-aware, SIMD y benchmarking serio.
ExplorarEl Proyecto
El proyecto vertebrador que consume todo lo demás: un sistema operativo chico, del bootloader a la shell, en x86-64 sobre QEMU.
Siempre activo
TDD, clean code y XP llevados a C/C++: testing, fuzzing, contratos y review de código memory-unsafe.
Ahora el runtime sos vos
El runtime administrado hacía bounds checks, liberaba tu memoria, normalizaba tus enteros y atrapaba tus errores de tipo. El bare metal saca ese piso — la CPU...
Registros y memoria operativa
Los registros mantienen referencias externas, specs, herramientas y material fuente normalizados detrás de notas atómicas cortas.