Developing a Multithreaded Kernel from Scratch
InjectByte-OS is a low-level operating system project built from the ground up in C and x86 Assembly, designed to explore kernel development concepts such as multitasking, memory management, and hardware interaction. This repository contains the source code and resources used to develop the kernel.
Just Curious About how The OS works. So why not make one Yourself. Blah Blah Blah Just read the Prerequisites and Getting Started Portion.
- Boot process and real mode setup
- Interrupt handling
- Memory management and paging
- Multithreading and task scheduling
- Disk I/O and filesystem basics
- ELF loader implementation
- Virtual filesystem design
- Kernel debugging in emulators like QEMU
- Knowledge of C programming
- Basic understanding of x86 Assembly
- Familiarity with command-line tools (optional but helpful)
- Download a C Cross Compiler "Must Find how? if You wanna Learn"
- Custom bootloader
- Protected mode kernel
- Interrupt Descriptor Table (IDT) implementation
- Paging and heap memory management
- Simple multitasking and scheduling
- Disk and keyboard drivers
- ELF file loading support
- Clone the repository:
git clone https://github.com/IJBaig/InjectByte-OS.git cd InjectByte-OS - Cross Compiler
Edit build.sh File according to Compiler's Path - Build the kernel:
make clean ./build.sh
- Run in QEMU:
qemu-system-i386 -kernel bin/os.bin
-
Building a kernel from scratch
-
Understanding memory and CPU architecture
-
Differentiating between kernel space and user space
-
Implementing basic multitasking
-
Designing low-level drivers and system components
-
Debugging using emulators and GDB
Special thanks to my mentor and instructor, Daniel McCarthy , whose guidance and course materials were invaluable in developing this kernel project.
This project is licensed under the GNU GENERAL PUBLIC LICENSE