How hongfeiyang/aos works
AOS is an event-driven seL4 root server that serves processes through syscalls, faults, and interrupts. Its principal workflow dispatches client requests to filesystem, process, timer, or virtual-memory handlers; operations that must wait retain reply capabilities and resume through continuations. The README documents paging, eviction, swap, VFS backends, and timers as major capabilities. The supplied tree and excerpts do not include most AOS implementation files, so those links reflect README-documented behavior rather than inspected call sites; uncertain wiring is omitted.
Main entry points: continuation.c Continuations · main.c Receive Loop · dispatch.c Syscall Dispatch · pager.c Demand Pager
Components 22
Event Runtime
- Receive Loop
projects/aos/sos/src/main.c - Syscall Dispatch
projects/aos/sos/src/dispatch.c - Continuations
projects/aos/sos/src/utils/continuation.c - Reply Manager
projects/aos/sos/src/reply_manager.c
Processes
- Process Calls
projects/aos/sos/src/syscalls/syscall_proc.c - Process Manager
projects/aos/sos/src/proc/proc.c
File System
- Filesystem Calls
projects/aos/sos/src/syscalls/syscall_fs.c - Virtual FS
projects/aos/sos/src/fs/vfs.c - Console Backend
projects/aos/sos/src/fs/backends/console/console_backend.c - NFS Backend
projects/aos/sos/src/fs/backends/nfs/nfs_backend.c
Memory and Time
- VM Fault Handler
projects/aos/sos/src/vm/vmfault.c - Demand Pager
projects/aos/sos/src/vm/pager.c - Page Operations
projects/aos/sos/src/vm/page_ops.c - Frame Eviction
projects/aos/sos/src/vm/eviction.c - Address Spaces
projects/aos/sos/src/vm/addrspace.c - Virtual Memory
projects/aos/sos/src/vm/vmem.c - Swap
projects/aos/sos/src/vm/swap - Timer Calls
projects/aos/sos/src/syscalls/syscall_timer.c - Timeout Queue
projects/aos/libclock/src/clock.c
Other components
- User Process
- NFS Service
- Hardware Timer
Connections 26
- User Process → Receive Loop: sends IPC
- Receive Loop → Syscall Dispatch: dispatches syscalls
- Receive Loop → VM Fault Handler: dispatches VM faults
- Syscall Dispatch → Filesystem Calls: routes filesystem calls
- Syscall Dispatch → Process Calls: routes process calls
- Syscall Dispatch → Timer Calls: routes timer calls
- Filesystem Calls → Virtual FS: uses VFS
- Virtual FS → Console Backend: dispatches backend ops
- Virtual FS → NFS Backend: dispatches backend ops
- NFS Backend → NFS Service: performs NFS I/O
- Process Calls → Process Manager: manages processes
- VM Fault Handler → Demand Pager: loads faulted pages
- Demand Pager → Page Operations: performs page I/O
- Demand Pager → Frame Eviction: requests reclamation
- Page Operations → Swap: reads and writes pages
- Frame Eviction → Swap: writes reclaimed pages
- Demand Pager → Address Spaces: consults regions
- Address Spaces → Virtual Memory: tracks mappings
- Timer Calls → Timeout Queue: schedules timeouts
- Timeout Queue → Hardware Timer: programs deadline
- Receive Loop → Continuations: resumes callbacks
- Filesystem Calls → Continuations: defers I/O work
- Process Calls → Continuations: defers process work
- Timer Calls → Continuations: defers sleeping calls
- Continuations → Reply Manager: uses retained replies
- Reply Manager → User Process: resumes caller