MyOwn64XOS is a simple 64-bit kernel developed in C and Assembly.
It demonstrates fundamental operating system concepts such as bootloading, memory paging, long mode transition, and basic VGA output.
Upon startup, the kernel clears the screen, displays a welcome message, and prints a stylized NUST text banner using ASCII characters.
- ✅ Multiboot2-Compatible Bootloader for GRUB
- ✅ Transition from 32-bit Protected Mode → 64-bit Long Mode
- ✅ Page Table Setup using 2 MiB huge pages
- ✅ Basic VGA Text Output (0xb8000)
- ✅ Custom Print Functions for strings, newlines, and colors
- ✅ ASCII Art Rendering of “NUST”
- ✅ Clean, modular structure separating C and Assembly logic
MyOwn64XOS/ │
├── kernel.c # Kernel entry point (kernel_main)
├── boot.asm # Bootloader and CPU checks
├── long_mode.asm # 64-bit mode setup and GDT
├── print.c / print.h # VGA text output functions
├── linker.ld # Linker script
└── Makefile # Build and run commands
- Initializes stack and verifies CPU compatibility (CPUID, Long Mode support)
- Prepares GDT and memory paging
- Jumps to 64-bit long mode
- Sets up page tables (L4 → L3 → L2)
- Maps memory using 2 MiB huge pages
-
Clears VGA text screen
-
Sets text color
-
Displays:
-
Renders ASCII “NUST” pattern
- C – for kernel logic and output functions
- x86-64 Assembly – for bootloader and low-level setup
- QEMU – emulator for testing
- GRUB – Multiboot2-compliant bootloader
gcc(cross-compiler for i686-elf)nasmqemu-system-x86_64makegrub-mkrescue
# Clone repository
git clone https://github.com/yourusername/MyOwn64XOS.git
cd MyOwn64XOS
# Build kernel
make
# Create bootable ISO
make iso
# Run in QEMU
qemu-system-x86_64 -cdrom MyOwn64XOS.iso-------------------------------------------------
Welcome to our 64-bit kernel!
-------------------------------------------------
Printing NUST Text Using Asterisks :
***** *** **** **** ************* *************
** *** *** **** **** ************* *************
** *** *** **** **** ***** *****
** *** *** **** **** **** *****
** *** *** **** **** ************* *****
** *** *** **** **** ***** *****
** ***** **** **** ***** *****
** **** ****************** ************** *****
** **** ****************** ************** *****
In-depth understanding of x86_64 architecture
Practical experience with paging and GDT setup
Hands-on practice with VGA text buffer manipulation
Integrating C and Assembly for OS development
Urooj Fatima Raza (Developer & Author of MyOwn64XOS)
Developed as part of an Operating Systems project to demonstrate the fundamentals of 64-bit kernel design at NUST.