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

fs

Filesystem management

gdt

Global descriptor table segments management and initialization

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 which 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