Boot chain
Stage 1 + Stage 2, A20, protected mode and kernel entry.
Project site
GemOS is a from-scratch 32-bit desktop operating system for x86, written in C and assembly, with its own boot chain, kernel, scheduler, filesystem, GUI stack and a real Ring 3 transition already running isolated userland apps.
The project is not trying to look futuristic. It is trying to be coherent, stable and technically honest about what is finished, what is transitional and what is intentionally still simple.
What GemOS is
GemOS owns the full path from the first boot sector to the desktop shell. The stack is intentionally integrated: boot loader, protected-mode bring-up, paging, scheduler, graphics, font rendering, window manager, filesystem and userland application model all live in the same project and evolve together.
The current architecture is deliberately transitional. The desktop shell stays kernel-hosted while Ring 3 userland grows through small, explicit interfaces. That keeps the system stable while still turning isolation into something practical.
Screenshots
The desktop stays in kernel space on purpose while userland applications mature through a smaller and safer interface layer.
Current state
Stage 1 + Stage 2, A20, protected mode and kernel entry.
IDT, ISR/IRQ, PIC, PIT, RTC, heap, paging, scheduler and serial logging.
VBE linear framebuffer, page-flipped render path, PS/2 keyboard/mouse and TrueType text.
Window manager, topbar, dock, menus, focus routing and decorations.
ATA PIO, GemFS, seeded userland binaries and basic userland file read/write.
Ring 3, separate CR3 per process, TSS/esp0 switching and contained user faults.
Userland owns state and render logic; the kernel hosts windows and text surfaces.
UTERM and About are stable userland apps. TextEdit is in active bring-up.
Architecture snapshot
Why it looks like this
Applications
Terminal logic in Ring 3 with hosted windows, input handling, command loop and predictable lifecycle.
Small informational app that shows the hosted app pattern is useful for polished UI, not only debugging tools.
The next larger app: document state, multiline rendering, caret movement and future file-oriented workflows.
Browser preview
The preview uses the real GemOS floppy and data images through `v86`. It is an emulator, not a streamed desktop and not a mockup. Expect slower boot and lower frame pacing than local QEMU.
Boot the system directly from the site, inspect the desktop and try the current userland applications in a browser-hosted x86 VM.
Open browser previewBuild and debug
GemOS is built with a freestanding x86 cross-toolchain, NASM and QEMU. The same repo also produces the static demo assets used by the browser preview on this site.
Roadmap
Out of scope