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.
Boot informations management
Common C functions required to compile (memcpy, memmove, memset, memcmp)
ELF manipulation functions: check, load, run
Global descriptor table segments management and initialization
A fake initramfs used to read volatile files
It uses the
Memory management functions which include:
Serial communication between the kernel and the host's terminal with the UART16550
SSE activation to load ELF binaries with SSE
Syscall management. There are organized in some subcategories:
Tasking and processes management functions which include:
Defines the inner of the fault handlers
Defines a handler for faults with an error code
Defines a handler for faults with an error code and which does not return
Defines a handler for faults wich does not return
Defines a handler for faults without an error code
Prints to the host through the serial interface.
Prints to the host through the serial interface, appending a newline.
The different exit codes used by Qemu
Exit Qemu with an exit code at the end of the tests
An initialization function which runs initializations of all components
The entry point of the kernel