acadia/zion
Drew Galbraith 78624d5291 [Zion] Immediately schedule enqueued threads if we are sleeping. 2023-11-02 22:28:08 -07:00
..
boot [zion] Move all APIC functions into a global class. 2023-08-01 22:38:40 -07:00
capability [Glacier] Convert ErrorCode into an Enum. 2023-11-02 21:55:12 -07:00
common [zion] Use a separate stack for PF and GP faults in the kernel. 2023-08-01 23:11:12 -07:00
debug Migrate to error constants in glacier 2023-06-21 18:28:54 -07:00
include Add a way to restrict permissions on cap duplication. 2023-11-02 22:12:55 -07:00
interrupt [Yellowstone] Move to yunq definition for yellowstone server. 2023-10-24 18:24:26 -07:00
lib [Glacier] Convert ErrorCode into an Enum. 2023-11-02 21:55:12 -07:00
loader [zion] Move to default permissions being supplied by KernelObjects 2023-08-01 18:22:41 -07:00
memory [Yellowstone] Move to yunq definition for yellowstone server. 2023-10-24 18:24:26 -07:00
object [Zion] Remove dead ZMessage struct. 2023-11-02 21:57:29 -07:00
scheduler [Zion] Immediately schedule enqueued threads if we are sleeping. 2023-11-02 22:28:08 -07:00
syscall [Zion] Validate that started threads are in user space. 2023-11-02 22:23:32 -07:00
usr [Zion] Remove dead ZMessage struct. 2023-11-02 21:57:29 -07:00
CMakeLists.txt [Zion] Add a mutex object with appropriate syscalls. 2023-10-25 14:47:45 -07:00
README.md Update READMEs and TODOs 2023-10-24 22:56:45 -07:00
TODO.md [Yellowstone] Move registration service to the main yellowstone service 2023-10-24 23:42:49 -07:00
linker.ld Barebones Kernel Commit 2023-05-17 20:20:53 -07:00
zion.cpp [zion] Add a basic slab allocator to the kernel. 2023-08-02 00:54:39 -07:00

README.md

Zion Microkernel

The Zion Microkernel is a capability based kernel. The types of objects that processes can hold a capability to exist in the object/ directory. The system calls used to interact with them are enumerated in include/zcall.h and are implemented in the syscalls/ directory.

The system uses a barebones ELF loader (loader/init_loader.h) to jump to userspace but from there userspace processes are responsible for loading child processes into memory and executing them.

Open Work

The TODO file enumerates current areas for improvement.