An Operating System for x86 architectures. Written in C and assembly (Intel Syntax)
This project uses Makefiles with gcc, binutils and nasm to compile.
Tools you need:
gccldnasmobjcopyqemu-system-i386grub-filexorrisomformat
On arch linux:
# pacman -S gcc binutils nasm qemu-desktop grub xorriso mtools
Build and run the project
$ make
Remove build files
$ make clean
Disassemble the operating system
$ make dis
This project uses grub and multiboot 1 to boot.
Bootloader related code is located in the boot/ directory.
The kernel is located in the kernel/ directory.
kmain() is the kernel entry and is implemented in the file kernel/kernel.c
Cpu architecture specific code is located in cpu/
The drivers are located in the drivers/ directory.
To register a new driver use the BUILTIN_DRIVER macro.
It will be automatically loaded at runtime.
The file boot/multiboot.h contains code copyrighted by the Free Software Foundation, Inc. It is distributed under the license terms included in that file.
