Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Filesystem stance

No filesystem today. There is no VFS, no open/read/write of named files, no directory, no block device, and no on-disk format. A grep of src/ finds no memfs, virtio-blk, FAT, or inode code. That absence is the probe for “none now.” The capability itself is Planned.

Do not say “ctos has files.” Do not mint a new FR/NFR ID in chat. Frozen Out list already names POSIX / userspace as later (fr-nfr.md). Hub: overview.md. Samples that do run: apps-today.md.

Site source of truth: Filesystem (Planned). This page is extra stance. HTTPS at https://ctos.artof.link is Verified (2026-09-11 after #30).

Intended order (not started)

Each step is one milestone → one branch → one PR, with its own ADR when it lands. Later steps do not start on an unclosed earlier one.

StepWhat it would beWhy this orderStatus
1. memfsIn-RAM named buffers on the existing first-fit heap (src/heap.rs). Prove create / lookup / read / write of a path without DMA.Same “easiest in-tree” shape as a coop EL1 task. No virtqueue, no disk image.Planned. Not in tree.
2. virtio-blkQEMU virt virtio block: virtqueues, a guest-visible disk, read/write sectors.Paging and a heap already exist, but virtio-mmio / DMA is its own mile. Do not pretend PL011 RX is a block device.Planned. After memfs (or justified in that ADR if a probe needs a disk first).
3. FAT or xv6-likeAn on-disk layout on top of the block device. FAT if we want a host-visible image; xv6-like if we want a tiny teaching inode FS.Choose in the ADR that lands it. This page does not pick.Planned. After a block device.

A smoke string such as fs: ok / blk: ok would be invented with that PR, fail-closed in scripts/qemu-smoke.sh. Until then, there is nothing to grep.

What this is not

  • Not POSIX open / stat / mount. Those wait on a later SVC ABI (building-or-porting.md).
  • Not virtio-net, 9p, or a Linux rootfs.
  • Not “we have a disk because QEMU can attach one.” Host -drive without guest code is not a probe.
  • Not a claim that Python, a shell, or a package manager becomes possible once memfs exists. Those still need an ABI, a process, and usually more than a RAM tree.

Honesty

ClaimProbeStatus
No filesystem in this treeSource: no VFS / memfs / virtio-blk / FAT in src/Verified (absence)
Guest can open a fileSerial + #[test_case] that do not exist yetPlanned
virtio-blk worksQEMU disk + guest driver + markerPlanned
FAT or xv6-like on a block deviceFormat + read-back probePlanned

Unprobed stays Unknown. File presence of this note is not a filesystem. See the honesty ledger.