forked from residual/os
No description
- Go 92.7%
- Shell 7.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
/init was hanging on echo to /dev/console or modprobe. Now logs to kmsg (non-blocking), uses timeout for modprobe, and has a fallback infinite loop to avoid kernel panic if exec fails. Also: --from-image now reuses cached OCI image in workdir (use --no-cache to force re-pull). |
||
| .forgejo/workflows | ||
| .opencode | ||
| cmd/res-os-builder | ||
| image | ||
| internal | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| go.mod | ||
| README.md | ||
| residual-overview.md | ||
residual/os
Build tooling for the residual OS. Currently hosts res-os-builder, a
container-native tool that turns OCI/container rootfs images into bootable
artifacts — fully unprivileged, runnable on standard CI runners.
Layout
cmd/res-os-builder/— the Go CLI. See its README for pipeline docs, usage, and size goals.internal/— Go internals (build pipeline, exec helpers).
Quick start
# Build the tool
go build -o res-os-builder ./cmd/res-os-builder
# Full pipeline: Dockerfile → rootfs → initramfs → bootable image
./res-os-builder build --from-dockerfile image/Dockerfile.residual --output residual.img
# Boot test (QEMU)
qemu-system-x86_64 -kernel ~/res-rootfs/boot/vmlinuz-lts \
-initrd ~/res-initramfs.gz -m 1024 -nographic -no-reboot \
-append "console=ttyS0,115200" 2>&1 | grep RESIDUAL-POC
See residual/.agent#27 for the design.