[−][src]Crate sunrise_kernel
Sunrise kernel
Writing an Operating System is easy. Explaining how to write one isn't.
- PoC||GTFO, 4:3.
A small kernel written in rust for shit and giggles. Also, hopefully the last project I'll do before graduating from 42 >_>'.
Currently doesn't do much, besides booting and printing Hello World on the screen. But hey, that's a start.
Modules
checks | Checked maths functions returning useful errors. |
cpu_locals | CPU local storage |
devices | Device drivers |
elf_loader | Loads Kernel Built-ins. |
error | UserspaceError and KernelError |
event | The core event handling primitives of Sunrise. |
frame_allocator | Physical memory manager. |
heap_allocator | Virtual heap allocator. |
i386 | This crate is x86_64's little brother. It provides i386 specific functions and data structures, and access to various system registers. |
ipc | IPC primitives |
log_impl | A simple log implementation based on env_logger |
mem | Basic functionality for dealing with memory. |
paging | Paging. |
panic | Kernel panic |
process | Process |
scheduler | The Completly Unfair Scheduler |
sync | Synchronization primitives used by the kernel |
syscalls | Syscall implementations |
timer | The core timing of Sunrise. |
utils | Generic useful functions |
Macros
generate_trap_gate_handler | Generates a trap/interrupt gate isr. |
irq_handler | Generates irq handlers. |
trap_gate_asm | The exception/syscall handler asm wrapper. |
Statics
ALLOCATOR | The global heap allocator. |
Functions
common_start | CRT0 starts here. |
force_double_fault⚠ | Forces a double fault by stack overflowing. |
main | The kernel's |
start⚠ | The entry point of our kernel. |