Programa containers em Rust — e contribui para o delonix-runtime
Um caminho completo para quem quer escrever software de sistemas em Rust: dos conceitos básicos ao código real de um motor de containers e microVMs, e no fim um runtime OCI funcional — o teu — construído passo a passo, testado e validado contra o runc.
Como este tutorial funciona#
Cada afirmação tem prova. Há três tipos de conteúdo verificável, e o site marca-os de forma diferente para saberes sempre de onde vem o que lês:
| Marca | O que é | Porque podes confiar |
|---|---|---|
Bloco com título delonix-runtime · caminho · linhas |
Excerto do motor real, de um commit fixo | Tem permalink para o GitHub — não muda debaixo de ti |
Bloco com título minicontainer/… ou examples/… |
Código deste repositório | Compila e é testado em CI; se estiver errado o pipeline fica vermelho |
| Terminal com «saída real · medida neste host» | Saída de comandos corridos a sério | Gerada por scripts/demo.sh; inclui os erros e os códigos de saída |
A regra da casa
O delonix persegue uma regra que este tutorial também segue: prova medida, não afirmada. Um relatório com só a parte boa é um relato desonesto. Por isso, onde algo não foi validado — ou onde o minicontainer faz menos do que o delonix — está dito, com a razão.
O caminho#
Ownership, enums, Result, traits — com exemplos de motor.
1 · FundamentosRust idiomáticoNewtypes, typestate, builders: estados inválidos que não compilam.
2 · LinuxO que é um containerNamespaces, cgroups v2, capabilities, rootless — com saídas reais.
2 · LinuxOCI: imagem e runtimeLayers, digests, whiteouts, bundle e ciclo de vida.
2 · LinuxCRI e o KubernetesComo o kubelet fala com o runtime, e onde entra o OCI.
3 · SistemasRust para sistemas distribuídosReconciliação, idempotência, retentativas, estado sem corridas.
3 · SistemasAnatomia do delonixAs 5 camadas, o gate de arquitectura, daemonless.
3 · SistemasUm projecto Rust completoWorkspace, lints, CI, testes, releases, ADRs.
4 · ProjectominicontainerUm runtime OCI rootless em menos de 1 800 linhas (testes incluídos).
5 · ContribuirEnviar o teu primeiro PRWorktree, gates, ADR, revisão.
Pré-requisitos#
- Linux com kernel ≥ 5.10 e user namespaces sem privilégio (
sysctl kernel.unprivileged_userns_clone= 1, ou o equivalente da tua distro). macOS/Windows: usa uma VM ou WSL2. - Rust ≥ 1.90 (
rustup),git, e para reproduzir as demos:busyboxestático,jq, e opcionalmenteruncpara a contra-prova. - Não precisas de saber Rust nem de containers — mas ajuda saber programar noutra linguagem e usar um terminal.
git clone https://github.com/angolardevops/delonix-rust-tutorial
cd delonix-rust-tutorial
cargo test --workspace # 15 + 7 + 16 + ... testes
scripts/demo.sh # regenera as saídas reais citadas neste site
Pesquisa em todo o lado
Carrega em Ctrl + K (ou /) em qualquer página para pesquisar capítulos, código e saídas. Experimenta pivot_root, digest ou cgroup.