Operating system sederhana yang ditulis dalam Assembly dan C untuk arsitektur x86 (32-bit).
- Bootloader kustom (512 bytes) yang memuat kernel dari disk
- Protected mode (32-bit)
- VGA text mode dengan dukungan warna
- Shell interaktif sederhana dengan command handling
- Keyboard input (polling mode)
AkromOS/
├── boot.asm # Bootloader (16-bit real mode → 32-bit protected mode)
├── kernel_entry.asm # Entry point kernel
├── kernel.c # Kernel utama (C)
├── linker.ld # Linker script
├── Makefile # Build script
└── README.md # Dokumentasi ini
etc
...
- NASM (Netwide Assembler)
- GCC dengan dukungan cross-compilation untuk i686
- LD (GNU Linker)
- QEMU (untuk testing/emulasi)
- Make
#Arch Base
sudo pacman -S nasm gcc ld qemu-system-x86 make
#Debian / Ubuntu / Base
sudo apt install nasm gcc binutils qemu-system-x86 make
#Gento
sudo emerge --ask sys-devel/gcc sys-devel/binutils dev-lang/nasm app-emulation/qemu sys-devel/make
#Fedora base
sudo dnf install nasm gcc binutils qemu-system-x86 make
#openSUSE
sudo zypper install nasm gcc binutils qemu-x86 make
#alphine linux
sudo apk add nasm gcc binutils qemu-system-x86_64 make
#Void linux
sudo xbps-install -S nasm gcc binutils qemu makeJika perlu cross-compiler:
sudo pacman -S i686-elf-gcc i686-elf-binutilscd ~/your/path/AkromOS
nasm -f bin boot.asm -o boot.bin
nasm -f bin kernel_simple.asm -o kernel_simple.bin
cat boot.bin kernel_simple.bin > akromos.img
truncate -s 1474560 akromos.img
qemu-system-i386 -fda akromos.img1️⃣ Install MSYS2
Download: https://www.msys2.org
2️⃣ Buka MSYS2 MinGW64
pacman -Syu
#after that
pacman -S \
mingw-w64-x86_64-gcc \
mingw-w64-x86_64-nasm \
mingw-w64-x86_64-binutils \
mingw-w64-x86_64-qemu \
make
Setelah boot, AkromOS akan menampilkan shell prompt ($). Commands yang tersedia:
help- Menampilkan daftar commandclear- Clear screenabout- Informasi tentang AkromOSecho [text]- Echo text yang diinput
- BIOS memuat bootloader (boot.asm) ke memori 0x7C00
- Bootloader memuat kernel dari disk sector 2-11 ke memori 0x1000
- Enable A20 line untuk akses memori extended
- Load GDT (Global Descriptor Table)
- Switch ke protected mode (32-bit)
- Jump ke kernel entry point (kernel_entry.asm)
- Kernel memanggil fungsi
kmain()di kernel.c - Shell dimulai dan menunggu input user
0x00000000 - 0x000003FF : Interrupt Vector Table
0x00000400 - 0x000004FF : BIOS Data Area
0x00007C00 - 0x00007DFF : Bootloader (512 bytes)
0x00001000 - 0x0000FFFF : Kernel
0x000B8000 - 0x000BFFFF : VGA Text Buffer
0x00090000 - ... : Stack
Pastikan semua tools sudah terinstall (nasm, gcc, ld, make, qemu).
Gunakan flag -m32 dan pastikan GCC mendukung 32-bit compilation:
gcc -m32 --versionJika tidak support, install gcc-multilib atau gunakan cross-compiler i686-elf-gcc.
- Pastikan
akromos.imgterbuat dengan benar - Cek bootloader signature (0xAA55) ada di byte terakhir boot sector
- Jalankan dengan
-d intuntuk debug:qemu-system-i386 -fda akromos.img
Ideas untuk pengembangan:
- Implementasi interrupt handlers (IDT)
- Memory management (paging, heap allocation)
- Filesystem driver (FAT12/FAT16)
- Multi-tasking / process management
- Device drivers (timer, disk, network)
- System calls
- User mode programs
Free to use and modify for educational purposes.
AkromOS v1.0 - A minimal operating system for learning OS development