Georgios (Greek for George, said like GORE-GEE-OS) is an operating system I'm making for fun which currently targets i386/IA-32. The purpose of this project is to serve as a learning experience.
Work in progress graphics mode:
demo.mp4
Georgios is so simplistic right that now the most impressive application is a snake clone. This is probably going to be the case until applications can be ported.
- Kernel console that supports UTF-8 (specifically the subset needed for Code page 437 subset) and some basic ANSI escape codes
- Support for multilple mounted filesytems:
- Ext2 accessed using an ATA Driver (read only)
- In-memory filesystem mounted at boot (read/write)
- Basic preemptive multitasking between processes that can be loaded from ELF files
- ACPI shutdown (thanks in part to ACPICA)
- A graphics mode using VESA BIOS Extensions (VBE)
- This makes use of libx86emu to invoke the BIOS code required to access VBE.
- Currently requires building with
make multiboot_vbe=true
- USB 2.0 stack
- Porting real applications written in Zig and C
- The applications currently written in Zig are "real", but are using the freestanding target and are using system calls directly. To be able to use a Zig or C hello world program without any modification, the standard libraries would have to be ported and toolchains would have to be modified to target Georgios properly.
- Freeing the OS from the need of a boot CD
Building Georgios requires a Unix-like environment with:
- Zig 0.9.1
- Python 3
- GRUB2
- Requires i686 Support (
grub-pc-bin
package on Ubuntu)
- Requires i686 Support (
- xorriso (
xorriso
package on Ubuntu)
Georgios can be built as a bootable ISO (called georgios.iso
) by running
make
. If installed, QEMU and Bochs can be run by running make qemu
or make bochs
respectively. On Ubuntu, Bochs requires apt-get install bochs bochsbios bochs-sdl bochs-x vgabios
.
For the moment it assumes the existence of an IDE disk with certain files on it.
- OSDev Wiki
- Very popular, fairly large set of resources in one place, but rough or just plain unhelpful in many places.
- The little book about OS development
- Polished, but limited intro into x86 OS development. Provided me with the initial start.
- Intel x86 Software Development Manuals
- xv6
- The Design and Implementation of the 4.4 BSD Operating System
- FYSOS: Media Storage Devices