RustForge

foundry

Foundry OS: the operating system built on the Rustbelt kernel

AgeCommit messageAuthorId
6 hours agoports/sbase: suckless sbase 0.1, static-PIE, in /usr/lib/sbase (off PATH)Grok Botbd24c5787b
6 hours agoRoot image: files owned by root, not by the build userGrok Botb93bef7a3b
6 hours agoBump kernel pin to Rustbelt 0.21.1 (6bb2b25): clean shutdown, K12 doneGrok Bot9595759e94
6 hours agodocs/plan.md: M1b doneGrok Bot36f23a8bbd
6 hours agomake unit: cargo test for rbsh's parser on the host (22 tests)Grok Bot4538635fd3
6 hours agoBrand rbsh's banner and getty's greeting as Foundry OSGrok Botd7751ad0c0
6 hours agorbrt: make the runtime a real library crate (imported as ulib)Grok Bot8c52948255
6 hours agorbrt: cast fn items via *const () (fixes 2 function_casts_as_integer warnings)Grok Bot2cf3033360
6 hours agodocs: M6 user management (passwd/shadow, login, su, first-boot setup, owners and modes), M7 Pi 3 placeholder; K13 kernel prerequisites (open)Grok Botc1be2a3c7d
7 hours agodocs/plan.md: long-term track (after M5): a self-hosted Rust toolchain on Foundry OS, in 3 stages (not started)Grok Bote2b25e53f8
7 hours agoDocs: boot contract v2 (layout, init, drive letters and the share for beginners), M3 done, K12 (FAT dirty bit: no unmount on pid 1 exit)Grok Bot5a331c407d
7 hours agomake test is contract v2 (init runs the self-test, host fsck + share read-back); make test-v1/image-v1 keep the old layout; compare uses v1Grok Botc8f1cf1102
7 hours agoscripts/mkimage-v2.sh: one GPT disk with ext2 root, FAT32 data and single-FAT exFAT shareGrok Botd53297804f
7 hours agoContract v2 trees: root/ (A:, /etc moved from rootfs/, v2 self-test + dash v2-test.sh), share/ (C:); dash-test.sh takes the bin dirGrok Bot12ef9f02ff
7 hours agoscripts/exfat.py: read/fill an exFAT volume inside an image without mounting itGrok Bot4dc7c2e206
7 hours agoc/orphan.c: check that an orphaned grandchild is adopted and reaped by init (pid 1)Grok Bot12674c45d0
7 hours agorust/init: Foundry OS /sbin/init for boot contract v2 (rbsh on console + hvc0, respawn, orphan reaping, headless self-test with memory check)Grok Bot55604d879b
7 hours agorbsh: C: is the share (/mnt/share) when mounted, disks take B:, D:, ...; getty prefers /bin/rbsh; host tests (make rbsh-test)Grok Bot8950fae6ee
7 hours agoBump kernel pin to Rustbelt 0.21.0 (50476f4); add make k1-check (RUSTBELT_DISK0 gives a byte-identical disk.img)Grok Bot15035eada5
7 hours agoInstall dash as /bin/dash (not /bin/sh) and run 15 dash script checks in make testGrok Bot3ca471d945
7 hours agoports/dash: fetch (SHA256-pinned, mirror list) and build dash 0.5.12 static-PIE with foundry-ccGrok Botbaf7b2d1a4
7 hours agodocs: M2 done; how to add a C program; plain -static ET_EXEC runs on 0.20.0 (noted, not relied on)Grok Bot01c85e80bd
7 hours agoM2: build c/ with foundry-cc, put hello-musl and fprobe in /bin, check them in make testGrok Boteeb17191ca
7 hours agoc/: hello-musl names the kernel and ELF type; fprobe, a 40-check libc self-checkGrok Bot3219ac028e
7 hours agoBump kernel pin to Rustbelt 0.20.0 (5291332)Grok Bot7acb8de4eb
8 hours agoports/README: fix a stray code fenceGrok Botea587e9ad0
8 hours agotoolchain: foundry-cc + musl-pie.specs, every C program and port is static-PIEGrok Bot7cf3556ce8
8 hours agoREADME and docs: beginner guide, glossary, boot contract v1/v2, plan, porting, gaps, kernel requests (K1)Grok Bot909242193c
8 hours agodocs/proposal.md: record the approval; replace 'vendored tarball' with the SHA256-pinned download cacheGrok Bot41e9df8f2e
8 hours agodocs/proposal.md: Clarke's approved proposal, copied unchanged from clarke-scratchGrok Botca4ae68107
8 hours agorootfs/etc: passwd, group, hosts, resolv.conf, motd for the future ext2 root (not staged under contract v1)Grok Bot7bb1fe293e
8 hours agotoolchain/musl, ports/, c/: SHA256-pinned download cache instead of vendored tarballsGrok Bot5b5c90c345
8 hours agomake test-reference: run the same headless checks on the kernel's own disk.imgGrok Bot141a05d500
8 hours agoBuild system: make image/run/test/compare against the pinned kernel a55b41dGrok Botb3a7cc7ae7
8 hours agorust/: Cargo workspace (rbsh, coreutils-rs, net, sys) sharing rbrt/ulib.rsGrok Bot0ffe635cd6
8 hours agoMove the shell, tools and net/sys programs into the rust/ layout; drop the ABI test fixturesGrok Bot2ca603aac8
8 hours agoImport rust-kernel disk/ with its history as rootfs/ (git subtree split at a55b41d)Grok Bot82182faf90
8 hours agoImport rust-kernel user/ with its history (git subtree split at a55b41d, Rustbelt 0.19.0)Grok Botf0db8ff6a5
8 hours agoStart Foundry OS: empty repo with .gitignore (out/, cache/)Grok Bot649975870b
8 hours agoStage 19: vDSO, static PIE and mremap (0.19.0)Edwardc075970bdb
9 hours agoDevice identities, ttyname, fd-message merging, /proc/self/cwd (Clarke's probe)Edward0b513e9df3
9 hours agoStage 18: Unix sockets and /proc/self (0.18.0)Edward4b17d4fa03
9 hours agoStage 18 prep: fixes from Clarke's 0.17.0 reviewEdward85f5cd4654
10 hours agoStage 17: coreutils batch 2 (0.17.0)Edwarde6eb9917e4
11 hours agoStage 16: libc batch 1 (0.16.0)Edwarda2549ec94f
1 day agoWIP 15.1: version bump, selftest/headless/screenshot, README chapterTyler Fowler4b42283414
1 day agoWIP 15.1: version bump, selftest/headless/screenshot, README chapterTyler Fowler5ba29e2307
1 day agoWIP 15.1: rawabi, a no-libc static Linux C binary (gcc -nostdlib), + testTyler Fowlerf3ac93a5e6
1 day agoWIP 15.1: Linux C-string path syscalls, struct stat, *at() calls, rename, pathtestTyler Fowlere8a1598981
1 day agoWIP 15.1: per-thread FPU/SSE/AVX state (XSAVE/FXSAVE), signal fpstate, #MF/#XM, fputestTyler Fowler618ed3f823