Skip to content

GmaxGames/gmax-os

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GmaxOS

A minimal 64-bit command line operating system exploring low-level systems programming, hardware interaction, and kernel design.

This project began as a guided OSDev learning exercise based on common OSDev tutorials and documentation. It has since been extended into a functional 64-bit hobby operating system with independently developed features including a working shell, a flat filesystem, and low-level hardware drivers.


Boot Up Interface Testing


Features

  • Boots on x86-64 hardware and in QEMU / Bochs
  • Interactive shell with command history and scrollback
  • Simple flat filesystem stored directly on disk
  • Persistent storage via ATA PIO disk driver
  • File operations from shell (write, cat, ls, del)
  • System real-time clock support
  • Basic text editor

Technical Overview

  • 64-bit long mode kernel
  • Custom bootloader with manual disk loading
  • CPU feature detection using CPUID
  • Physical memory detection (BIOS memory map)
  • Basic identity paging setup for long mode
  • GDT and IDT configuration for interrupt handling
  • Interrupt-driven PS/2 keyboard input handling
  • ATA PIO disk driver
  • Flat disk-backed filesystem
  • Basic kernel memory management (heap allocator)
  • VGA text-mode driver with colour support
  • CMOS real-time clock (RTC) access

Shell Commands

help              - Show this help message
clear             - Clear the screen
reboot            - Reboot the system
time              - Display current date and time
echo <text>       - Print text to the screen
add <n1>,<n2>     - Add two integers
ls                - List all files
write <filename>  - Create or open a file for writing
cat <filename>    - Print a file to the screen
del <filename>    - Delete a file
format            - Format the filesystem

Running Without Building

Prebuilt .img files are available in the releases section. Emulation is recommended via QEMU: qemu-system-x86_64 -m 512M -drive format=raw,file=os.img,index=0,if=ide,media=disk This can also be used with other x86-64 emulators that support raw disk images.

Building Yourself

Requirements

  • NASM
  • A GCC Cross-Compiler

This project uses a freestanding x86_64-elf-gcc cross-compiler (not the system GCC) as required for OS development. A system compiler will not work. See OSDev Wiki for help on this.

NASM can be installed:

Once all requirements are installed:

  • Windows: there is a batch build script in the main directory. These can be run as:
build           - build without running
build image     - creates a fresh image file, wipes filesystem
build boot      - just launches QEMU without building
build run       - builds and runs
  • Linux/MacOS: not currently tested or actively supported. Manual build is possible using the same toolchain steps defined in the Windows scripts.

Planned Improvements

  • Multitasking and Scheduling
  • Directory-based filesystem
  • Additional device drivers
  • Scripting support
  • Improved build system (Makefile)

License

MIT — see LICENSE

About

A minimal 64-bit operating system with a custom kernel, shell, filesystem, and hardware drivers, built for learning low-level systems programming.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors