Overview
Key Features
- GRUB Bootloader: Implemented a GRUB-based bootloader that initializes the system and transfers control to the kernel, enabling the OS to boot on any x86-compatible hardware.
- Interrupt Handling (IDT): Designed and implemented the Interrupt Descriptor Table for handling hardware and software interrupts, including keyboard input and timer interrupts.
- Memory Management: Built basic memory management subsystems for kernel-level memory allocation and page management.
- Cooperative Multitasking: Implemented cooperative multitasking with context switching between kernel processes, allowing multiple tasks to share CPU time.
- Hardware Interaction: Low-level hardware interaction using x86 Assembly for direct CPU communication, port I/O, and register manipulation.
Technologies Used
- C++: Kernel logic and higher-level system code
- x86 Assembly: Low-level hardware interaction, boot sequence, and interrupt handlers
- GRUB: Bootloader for system initialization
- Make: Build system for compiling and linking the kernel