os8088 / FAQ
Questions about os8088
Tap on a question to see the answer.
os8088/
-
The basics
-
Is this DOS?
No. os8088 is its own operating system with no DOS underneath. Its included DOS box runs DOS programs. More programs are in The Wire. It also includes emulators for Commodore 64, Apple II, and CP/M Z80 machines.
The os8088 desktop after boot. The menu bar, checkerboard desktop, and drive icons are ready to use. -
Why is it called os8088?
The 8088 powered the IBM PC and PC/XT. os8088 targets the 8086 instruction set, which runs on both chips. The chip icon in the menu bar and site logo is an 11x11 pixel drawing of that processor.
-
Is it finished? Does it have networking or a hard disk?
os8088 is usable and still growing. It has multitasking, windows, menus, a file manager, loadable programs, a DOS box, sound, hard disk support, networking, a browser, Telnet, and hibernation.
-
-
Running os8088
-
What hardware does it need?
The core runs on an Intel 8086 or 8088 with 128KB or more of RAM, and a CGA, EGA, Hercules, or VGA display adapter. It accepts a Microsoft-protocol serial mouse on COM1 or COM2, or a PS/2 mouse on machines that support one.
It can boot from a floppy, hard disk, USB stick, or CD. Some optional drivers require a 386 or newer; the base system still supports the 8086 and 8088.
-
Does it run on a real IBM PC/XT?
Yes. os8088 has booted from 360KB floppies on an IBM 5150, a Toshiba T1100 Plus, and a Packard Bell Victory 286. See photographs of the machines.
The IBM 5150 ran six programs at once through its Hercules display adapter. Routine testing also happens in QEMU and 86Box.
-
How do I try it?
Boot it in your browser, or download a floppy image and use an emulator. Releases include 360KB images for period hardware and 86Box, plus 1.44MB images for QEMU. The running page has the exact QEMU command.
Menus use press-drag-release: hold the mouse button, drag to an item, and release.
-
Can I save files?
Yes. os8088 reads and writes standard FAT12 floppies, as well as FAT12 and FAT16 hard-disk partitions. Note Pad supports Open, Save, and Save As, and folders work too.
These ordinary FAT volumes can be mounted on DOS, Windows, macOS, or Linux. Files are addressed by name instead of open handles, which keeps the system small.
-
-
Inside the system
-
Why is there no memory protection?
The 8086 has no memory protection: no MMU, page tables, or privilege levels. Any program can write anywhere in memory, including the window manager.
This keeps context switches fast and leaves more room for the system.
-
Can I write my own programs for it?
Yes, you can write programs in os8088 and port programs to it using AI tools like Claude Code and OpenAI's Codex. How to contribute.
Two programs running together. Each program has its own memory segment. -
What is it written in, and how big is it?
The boot sector, the kernel, the drivers and most programs are NASM assembly in real mode, the 8086's native mode. The project is written with AI. It has about 593,000 lines of assembly and about 55,900 lines of C. The kernel image is 103,289 bytes, and the kernel uses 51,509 bytes of its 64K segment.
Seven programs are written in C: the C edition of the word processor, PaccMan, the CP/M emulator, the Commodore 64 and Apple II Plus emulators, Weave, which runs web-style apps, and Loom, its editor.
There is no linker. SmallerC, a small open-source C compiler, turns C into NASM assembly source. A checking tool rewrites the few instructions an 8086 cannot run, and stops the build on code that would corrupt memory here, such as taking the address of a local variable or copying a structure. NASM then assembles the result, with a small runtime written in assembly, into one program file. The operating system cannot tell it from an assembly program.
There is no C standard library. A C program calls the same drawing, window, file and memory routines an assembly program does. A program is limited to 61,440 bytes of code and data, and a C program that outgrows that moves its less-used code into a second file that is loaded when first needed.
C is slower. The loops around each drawing call run 3 to 5 times slower than hand-written assembly: on a 4.77 MHz IBM PC/XT, PaccMan draws 2.18 frames a second where the assembly Pac-Man draws 4.14. The guide to writing a program in C has the details.
-
-
The project
-
How do I report a bug?
Open an issue on GitHub. Include a screenshot, your display adapter, emulator and version, image size, and what you clicked before the problem.
-
Something not answered here
Explore the source for the architecture and implementation details.