[−][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. |