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=truemake 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>
\\_//)
\_/_)
_|_