Skip to content

The new E93! E93-2026!

License

Apache-2.0, GPL-2.0 licenses found

Licenses found

Apache-2.0
LICENSE
GPL-2.0
LICENSE.GPLv2
Notifications You must be signed in to change notification settings

eersoy93/E93-2026

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

E93-2026

The new E93! E93-2026!

Overview

A minimal 32-bit operating system kernel that boots via GRUB2 (Multiboot specification). Written in C and x86 Assembly.

E93-2026 0.2.0 Screenshot

Features

  • 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 sound
    • cd <dir> - Change directory
    • cls - Clear the screen
    • curdir - Print working directory
    • dir [path] - List directory contents
    • echo <text> - Print text
    • exit - Exit shell and halt system
    • help - Show available commands
    • idedevs - Show IDE devices
    • mem - Show memory information
    • pcidevs - Show PCI devices
    • run <program> - Run a program
    • version - 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

Prerequisites

  • nasm
  • qemu (x86 system, pa audio required for beeps)
  • GRUB2
  • xorriso
  • mtools
  • GCC (with 32-bit support)
  • i686-elf-gcc cross compiler (optional, recommended)

Building

Using System GCC (Easier)

make -f Makefile.gcc iso

Using Cross-Compiler (Recommended)

make iso

Running

Boot from ISO (via QEMU)

make run    # or: make -f Makefile.gcc run

User Programs

User programs are located in src/user/programs/. Each .c file is compiled into a separate ELF32 executable and included in the ISO.

Included Programs

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

Creating New Programs

See the SDK documentation for creating user programs.

Quick start:

  1. Copy sdk/template/program.c to src/user/programs/myprogram.c
  2. Edit as needed
  3. Run make -f Makefile.gcc iso
  4. In shell: run myprogram

For graphics programs, use sdk/template/graphics_demo.c as a starting point.

Project Structure

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 and License

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.

About

The new E93! E93-2026!

Resources

License

Apache-2.0, GPL-2.0 licenses found

Licenses found

Apache-2.0
LICENSE
GPL-2.0
LICENSE.GPLv2

Stars

Watchers

Forks

Packages

No packages published