Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,26 @@
# Changelog

## M6C Bounded Cache and VFS candidate — 2026-07-27

- Adopted Soma OS as the temporary user-facing working identity while retaining
historical tags and internal crate identifiers.
- Added a 16-sector, allocation-free, read-through LRU block cache.
- Made the M6C dirty-state policy explicit: every persistent write is rejected
before transport and the cache must retain zero dirty entries.
- Added live first-miss/repeat-hit evidence against the accepted virtio device.
- Added fixed inode, superblock, mount, canonical path, directory, and backend
contracts.
- Added bounded absolute-path normalization with component and depth limits.
- Added a four-entry mount table with component-boundary longest-prefix lookup.
- Added a 32-entry generation-protected user file-handle table.
- Adapted RAMFS and shell file operations behind the VFS contract.
- Added `cache` and `mounts` diagnostics.
- Added capability registry version 6 and mandatory M6B regression evidence.

M6C does not mount a persistent filesystem and cannot leave persistent dirty
data. Read-only FAT32 remains the M6D gate; persistent writes remain deferred
until corruption, recovery, and power-loss behavior are designed and tested.

## M6B Virtio Block Transport candidate — 2026-07-26

- Architecture-independent 512-byte sector block-device contract.
Expand Down
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ SHELL := /usr/bin/env bash

help:
@printf '%s\n' \
'SanjuOS developer commands:' \
'Soma OS developer commands:' \
' make setup Install the Rust target used by the UEFI loader' \
' make source-check Validate critical source and UEFI ABI invariants' \
' make user-programs Rebuild the embedded Ring 3 ELF programs' \
Expand Down
20 changes: 10 additions & 10 deletions PROJECT.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# Project Charter

- Working name: SanjuOS
- Working name: Soma OS
- Start date: 2026-07-21
- Product owner: Sanju
- Architecture: x86-64
- Firmware: UEFI 2.x
- Primary language: Rust 2024
- Accepted checkpoint: M6A PCI and Storage Discovery
- Immutable release: `v0.0.9-m6a`
- Current development checkpoint: M6B virtio block transport
- Accepted checkpoint: M6B Virtio Block Transport
- Immutable release: `v0.0.10-m6b`
- Current development checkpoint: M6C bounded cache and VFS
- Deployment policy: QEMU only until physical-install safety gates pass

## Mission
Expand All @@ -21,12 +21,12 @@ Development is grouped into major milestone batches. Small formatting or CI corr

## Current objective

Activate the dedicated QEMU virtio block target behind an
architecture-independent sector contract. Validate modern PCI capabilities,
feature negotiation, DMA queue ownership, a known-sector read, and a confined
write/readback/restore transaction.
Add an allocation-free, fixed-capacity read-through cache over the accepted
virtio block transport. Establish bounded inode, superblock, mount, canonical
path, directory, and generation-protected user file-handle contracts. Adapt
RAMFS behind that VFS boundary without enabling persistent writes.

## Next major objective

Add a fixed-capacity block cache and VFS contracts without enabling persistent
filesystem writes.
Validate and mount a dedicated FAT32 image read-only, then expose bounded
persistent directory listing and file reads through the accepted VFS.
45 changes: 29 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
# SanjuOS
# Soma OS

![SanjuOS logo](assets/branding/sanjuos-logo.png)

SanjuOS is an independent, Rust-first desktop operating-system project. It is
Soma OS is the current working identity of an independent, Rust-first desktop
operating-system project. Historical release tags and internal `sanju-*` crate
identifiers remain unchanged until the public product identity is frozen. It is
not a Linux distribution. Development proceeds through emulator-verified kernel
milestones before any physical-disk work.

## Current checkpoint: M6B Virtio Block Transport
## Current checkpoint: M6C Bounded Cache and VFS

The accepted baseline entering this phase was the Foundation Hardening Phase 2
candidate. M0 through FH2 proved UEFI ownership transfer, protected kernel
The accepted baseline entering this phase is `v0.0.10-m6b`. M0 through FH2
proved UEFI ownership transfer, protected kernel
execution, interrupts, Ring 3 entry, `SYSCALL`/`SYSRET`, ELF64 loading,
recoverable user faults, physical ownership, and a fresh SanjuOS page-table
recoverable user faults, physical ownership, and a fresh Soma OS page-table
root.

The accepted `v0.0.8-fh3` release turned the process runtime into an active
Expand Down Expand Up @@ -51,10 +51,21 @@ M6B implements that gate on the dedicated QEMU test disk:
- a seeded read test plus a disposable write/readback/restore transaction;
- a `block` shell diagnostic and exact QEMU acceptance evidence.

M6C builds the filesystem boundary without enabling persistent writes:

- a 16-sector, allocation-free, read-through LRU cache;
- one live first-miss/repeat-hit probe proving the second read avoids transport;
- a hard read-only cache policy with zero dirty entries;
- fixed inode, superblock, mount, canonical path, and directory contracts;
- component-boundary mount resolution and bounded `.`/`..` normalization;
- generation-protected user file handles that reject stale identifiers;
- RAMFS accessed through the same VFS interface reserved for FAT32;
- `cache` and `mounts` shell diagnostics plus exact smoke evidence.

## Shell commands

```text
help version userspace uptime memory irq tasks pci block ls cat write echo clear
help version userspace uptime memory irq tasks pci block cache mounts ls cat write echo clear
```

## Build and verify
Expand All @@ -77,20 +88,22 @@ boot/uefi/ UEFI orchestration and x86-64 platform implementation
kernel/ Boot contracts, memory ownership, allocators, kernel models
capabilities/ Canonical capability registry and generated smoke evidence
user/programs/ Position-independent Ring 3 assembly programs
assets/branding/ Approved SanjuOS graphical logo
assets/branding/ Historical and future product identity assets
scripts/ Build, generation, ABI, QEMU, and validation automation
docs/ Requirements, architecture, ADRs, testing, security, process
```

## Current boundary

M6B and FH3 remain single-core and PIT-driven. Block completion is synchronous
M6C and FH3 remain single-core and PIT-driven. Block completion is synchronous
and polling, one request is outstanding at a time, and only the explicitly
identified disposable QEMU disk is used. The combined EFI-stub kernel still
retains a bounded identity mapping while a separate high-half kernel image is
designed. A block cache, VFS, read-only FAT32, persistent writes, physical-disk
installation, graphics, SMP, and local APIC timers remain later gates.
identified disposable QEMU disk is used. The cache cannot issue writes and
cannot contain dirty entries. RAMFS remains the only writable filesystem. The
combined EFI-stub kernel still retains a bounded identity mapping while a
separate high-half kernel image is designed. Read-only FAT32, persistent
writes, physical-disk installation, graphics, SMP, and local APIC timers remain
later gates.

## Safety

SanjuOS remains emulator-only. Do not install it on a physical disk.
Soma OS remains emulator-only. Do not install it on a physical disk.
2 changes: 1 addition & 1 deletion SECURITY.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Security Policy

SanjuOS is pre-alpha research software and must not be used to protect sensitive data or replace a production operating system.
Soma OS is pre-alpha research software and must not be used to protect sensitive data or replace a production operating system.

## Reporting

Expand Down
Loading
Loading