This directory contains comprehensive technical documentation for the Serix microkernel operating system.
- Architecture Overview - High-level system design and subsystem organization
- Boot Process - Detailed boot sequence from firmware to userspace
- Memory Layout - Virtual and physical memory organization
- Interrupt Handling - IDT, APIC, and interrupt flow
- HAL API - Hardware abstraction layer interface
- Kernel API - Syscall interface and usage
- Graphics API - Framebuffer operations and console
- Roadmap - Development roadmap and milestones
- Contributing - Code style, build procedures, and PR process
Each subsystem has its own README with implementation details:
| Module | Description | Documentation |
|---|---|---|
| kernel | Entry point, syscalls, GDT | kernel/README.md |
| memory | Page tables, heap, frame allocator | memory/README.md |
| hal | Hardware abstraction (serial, CPU, I/O) | hal/README.md |
| apic | APIC interrupt controller | apic/README.md |
| idt | Interrupt descriptor table | idt/README.md |
| graphics | Framebuffer console, drawing | graphics/README.md |
| task | Async task executor, scheduler | task/README.md |
| keyboard | PS/2 keyboard driver | keyboard/README.md |
| util | Utility functions, panic handler | util/README.md |
- New to Serix? Start with the main README
- Want to contribute? Read CONTRIBUTING.md
- Understand the boot process: BOOT_PROCESS.md
- Learn the memory layout: MEMORY_LAYOUT.md
- Building and testing: See README.md - Building
- Code style guidelines: See CONTRIBUTING.md - Code Style
- Syscall reference: KERNEL_API.md
- Hardware interaction: HAL_API.md
- How interrupts work: INTERRUPT_HANDLING.md
- Memory management: MEMORY_LAYOUT.md
- Graphics system: GRAPHICS_API.md
- Limine Bootloader Protocol: GitHub - Limine Protocol
- OSDev Wiki: https://wiki.osdev.org
- Intel x86_64 Manual: Intel® 64 and IA-32 Architectures Software Developer Manuals
- AMD64 Architecture: AMD64 Architecture Programmer's Manual
All documentation in this repository follows:
- GitHub Flavored Markdown syntax
- ATX-style headings (using
#symbols) - Fenced code blocks with language identifiers
- Consistent linking for cross-references
For detailed documentation guidelines, see CONTRIBUTING.md.
All documentation is licensed under GNU General Public License v3.0. See LICENSE file.