38f20cc3c4
feat: proper IPC-based boot — init loads servers from storage via IPC, VirtIO GPU driver
Gabriel Kaszewski2026-10-18 13:02:30 +02:00
ffde4065ba
fix: full init boot logic works — CreateProcess no longer spawns threads, boot uses out-param to avoid sret bug
Gabriel Kaszewski2026-10-18 04:57:20 +02:00
29cd0e7dfe
feat: userspace linker script at 0x10000, proper ELF segment loading, full disk boot pipeline working
Gabriel Kaszewski2026-10-18 04:51:07 +02:00
7649cb0b18
feat: add run() and binary entry points for all servers and init
Gabriel Kaszewski2026-10-18 04:26:42 +02:00
d43c6a7e74
feat(adapter-riscv): load init from VirtIO block device with FAT16 filesystem
Gabriel Kaszewski2026-10-18 04:19:19 +02:00
a910c06cf7
refactor(adapter-riscv): replace hardcoded demo with proper init launch via ELF parsing
Gabriel Kaszewski2026-10-18 04:13:13 +02:00
41f7e7db10
feat(session-server): add session server for app launching, remove apps from init manifest
Gabriel Kaszewski2026-10-18 04:09:28 +02:00
29434805a6
feat(userspace-rt): add runtime crate with entry point, panic handler, and allocator re-export
Gabriel Kaszewski2026-10-18 04:04:52 +02:00
e092fa4ae5
fix: disable test harness for no_std binaries, fix shutdown to best-effort notify-and-halt, use CapSlot newtypes
Gabriel Kaszewski2026-10-18 04:01:39 +02:00
0389c85108
feat(snake): implement snake game with pure game logic, renderer, and IPC-based main loop
Gabriel Kaszewski2026-10-18 04:00:09 +02:00
a7913ddeef
feat(userspace): add KosAllocator — free-list allocator backed by RequestPages syscall
Gabriel Kaszewski2026-10-18 03:55:58 +02:00
f72a434e1a
refactor(init): replace raw usize with CapSlot, StorageHandle, PhysicalAddress newtypes throughout supervisor and boot
Gabriel Kaszewski2026-10-18 03:54:07 +02:00
0a2e01bec9
feat(init): implement supervisor with storage-backed restart, binary source tracking, and back-off delays
Gabriel Kaszewski2026-10-18 03:52:07 +02:00
29c3841679
feat(storage-server): implement ext4 read-only filesystem with superblock, inode, extent, and directory parsing
Gabriel Kaszewski2026-10-18 03:49:24 +02:00
dd5c2c7268
feat(storage-server): implement FAT16 filesystem with read, write, create, delete, list, and cluster chain management
Gabriel Kaszewski2026-10-18 03:45:30 +02:00
2dc503e07e
refactor(storage-server): add SectorId, FileName, PackedPath newtypes, eliminate raw primitives and DRY violations
Gabriel Kaszewski2026-10-18 03:41:14 +02:00
7a4600b3a2
feat(storage-server): add StorageServer<F: FileSystem> with BlockDevice trait, mock adapters, and tests
Gabriel Kaszewski2026-10-18 03:37:40 +02:00
b7bc223a79
feat: add Halt syscall, fault notification to fault handler, supervisor with back-off, shutdown with timeout
Gabriel Kaszewski2026-10-18 03:29:05 +02:00
a83b53d962
feat(init): add init crate with declarative boot manifest, boot sequence, supervisor and shutdown stubs
Gabriel Kaszewski2026-10-18 03:21:17 +02:00
962df75f85
refactor(permission-manager): deduplicate kind mapping into CapabilityKind::index/from_index
Gabriel Kaszewski2026-10-18 03:17:03 +02:00
36cab28506
feat: add log-server (ring buffer) and permission-manager (grant/revoke/check) system servers
Gabriel Kaszewski2026-10-18 03:14:48 +02:00
919e918c0a
feat(input-server): expand protocol with pointer, scroll, and gamepad events
Gabriel Kaszewski2026-10-18 03:11:15 +02:00
c9bd1d2c35
feat(input-server): add InputServer<D: InputDevice> with protocol, mock + UART adapters, and tests
Gabriel Kaszewski2026-10-18 03:08:36 +02:00
5600ce0260
feat(display-server): add VirtioFramebuffer adapter for QEMU
Gabriel Kaszewski2026-10-18 03:05:27 +02:00
b6cfea814a
feat(display-server): add DisplayServer<F: Framebuffer> with protocol, mock adapter, and tests
Gabriel Kaszewski2026-10-18 03:03:58 +02:00
c14fe50c23
feat(server-framework): add Server trait, Encode/Decode, async executor, syscall wrappers, and mock arch for host testing
Gabriel Kaszewski2026-10-18 02:55:22 +02:00
5c29c0845d
refactor: move Mapping<F> to types crate with VirtualAddress/PhysicalAddress newtypes, rename MapFlags to Sv39Flags
Gabriel Kaszewski2026-10-18 02:45:53 +02:00
7df3034fca
refactor(mmu): replace bool-heavy map_range with Mapping struct and MapFlags builders
Gabriel Kaszewski2026-10-18 02:41:27 +02:00
896c78088a
feat: implement configure_protection and map_shared with real page mapping, remove dead context_switch from Platform trait
Gabriel Kaszewski2026-10-18 02:39:36 +02:00
7724a5bd0a
feat: implement context switching, SavedContext with pc/status fields, wire all syscall outcomes and timer preemption
Gabriel Kaszewski2026-10-18 02:34:36 +02:00
5a45c14cf5
feat(adapter-riscv): replace static mut with KernelCell, complete all 17 syscall decoders, wire timer and PLIC interrupts to kernel
Gabriel Kaszewski2026-10-18 02:29:46 +02:00
ededdb2ed9
refactor(userspace): split syscall stubs into arch-agnostic API + arch/riscv backend
Gabriel Kaszewski2026-10-18 02:19:30 +02:00
570fe22bee
feat: userspace round-trip — syscall stubs, ecall dispatch, U-mode entry and exit on QEMU
Gabriel Kaszewski2026-10-18 02:15:35 +02:00
450d74d07f
docs: add ADAPTERS.md with adapter structure, rules, and scaffolding guide
Gabriel Kaszewski2026-10-18 02:09:56 +02:00
b742f92c0a
feat: add scripts/new-adapter.sh to scaffold adapter crates with consistent structure
Gabriel Kaszewski2026-10-18 02:08:32 +02:00
d327794d33
refactor(adapter-riscv): restructure into hw/, mmu/, trap/ modules with board constants
Gabriel Kaszewski2026-10-18 02:05:57 +02:00
66a730b2fe
feat(adapter-riscv): IPC demo — two processes exchange a message on QEMU virt
Gabriel Kaszewski2026-10-18 01:58:18 +02:00
2436061215
feat(adapter-riscv): add RiscVPlatform, PLIC driver, and kernel boot on QEMU
Gabriel Kaszewski2026-10-18 01:56:18 +02:00
941704bbbc
feat(adapter-riscv): add trap handling, timer via SBI, and S/U-mode trap vector
Gabriel Kaszewski2026-10-18 01:53:37 +02:00
d9de828420
feat(adapter-riscv): add Sv39 page tables with identity mapping and MMU activation
Gabriel Kaszewski2026-10-18 01:48:00 +02:00
44a0ead7f2
feat(adapter-riscv): boot on QEMU virt with UART hello world
Gabriel Kaszewski2026-10-18 01:46:47 +02:00
dcadb83088
feat: add Platform::map_shared and wire memory delegation to page mapping
Gabriel Kaszewski2026-10-18 01:30:23 +02:00
4844b6c2d2
feat(elf): add no_std ELF64 parser for loading process binaries
Gabriel Kaszewski2026-10-18 01:26:18 +02:00
142505d8a4
feat: add SavedContext::with_entry_and_stack, wire SpawnThread to preserve entry point and stack
Gabriel Kaszewski2026-10-18 01:24:56 +02:00
4833f2e2bb
feat(kernel): add Revoke syscall for generation-based capability revocation
Gabriel Kaszewski2026-10-18 01:23:24 +02:00
241fefe2d4
refactor(kernel): extract MockPlatform and test helpers into separate modules
Gabriel Kaszewski2026-10-18 01:16:24 +02:00
192631d506
feat(kernel): implement generation-based capability revocation with proofs and tests
Gabriel Kaszewski2026-10-18 01:11:24 +02:00
71518a93a4
refactor(proofs): split into per-topic modules with shared helpers across types, domain, and kernel
Gabriel Kaszewski2026-10-18 01:08:05 +02:00
e5fd6372b3
feat(proofs): add complete mediation, message integrity, and revocation proofs
Gabriel Kaszewski2026-10-18 01:03:54 +02:00
74bdd1fd08
fix(proofs): replace tautological delegate guard proof with check_cap path verification
Gabriel Kaszewski2026-10-18 01:01:20 +02:00
1278373142
fix: fix mut binding and unused import warnings in Kani proofs
Gabriel Kaszewski2026-10-18 00:57:33 +02:00
acc59830ff
feat: add Kani proofs for delegation non-escalation across types, domain, and kernel
Gabriel Kaszewski2026-10-18 00:55:52 +02:00
2c4a9dbadc
refactor(kernel): move SyscallOutcome/Result to syscall module, move test helpers to tests module
Gabriel Kaszewski2026-10-18 00:39:28 +02:00
38ebb6002b
refactor(kernel): split syscall.rs into per-tier modules (simple, memory, lifecycle, capability, ipc)
Gabriel Kaszewski2026-10-18 00:36:34 +02:00
b8c5090fe5
fix(kernel): fix kill wait-queue cleanup, RegionId tracking, ReleasePages ownership, and SwitchTo scheduler state
Gabriel Kaszewski2026-10-18 00:31:05 +02:00
8912a944b8
feat(kernel): add WaitForInterrupt, AcknowledgeInterrupt, and WaitAny syscalls
Gabriel Kaszewski2026-10-18 00:26:11 +02:00
e7835c0435
feat(kernel): add Send and Receive IPC syscalls with rendezvous
Gabriel Kaszewski2026-10-18 00:24:09 +02:00
ae6023081a
feat(kernel): add Delegate syscall for capability delegation
Gabriel Kaszewski2026-10-18 00:22:37 +02:00
07534e52d9
feat(kernel): add SpawnThread, CreateProcess, and Kill syscalls
Gabriel Kaszewski2026-10-18 00:21:01 +02:00
471d96b9a4
feat(kernel): add RequestPages and ReleasePages syscalls
Gabriel Kaszewski2026-10-18 00:19:24 +02:00
95c023f286
feat(kernel): add handle_tick and handle_interrupt entry points
Gabriel Kaszewski2026-10-18 00:17:55 +02:00
74b296a2bf
feat(kernel): add Exit and ExitThread syscalls with process cleanup
Gabriel Kaszewski2026-10-18 00:16:38 +02:00
d0a0ba788f
feat(kernel): add Kernel struct, MockPlatform, and simple syscalls (GetTime, GetProcessId, Yield)
Gabriel Kaszewski2026-10-18 00:15:40 +02:00
8dd36e7d6d
refactor(domain): move irq tests to separate file, fix MemoryRegion import in platform
Gabriel Kaszewski2026-10-17 23:54:16 +02:00
328708ed58
feat(domain): add EndpointTable, IrqRoutingTable, and remaining error variants
Gabriel Kaszewski2026-10-17 23:51:56 +02:00
ed80fc43a6
feat(domain): add memory module with page pool, per-process tracking, and region table
Gabriel Kaszewski2026-10-17 23:45:17 +02:00
021b2d83b9
fix(domain): remove all unwrap() from production code in scheduler
Gabriel Kaszewski2026-10-17 23:40:03 +02:00
c590810fe3
feat(domain): add Message constructor, accessors, and builder
Gabriel Kaszewski2026-10-17 23:36:44 +02:00
0296776e45
chore: remove old flat process.rs and thread.rs replaced by directories
Gabriel Kaszewski2026-10-17 23:34:54 +02:00
edb924c27a
feat(domain): add MultiCoreScheduler with placement tracking, priority preemption, and load balancing
Gabriel Kaszewski2026-10-17 23:31:22 +02:00
14b18f7406
feat(domain): add ThreadTable with spawn, get, destroy, and process filtering
Gabriel Kaszewski2026-10-17 23:29:46 +02:00
6444de69b8
feat(domain): add Thread constructor, accessors, and state machine transitions
Gabriel Kaszewski2026-10-17 23:28:56 +02:00
42ed5ade29
feat(domain): add ProcessTable with create, get, and destroy
Gabriel Kaszewski2026-10-17 23:27:28 +02:00
fe0fde7de1
feat(domain): add Process constructor, accessors, and thread slot management
Gabriel Kaszewski2026-10-17 23:26:14 +02:00
06b51b6712
Implement domain and endpoint modules with capability management, message passing, and scheduling features
Gabriel Kaszewski2026-10-17 23:09:21 +02:00