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