The new E93! E93-2026!
A minimal 32-bit operating system kernel that boots via GRUB2 (Multiboot specification). Written in C and x86 Assembly.
- VGA Text Mode - 80x25 text console with 16 colors
- VGA Graphics Modes - Multiple graphics modes supported:
- Mode 12h: 640x480, 16 colors
- Mode 13h: 320x200, 256 colors
- Mode X: 320x240, 256 colors (planar)
- Mode Y: 320x200, 256 colors (planar)
- Userspace Programs - ELF32 executables loaded from ISO9660 filesystem
- Interactive Shell - Built-in shell with commands:
beep- Play a beep soundcd <dir>- Change directorycls- Clear the screencurdir- Print working directorydir [path]- List directory contentsecho <text>- Print textexit- Exit shell and halt systemhelp- Show available commandsidedevs- Show IDE devicesmem- Show memory informationpcidevs- Show PCI devicesrun <program>- Run a programversion- Show version information
- System Calls - INT 0x80 based syscall interface
- Memory Info - System memory information via Multiboot
- File I/O - Read files from the ISO9660 filesystem
- PC Speaker - Beep sound support
- IDE Controller - IDE/ATAPI device detection and information
- PCI Bus - PCI device enumeration with pci.ids database lookup
- ISO9660 - Read-only filesystem support
- nasm
- qemu (x86 system, pa audio required for beeps)
- GRUB2
- xorriso
- mtools
- GCC (with 32-bit support)
- i686-elf-gcc cross compiler (optional, recommended)
make -f Makefile.gcc isomake isomake run # or: make -f Makefile.gcc runUser programs are located in src/user/programs/. Each .c file is compiled into a separate ELF32 executable and included in the ISO.
| Program | Description |
|---|---|
hello |
Simple hello world demo |
shell |
Interactive command shell |
vga_demo_12h |
VGA 640x480 16-color graphics demo |
vga_demo_13h |
VGA 320x200 256-color graphics demo |
vga_demo_mode_x |
VGA Mode X 320x240 graphics demo |
vga_demo_mode_y |
VGA Mode Y 320x200 planar graphics demo |
See the SDK documentation for creating user programs.
Quick start:
- Copy
sdk/template/program.ctosrc/user/programs/myprogram.c - Edit as needed
- Run
make -f Makefile.gcc iso - In shell:
run myprogram
For graphics programs, use sdk/template/graphics_demo.c as a starting point.
E93-2026/
├── src/
│ ├── boot/ # Boot code (boot.asm)
│ ├── kernel/ # Kernel code (kernel.c, idt.c, syscall.c, etc.)
│ ├── drivers/ # Device drivers (vga.c, keyboard.c, ide.c, etc.)
│ ├── lib/ # Kernel libraries
│ ├── include/ # Kernel headers
│ └── user/ # Userspace
│ ├── include/ # User program SDK headers
│ ├── programs/ # User program source files
│ └── user.ld # User program linker script
├── sdk/ # SDK documentation and templates
├── build/ # Build output (generated)
├── Makefile # Cross-compiler build
└── Makefile.gcc # System GCC build
Copyright (c) 2026 Erdem Ersoy (eersoy93). Licensed under the Apache License 2.0. See the LICENSE file for license text.
E93-2026 written with the help of GitHub Copilot!
NOTE: media/pci.ids is licensed under GNU GPLv2. See LICENSE.GPLv2 for the license text.
