This is a small personal learning project for exploring how a kernel boots on bare metal. It uses NASM assembly, a multiboot-compatible setup, and GRUB to boot a minimal kernel in QEMU.
Currently, the kernel boots in a simple 32-bit environment and prints "Hello World This is my first bootable kernel!!!" to the screen. The project also includes files for both 32-bit and 64-bit multiboot v2 boot setups as part of the learning process.
boot.asm- the kernel entry point and simple VGA outputmultiboot_header.asm- multiboot v2 header for GRUBmultiboot_header_32bit.asm- 32-bit multiboot v2 examplelinker.ld- linker script for the kernel layoutmakefile- build commandsbuild/isofiles/boot/grub/grub.cfg- GRUB boot configuration
Run the following commands from the project root:
make
qemu-system-x86_64 -kernel kernel.binThis project is meant to help me learn low-level programming, bootloaders, and kernel basics.
- add a simple print function for writing multiple lines to the screen
- add a basic keyboard input loop