acadia/zion
Drew Galbraith 2dd69f5844 [Zion] Map user stacks in as regular MemoryObjects.
This allows us to easily track the physical memory so it
can be freed when the thread exits. It also simplifies the page fault
handler as it just needs to check regular mappings to find a user stack.
2023-11-24 16:51:35 -08:00
..
boot [Zion] Print less about acpi on boot. 2023-11-15 16:09:36 -08:00
capability [Zion] Add the ability to delete a capability. 2023-11-19 17:53:56 -08:00
common [Zion] Add a max depth to stack unwinds. 2023-11-24 15:04:19 -08:00
debug [Mammoth] Move all callers of FromCapability to OwnedMemoryObject. 2023-11-19 20:33:15 -08:00
include [Zion] Add an argument to memory align a mapping. 2023-11-23 18:52:28 -08:00
interrupt [Zion] Add more context to GPT faults in the interrupt handler. 2023-11-24 16:49:05 -08:00
lib [Zion] Actually free memory pages when a MemoryObject goes out of scope 2023-11-19 21:37:30 -08:00
loader [Zion] Separate Memory "Views" to a separate MemoryObject. 2023-11-19 23:22:56 -08:00
memory [Zion] Map user stacks in as regular MemoryObjects. 2023-11-24 16:51:35 -08:00
object [Zion] Map user stacks in as regular MemoryObjects. 2023-11-24 16:51:35 -08:00
scheduler [Zion] Move existing proc/thread cleanup calls to the cleanup thread. 2023-11-24 15:40:44 -08:00
syscall [Zion] Move existing proc/thread cleanup calls to the cleanup thread. 2023-11-24 15:40:44 -08:00
usr [Zion] Remove dead ZMessage struct. 2023-11-02 21:57:29 -07:00
CMakeLists.txt [Zion] Add a proc/thread cleanup thread for future use. 2023-11-24 15:04:03 -08:00
README.md Update READMEs and TODOs 2023-10-24 22:56:45 -07:00
TODO.md Update TODOs to reflect completed tasks. 2023-11-22 11:00:21 -08:00
linker.ld Barebones Kernel Commit 2023-05-17 20:20:53 -07:00
zion.cpp [Zion] Add a proc/thread cleanup thread for future use. 2023-11-24 15:04:03 -08: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.