TilekarOS Documentation¶
Welcome to the TilekarOS documentation. This project is a 32-bit hobby operating system designed for educational purposes.
π Quick Start¶
Get TilekarOS up and running in 3 commands (assuming prerequisites are met):
make configure # 1. Generate build files
make iso # 2. Build the OS and create ISO
make run_iso # 3. Launch in QEMU
πΊοΈ Documentation Map¶
The main entry point for the kernel is kernel.c.
π οΈ 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, use the VFS, and trigger failures.
π§ Kernel Internals (Deep Dive)¶
- Boot & Initialization: Detailed startup sequence from GRUB to
kernel_main. - CPU & Interrupts: GDT, IDT, and low-level hardware control.
- Memory Management: PMM, Recursive Paging, and Heap internals.
- Multitasking & ELF: Context switching and binary loading.
- Filesystem Stack: VFS, FAT12, and Buffer Cache architecture.
π Drivers & API¶
- Driver Reference: Detailed specs for Keyboard, Timer, and VGA.
- System Call Reference: How to use kernel services from user-land.
- LibC Internals: Implementation details of standard C functions.
- LibC Reference: Function signatures and usage.
π· Development & Contributions¶
- Coding Style: Best practices for writing kernel code.
- Documentation Guide: How to contribute to this documentation.
π οΈ Troubleshooting¶
| Issue | Potential Solution |
|---|---|
grub-mkrescue: not found |
Install grub-pc-bin and xorriso. |
mformat: command not found |
Install mtools. |
qemu-system-i386: command not found |
Install qemu-system-x86. |
Build fails with clang errors |
Ensure you have lld and clang installed. |
π Technical Specs¶
- Architecture: i386 (32-bit x86)
- Bootloader: Multiboot-compliant (e.g., GRUB)
- Memory Model: Higher-half (starts at 0xC0000000), Paged (4KB / 4MB Pages)
- Executable Format: ELF32 (Supported)
- Storage: VFS with FAT12 Support