Overview
BOMBOCLAAT-OS is a simple x86_64 Unix-like operating system written in C. It uses Limine as the bootloader and own kernel (BOMBOCLAAT Kernel). Both OS and the kernel are developed as one project, like many BSD-family systems.
It all started in February 2026 as a simple 32-bit real mode CLI which could only boot on BIOS, but since then almost everything has changed. Now it's a fully working OS with separate user and kernel space which's able to manage tasks, hardware and memory.
Version 2.0 is still in beta, which means that some things may not work properly or at all, but once I fix every of these bugs and errors, BOMBOCLAAT-OS v2.0 will be officially released.
Features
- Graphics support via framebuffer
- Simple multitasking
- Initramfs
- TMPFS - RAM-only filesystem *
- Read-only FAT32 driver *
- Linux-like VFS *
- ELF files executor
Syscalls
All of BOMBOCLAAT Kernel's syscalls work through int 0x80, but I'm working on implementing syscall instruction, which is faster and used by most of modern kernels. They use SYSTEM V ABI argumens sequence: RDI, RSI, RDX, RCX, R8, R9.
| Syscall number | Syscall name | Description | Arguments |
|---|---|---|---|
| 1 | SYS_KPRINTF * | Prints a string using kprintf() | RDI |
| 2 | SYS_NEWPROC | Creates a new process for an ELF file | RDI, RSI, RDX |
| 3 | SYS_ENDPROC | Ends currently running process | none |
| 4 | SYS_KBDINPUT * | Gets a string from keyboard (ends on ENTER) | RDI |
| 5 | SYS_SCRCLS | Clears the whole screen and sets cursor on 0, 0 | none |
| 6 | SYS_FBFINFO * | Gets screen informations from Limine framebuffer | RDI |
| 7 | SYS_UNAME | Sends kernel informations like release or name | RDI, RSI |
| 8 | SYS_POWER | Reboots or shuts down | RDI |
| 9 | SYS_MALLOC | Allocates given number of bytes | RDI |
| 10 | SYS_FOPEN | Assigns a number to a file in proc->fd and returns it | RDI, RSI |
| 11 | SYS_FREAD | Reads file content | RDI, RSI, RDX |
| 12 | SYS_FWRITE | Writes to file from given buffer | RDI, RSI, RDX |
| 13 | SYS_FCLOSE | Closes a file by removing it from proc->fd | RDI |