My name is Vladimir (aka Yula), I am a 15-year-old student, and I would like to share my hobby operating system project: YulaOS.
I have been working on this intensely for the past few weeks (a massive development sprint of sleepless nights), aiming to build a unix-like environment from scratch.
Repository: https://github.com/Yula1234/YulaOS
Key Features
Kernel & Architecture:
- Arch: x86 (32-bit), Multiboot compliant.
- Memory Management: Higher-half kernel, PMM (bitmap), VMM using Red-Black Trees for tracking free virtual memory regions (O(log n) allocation).
- Multiprocessing (SMP): Full SMP support, parsing MADT, APIC/IOAPIC setup, and AP trampoline at 0x1000.
- Scheduler: Preemptive multitasking with basic priority handling.
- Storage: AHCI driver with MSI support (supports read/write).
- Input: PS/2 Keyboard and Mouse.
- Graphics: VBE Linear Framebuffer with SSE-accelerated software rendering.
- Window Manager: Custom compositing WM with support for overlapping windows, transparency, and "dirty rectangles" tracking to minimize redraws.
- Filesystem: YulaFS - a custom Unix-like filesystem with a block cache layer.
- Shell: Features command history, piping (`|`), and process management.
Instead of porting GCC immediately, I challenged myself to write my own toolchain that runs natively on YulaOS. It is not yet fully self-hosting (cannot compile itself yet), but it works for userland programs:
- scc: A Small C Compiler. It performs lexical analysis, parsing (AST), generates IR (Intermediate Representation), and emits ELF object files.
- asmc: A custom assembler for x86 instructions.
- uld: A linker that combines object files into an executable ELF.
My immediate goals are to improve `scc` to support more C features so it can eventually compile itself and the kernel.
I would appreciate any feedback on the code structure.
Thanks for looking!


