Skip to content
Back to the catalog
Project garbage-collectorSystemsExpertBeta

Un recolector de basura

Mark-and-sweep desde cero. Gestiona memoria como lo hacen los runtimes que usas a diario sin pensarlo.

Build it in your language

The tester treats your program as a black box: any language works. These are just the most convenient ones for this project.

Guide language

The stage guides read in this language. Only languages this project is fully translated into show up here; the interface language does not change.

What this project is about

Si programas en un lenguaje con recolector de basura, hay un componente que decide constantemente qué vive y qué muere en tu programa, y nunca lo has visto. Aquí lo escribes tú.

Construirás un heap propio con su asignador, un recolector mark-and-sweep sobre él y las mejoras que usan los runtimes reales: recolección generacional y compactación. Y medirás las pausas, que es donde está la parte difícil.

Roadmap

9 stages across 4 phases. Every stage comes with its guide and its tests: you move on when they pass.

  1. Phase 12 stages

    Un heap propio

    Reserva memoria, escribe un asignador y representa objetos con cabecera.

    1. 01Asignador del heap
    2. 02Representación de objetos
  2. Phase 23 stages

    Marcar y barrer

    Raíces, recorrido del grafo de objetos, marcado y liberación.

    1. 01Conjunto de raíces
    2. 02Marcado del grafo
    3. 03Barrido
  3. Phase 32 stages

    Que no se degrade

    Lista de libres, fragmentación y disparo automático de la recolección.

    1. 01Lista de libres
    2. 02Disparo y métricas
  4. Phase 42 stages

    Como los de verdad

    Generacional con vivero, barreras de escritura y compactación medida.

    1. 01Vivero y barrera
    2. 02Compactación medida

Before you start

Un gestor de memoria completo para una máquina virtual de juguete: asignador propio sobre un heap reservado, recorrido de raíces desde la pila y los registros, marcado y barrido, lista de libres, recolección generacional con vivero y una fase de compactación que elimina la fragmentación.

  • neural-network
    Ready to build

    A Neural Network from Scratch

    Build and train a neural network from first principles: forward pass, loss functions, and gradient descent optimization.

    Beginner6 stages~6 hSystems
    machine learningneural networksmath+1

    Python · TypeScript

  • container-runtime
    Beta

    Build your own container

    namespaces, cgroups and chroot. Isolate a process by hand and understand what Docker does when it starts an image.

    Expert8 stages~16 hSystems
    namespacescgroupsprocesos

    Go · C · Rust

  • shell
    Beta

    Build your own shell

    fork, exec, pipes and redirection. Build a POSIX command interpreter that runs real programs.

    Intermediate12 stages~14 hSystems
    procesosforkexec+2

    C · Rust · Go · Zig