A simple operating system written in Assembly language. This project demonstrates the fundamentals of low-level programming, bootloaders, and interacting with computer hardware directly.
- Custom Bootloader: A handcrafted 512-byte bootloader that resides in the first sector of the storage media.
- Real Mode Execution: Runs in 16-bit Real Mode, interacting directly with BIOS interrupts (like
int 0x10for video services). - Hardware Direct Output: Bypasses standard operating systems to print text and characters directly to the screen.
- Minimal Footprint: Optimized for size and performance, focusing on the core essentials of system startup.
- Language: Assembly (x86)
- Assembler: NASM (Netwide Assembler) - Used to compile
.asmsource code into machine-readable.binfiles. - Emulator: QEMU - Used to run and test the OS in a virtual environment.
- Version Control: Git & GitHub - For source code management and tracking changes.
- Editor: Visual Studio Code - The primary IDE for writing code and managing the project workflow.
Ensure you have NASM and QEMU installed and added to your system's environment variables (PATH).
To compile the source code into a binary file, run the following command in your terminal:
nasm -f bin main.asm -o main.bin
To boot the compiled binary using the QEMU emulator:
qemu-system-x86_64 -drive format=raw,file=main.bin
main.asm: The primary source code containing the bootloader logic and OS entry point.main.bin: The compiled binary output (executable by the CPU/Emulator)..gitignore: Prevents compiled binaries and system files from being tracked by Git.
- Initial Bootloader logic implemented.
- Successful character output to screen.
- Repository connected to GitHub.
- Keyboard input handling (Upcoming).
- Basic Shell/Command interface (Planned).
This project is open-source and available under the MIT License.