[][src]Crate sunrise_kernel

Sunrise kernel

Writing an Operating System is easy. Explaining how to write one isn't.

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 main.

start

The entry point of our kernel.