TilekarOS Documentation
Welcome to the TilekarOS documentation. This project is a 32-bit hobby operating system designed for educational purposes.
Documentation Map
1. Getting Started
- Build System: How to compile and run the OS.
- Installation Guide: Setting up the development environment.
- Experimenting & Messing Around: How to create tasks and intentionally trigger failures.
2. Kernel Internals (for OS Developers)
- Architecture Overview: Boot sequence and memory layout.
- Kernel Initialization: Detailed startup sequence from GRUB to
kernel_main. - GDT & TSS: Global Descriptor Table and segment management.
- Memory Management: Physical Memory (PMM), Virtual Memory (VMM), and Heap (
kmalloc). - Interrupts & Exceptions: IDT, PIC, and IRQ handling.
- Multitasking: Context switching assembly and scheduler logic.
- Task Management Guide: Creating and managing kernel and user tasks.
- System Call Dispatcher: How the kernel handles
int 0x80. - Kernel Utilities: Low-level helpers (I/O ports, interrupt control,
InteruptReg).
3. Drivers
- VGA/TTY: Text mode output and terminal logic.
- Keyboard: PS/2 Keyboard and scancode handling.
- Timer: PIT (Programmable Interval Timer).
4. API Reference (for Users/Programmers)
- System Call Reference: How to use the kernel services.
- LibC Reference: Available C standard library functions.
5. Development & Contributions
- Coding Style: Best practices for writing kernel code.
- Documentation Guide: How to contribute to this documentation.
Technical Specs
- Architecture: i386 (32-bit x86)
- Bootloader: Multiboot-compliant (e.g., GRUB)
- Memory Model: Flat / Paged
- Kernel Space: Higher-half (starts at 0xC0000000)