explaingit

libersoft-org/liberdos

Analysis updated 2026-05-18

16CAudience · developerComplexity · 4/5LicenseSetup · moderate

TLDR

A DOS-compatible operating system written from scratch in C and assembly that runs classic 16-bit and 32-bit DOS software unmodified.

Mindmap

mindmap
  root((LiberDOS))
    What it does
      16-bit DOS kernel
      Runs classic DOS programs
      Built-in XMS and EMS memory
      Command line shell
    Tech stack
      C
      Assembly
      NASM
      Open Watcom
    Use cases
      Run old DOS games
      Run 32-bit DOS extender software
      Boot from floppy or hard disk
      Retro computing experiments
    Audience
      Retro computing hobbyists
      OS developers
    File systems
      FAT12
      FAT16
    Getting started
      Build with NASM and Watcom
      Run in QEMU

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Run classic 16-bit DOS programs unmodified on a modern build or emulator.

USE CASE 2

Run 32-bit DOS games and applications that use DOS extenders.

USE CASE 3

Boot the system from a floppy disk image or a hard disk partition.

USE CASE 4

Study or extend a from-scratch DOS kernel implementation for retro computing projects.

What is it built with?

CAssemblyNASMOpen Watcom

How does it compare?

libersoft-org/liberdosdanveloper/flash-pi-dsv4delphos-labs/disclosures
Stars161616
LanguageCCC
Setup difficultymoderatehardhard
Complexity4/55/55/5
Audiencedeveloperresearcherresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 1h+

Requires NASM and Open Watcom to build, and QEMU or a 386-or-newer PC to run it.

Released under the Unlicense, placing the code in the public domain with no restrictions on use.

In plain English

LiberDOS is a DOS-compatible operating system written from scratch in C and assembly language. DOS (Disk Operating System) was the dominant operating system for personal computers in the 1980s and early 1990s, before Windows became standard. LiberDOS recreates enough of the original DOS programming interface to run classic DOS programs unmodified. The system is built as a small 16-bit kernel, running in the same memory mode the original IBM PC used. It supports a wide range of the original DOS software interface, including memory services that let programs access more RAM than the basic limit. Extended memory (XMS) and expanded memory (EMS) support are built into the kernel with no separate drivers needed, and a mouse driver is included as well. The kernel leaves over 600 KB of conventional memory free for applications. LiberDOS can run both older 16-bit programs and 32-bit DOS games and applications that used DOS extenders, which were small programs that helped 32-bit software run on top of DOS. It supports FAT12 and FAT16 file systems, the storage formats those older systems used, and can boot from a floppy disk or a hard disk partition. A built-in command interpreter handles the familiar DOS commands, batch file support, and file path searching. A few standard utilities are included: MORE, ATTRIB, and CHKDSK. The project builds on both Windows and Linux using free tools (NASM and Open Watcom). It runs in the QEMU emulator, a software PC you can run on a modern machine, and targets any 386-or-newer PC. The code is released under the Unlicense, which places it in the public domain.

Copy-paste prompts

Prompt 1
Explain how LiberDOS achieves compatibility with classic DOS programs.
Prompt 2
Help me build LiberDOS from source using NASM and Open Watcom.
Prompt 3
Walk me through running LiberDOS in QEMU to test it before installing on real hardware.
Prompt 4
Show me what memory features like XMS and EMS LiberDOS supports out of the box.

Frequently asked questions

What is liberdos?

A DOS-compatible operating system written from scratch in C and assembly that runs classic 16-bit and 32-bit DOS software unmodified.

What language is liberdos written in?

Mainly C. The stack also includes C, Assembly, NASM.

What license does liberdos use?

Released under the Unlicense, placing the code in the public domain with no restrictions on use.

How hard is liberdos to set up?

Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.

Who is liberdos for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.