RustForge

foundry

Foundry OS: the operating system built on the Rustbelt kernel

authorTyler Fowler <tyler@localhost>2026-10-30 00:52:14 -0700
commita68bfbf1da7677ae27d09f13dd6510071933c3ad
treebrowse files at this commit
Stage 6: PCI, virtio-blk, partitions, FAT32, spawn/wait and shell syscalls

- PCI bus scan (printed at boot); BlockDevice trait + device registry
- legacy virtio-blk driver (polled virtqueue, bounce buffer); RamDisk for tests
- MBR + GPT parsing, partitions exposed as block devices (vda1...)
- FAT32 via fatfs (git, no_std+alloc) behind a BlockIo adapter; mounted at
  /mnt/disk0; build.rs builds target/disk.img (sfdisk + mkfs.vfat + mtools)
  with text files and the user program ELFs; programs now load from disk
- syscalls: stat, fstat, lseek, pipe, sleep_ms, wait, getcwd, chdir, mkdir,
  rmdir, unlink, getdents64, spawn(path, argv, stdio, trace)
- real blocking: blocked threads, wake_at, WaitQueue; console read, pipes and
  wait block instead of spinning
- 64 KiB thread stacks with a canary, finished stacks freed, 4 MiB heap,
  allocator takes its lock with interrupts off
- demo + child user programs; tests for block, partitions, FAT, spawn/wait
- README: disks section, syscall table, spawn vs fork/exec, shell design
Anotes/todo.txt+2 -0
Areadme.txt+2 -0

2 files changed, 4 insertions, 0 deletions

@@ -0,0 +1,2 @@+Next stage: the shell (cd, ls, pwd, cat, run, start, pipes, > redirection).+Later: ext2, exFAT, btrfs.
@@ -0,0 +1,2 @@+Hello from the FAT32 disk! This file lives on a virtio-blk disk, in a GPT+partition, in a FAT32 file system -- read through the kernel's VFS.