acadia/zion
Drew Galbraith 8adde27d9b [Zion] Add a thread sleep call.
For now this can only sleep in increments of the scheduler quantum
(currently 50ms). It also uses a somewhat ineffecient way of tracking
the sleeping threads - it will scale linearly with the number of
sleeping threads.
2023-12-07 00:20:03 -08:00
..
boot [Zion] Compile kernel with -Wall -Werror. 2023-11-26 22:07:52 -08:00
capability [Zion] Remove all capabilities on process cleanup. 2023-11-24 17:05:11 -08:00
common [Zion] Compile kernel with -Wall -Werror. 2023-11-26 22:07:52 -08:00
debug [Zion] Compile kernel with -Wall -Werror. 2023-11-26 22:07:52 -08:00
include [Zion] Add a thread sleep call. 2023-12-07 00:20:03 -08:00
interrupt [Zion] Add a ProcessWait syscall. 2023-12-01 11:36:27 -08:00
lib
loader [Zion] Compile kernel with -Wall -Werror. 2023-11-26 22:07:52 -08:00
memory [Zion] Mark pages as not present before calling invlpg. 2023-12-05 16:11:37 -08:00
object [Zion] Add a thread sleep call. 2023-12-07 00:20:03 -08:00
scheduler [Zion] Add a thread sleep call. 2023-12-07 00:20:03 -08:00
syscall [Zion] Add a thread sleep call. 2023-12-07 00:20:03 -08:00
usr
CMakeLists.txt [Zion] Compile kernel with -Wall -Werror. 2023-11-26 22:07:52 -08:00
README.md
TODO.md Update TODOs 2023-12-05 16:16:42 -08:00
linker.ld
zion.cpp [Zion] Add a keyboard interrupt handler and a driver manager. 2023-11-25 11:14:30 -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.