[][src]Crate obsidianos_kernel

ObsidianOS is a multitasking, POSIX compliant and written in Rust Operating System (OS) under GPL license. It means that this operating system is entirely compatible with GNU/Linux operating systems and that this OS is under the same license than GNU/Linux. However, this operating system is not written in C but in Rust which is more safer, faster, memory-efficient and which has a great documentation.

Modules

boot_info

Boot informations management

common

Common C functions required to compile (memcpy, memmove, memset, memcmp)

elf

ELF manipulation functions: check, load, run

gdt

Global descriptor table segments management and initialization

initfs

A fake initramfs used to read volatile files It uses the include_bytes macro to read files during the compilation

irq

Interrupts management

memory

Memory management functions which include:

serial

Serial communication between the kernel and the host's terminal with the UART16550

sse

SSE activation to load ELF binaries with SSE

syscall

Syscall management. There are organized in some subcategories:

tasking

Tasking and processes management functions which include:

Macros

fault

Defines the inner of the fault handlers

fault_code

Defines a handler for faults with an error code

fault_code_non_return

Defines a handler for faults with an error code and which does not return

fault_non_return

Defines a handler for faults wich does not return

fault_without_code

Defines a handler for faults without an error code

print

Prints to the host through the serial interface.

println

Prints to the host through the serial interface, appending a newline.

Enums

QemuExitCode

The different exit codes used by Qemu

Functions

exit_qemu

Exit Qemu with an exit code at the end of the tests

init

An initialization function which runs initializations of all components

kmain

The entry point of the kernel