ChickenOS is a lightweight hobby operating system for x86-64 developed in Rust.
This project is discontinued. But feel free to check out my current osdev project: NereusOS
- Higher Half Kernel: Built from scratch with Rust, providing a safe and modern approach to systems programming.
- Bootloader: ChickenOS includes its own bootloader, designed to initialize the system and hand control over to the ChickenOS kernel.
ChickenOS can be built and run using the provided Makefile
.
Ensure you have the following tools installed:
- Rust (nightly toolchain)
qemu
(for running the OS in a virtualized environment)OVMF
(for UEFI support in QEMU)parted
,mkfs.fat
(for preparing a USB drive)
make run release=true
make usb USB_DEVICE=/dev/<device> release=true
- Higher Half Kernel Entry
- Basic Bootloader
- Global Descriptor Table
- Interrupt Handling
- Complete ISR
- ACPI Tables
- RSDP
- RSDT/XSDT
- MADT
- FADT
- APIC IO
- Timer
- Programmable Interval Timer
- Keyboard support
- Receive Scancodes
- Basic Keyboard Driver
- Proper Keyboard Driver
- Custom Memory Map
- Physical Memory Manager
- Paging
- Global Page Table Manager
- Virtual Memory Manager
- Global Virtual Memory Manager
- Basic Kernel Heap Allocator
- Bump Allocator
- Linked List Allocator
- Full-fetched Kernel Heap Allocator
- Raw Framebuffer
- Full-fetched Framebuffer
- Text & Fonts
- Global Writer
- Scheduler
- Processes: todo: fix process isolation pml4 switch
- Resources
- Threads
- Thread API
- Task Creation Helpers
- Thread Sleep
- Automatic Task Deletion
- Spin Lock
- Switching Modes
- Interrupt Handling in Userspace
- System Calls
- Userspace Heap Allocator
- Shared Memory
- Message Passing
- Virtual Filesystem
- TAR Filesystem
- Loading ELFs
\\
(o>
\\_//)
\_/_)
_|_