leetbit
memory process schedularstablegithub.com/

CPU ram process simulation . Pure c . visualization and compare performance of multiple scheduling algorithms . SRTF | FCFS | SJF | RR | PPP | PPN.

Started
Apr 2, 2026
Last activity
Jul 19, 2026
Decisions
4 ADRs
Relations
2

Overview

atlas-fs exists because reading about the VFS only goes so far. Implementing lookup, getattr, and readdir against a real kernel forces every vague mental model into a concrete decision: what is an inode here, what is a path, who owns a reference.[1]

The mounted tree exposes the knowledge base itself: /articles/vfs-path-resolution.md is a real file, and its engineering relations appear as symlinks under /.relations/. The filesystem is the interface — which makes this project the natural testbed for everything in the path resolution article.

Current state
Read-only mounts are stable. Lookup caching (ADR-003) landed 2026-07-08. Writes are deliberately unimplemented; see future work.

Architecture

Process scheduler — component layout
Exported from drawio. Scroll to zoom, drag to pan, or open fullscreen.

One process, one thread for the FUSE session, no async.[2] The inode table is the interesting piece: the kernel asks by inode number after the first lookup, so the table must be stable for the mount's lifetime. That constraint came straight from the inode lifetime rules.

Decisions

ADR-001Rust + fuser over libfuse/Caccepted
ADR-002Read-only mount until the graph format stabilizesaccepted
ADR-003Resolve eagerly, cache conservativelyaccepted
ADR-004Expose relations as symlinks, not xattrsproposed

Future work

  • read-only mount with stable inode table
  • lookup entry caching with conservative TTLs (ADR-003)
  • relations as symlinks under /.relations/ (ADR-004, proposed)
  • invalidation on content change — kernel notify support
  • benchmark against dentry-cache notes methodology

References

  1. 1Documentation/filesystem/fuse.rst
    The Linux kernel community · 2024
  2. 2fuser — a Rust library for filesystems in userspace
    Christopher Berner and contributors · 2024
started Apr 2, 2026last activity Jul 19, 2026status stable