Excalibur's Sheath

Experiencing DOS Today with FreeDOS and VirtualBox

Jul 12, 2026 By: Jordan McGilvraycomputing-history,dos,freedos,virtualbox,retrocomputing,ms-dos,command-line,pc-history,virtualization,doom

Foundations of Computation: Part 10 of 10

Last week, I stepped outside this series to provide an update on my Cyber Sword BBS project. Before that, the previous article looked at how bulletin board systems connected local communities to larger networks and eventually the Internet in BBSes: From Local Communities to the Global Internet.

Many of the bulletin board systems discussed in that article ran on DOS. The operating system also powered business software, communications programs, development tools, utilities, and many of the games that defined personal computing throughout the 1980s and 1990s. Although DOS has largely disappeared from everyday computing, its influence remains visible in the systems we use today.

In this article, we’ll recreate that environment by building a virtual DOS computer with FreeDOS and VirtualBox. Along the way we’ll install FreeDOS, explore its directory structure and command-line interface, examine how DOS configures itself during startup, and learn how software was commonly installed and organized.

We’ll finish by running DOOM in the environment it was originally written for. Today, DOOM has become an informal benchmark for whether almost any device can run software at all, but here it serves a different purpose. It lets us experience one of the most influential DOS programs of the 1990s in the operating system it was designed for while confirming that the DOS environment we’ve built is working correctly.

Experiencing DOS Today

There are still several good ways to experience DOS today. Each emphasizes something different, depending on whether your goal is historical authenticity, software compatibility, or learning how the operating system itself works.

Original Hardware

If your goal is historical authenticity, original hardware is difficult to surpass. One of my long-term goals is to purchase an IBM PCjr or XT and a 486DX system.

Original hardware provides the complete experience, including the limitations, quirks, and performance characteristics of the computers DOS was originally written to support. It also means maintaining aging hardware, locating compatible peripherals, and dealing with the realities of computers that are now decades old. For many enthusiasts, those challenges are part of the experience rather than an inconvenience.

FreeDOS on Dedicated Hardware

Installing FreeDOS directly on newer hardware is another option. If you have an unused computer available, you can skip the virtual machine entirely and install FreeDOS on the physical system.

Installing FreeDOS on dedicated hardware provides a complete DOS environment while avoiding the cost and maintenance of vintage hardware. Compatibility depends on the computer you choose, particularly its storage controller, graphics hardware, sound hardware, and input devices, but many older PCs still make excellent dedicated DOS systems.

DOSBox-X

DOSBox-X is a convenient choice when your primary interest is running classic DOS games. It emulates much of the hardware those games expect, including graphics cards, sound hardware, processors, and timing characteristics that can be difficult to reproduce on modern computers.

Although DOSBox-X provides a DOS environment, its primary strength is software compatibility. If your goal is simply to play DOS games, DOSBox-X is often the easiest solution.

DOSEMU2

DOSEMU2 takes a different approach by allowing DOS programs to run from within Linux rather than creating a completely separate computer.

I use DOSEMU2 on Cyber Sword BBS to run several DOS door games. It allows original DOS software to coexist with a modern Linux server, making it an excellent solution when DOS applications need to become part of a larger Linux system.

Virtual Machines

For learning DOS itself, a virtual machine provides the best balance between authenticity, convenience, and flexibility.

A virtual machine gives us a complete DOS computer that we can install, configure, restart, and experiment with without affecting the operating system installed on our physical computer. We can experience the DOS boot process, examine its configuration files, install software, and make changes without worrying about damaging our everyday system.

A virtual machine is an ideal environment for learning DOS, which is the approach we’ll use throughout the rest of this article.

Why We’re Using VirtualBox

There are many ways to experience DOS today. You can install FreeDOS on an unused computer, run it on original hardware, use DOSEMU2 under Linux, or choose another virtualization platform. Each approach has advantages, and any of them can provide a working DOS environment.

For this article, our goal is to learn DOS itself. A virtual machine gives us a complete DOS computer that we can install, configure, restart, and experiment with without affecting the operating system on our physical computer. If something goes wrong, we can recreate the virtual machine and begin again.

We’ll use VirtualBox because it is free, widely available for Windows, Linux, and macOS, and well suited to creating the kind of virtual DOS computer we need. If you already use VMware, KVM/QEMU, Hyper-V, or another virtualization platform, use it. The concepts covered throughout this article remain the same regardless of which virtual machine software you choose.

A virtual machine also has another advantage: portability. A virtual machine is essentially a collection of files that can be copied, backed up, and often converted for use with other virtualization platforms. That makes it easy to preserve your DOS computer and return to it later without keeping a dedicated physical machine.

Throughout this article, remember that VirtualBox is only the tool we’re using to reach DOS. The operating system—and the ideas it teaches—is the real subject of this project.

Creating the Virtual Machine

Before we can install FreeDOS, we need a computer to install it on. Rather than using a physical computer, we’ll create a virtual one inside VirtualBox. The virtual machine gives us a clean DOS system that we can experiment with, recreate, and expand without affecting the operating system already installed on our computer.

A virtual machine is exactly what its name suggests: a computer that exists entirely as software. It has virtual hardware such as memory, storage, a CD-ROM drive, and a processor, all provided by the virtualization software instead of physical components. To FreeDOS, it appears to be an ordinary computer.

A virtual machine offers several advantages. We can build the DOS computer from scratch, experiment with its configuration, install software, and even make mistakes without risking the computer we use every day. When we’re finished, the virtual machine can be copied, backed up, or deleted like any other collection of files.

Get Ready

Before creating the virtual machine, update your computer and install VirtualBox. The installation method depends on the operating system you use, and we do not need any unusual extensions or optional components for this project.

Download the current FreeDOS LiveCD ISO from the FreeDOS project. We are using FreeDOS 1.4, which is the current release as this article is being written.

Create the Virtual DOS Computer

With VirtualBox installed, we’re ready to create our virtual DOS computer.

Create a new virtual machine. In the VirtualBox operating-system selection, choose Other, then select DOS.

Allocate 1 GB of memory and create a 2 GB virtual hard disk. FreeDOS itself requires only a small fraction of those resources, but these values provide enough room for the complete FreeDOS installation and the software we’ll add throughout this series while remaining modest by modern standards.

Leave the remaining VirtualBox settings at their defaults. For the purposes of this project, they provide a suitable virtual DOS computer without requiring additional configuration.

Finally, attach the FreeDOS 1.4 LiveCD ISO to the virtual CD-ROM drive. This allows the virtual machine to boot from the installation media just as a physical computer would boot from a CD-ROM during installation.

At this point, our virtual DOS computer is assembled and ready for its operating system.

Installing FreeDOS

With our virtual DOS computer assembled, we’re ready to install FreeDOS. The installer is straightforward and asks only a handful of questions before copying the operating system and the selected software to the virtual hard disk.

Start the virtual machine. Because the FreeDOS LiveCD ISO is attached to the virtual CD-ROM drive, the system will boot directly into the installer.

When the installation menu appears, choose to install FreeDOS to the hard disk. The installer will prepare the virtual hard disk and guide you through the remaining setup process.

When prompted for the installation type, select the Full Installation. With a 2 GB virtual hard disk, there is plenty of room for the complete operating system along with the utilities, development tools, games, and applications included with FreeDOS. A smaller installation would work, but the Full Installation gives us more software to explore throughout this article and future projects.

Allow the installation to complete using the default settings unless you have a specific reason to change them. For our purposes, the default configuration provides everything we need.

Once the installation finishes, shut down the virtual machine.

Before starting it again, open the VirtualBox settings and remove the FreeDOS ISO from the virtual CD-ROM drive. Removing the ISO is the virtual equivalent of removing the installation CD from a physical computer. If the ISO remains attached, the virtual machine may boot back into the installer instead of the operating system we just installed.

Start the virtual machine again.

If everything completed successfully, FreeDOS will boot from the virtual hard disk and eventually stop at a familiar-looking prompt:

C:\>

Although it doesn’t look like much, you’ve just built a working DOS computer. In the next section, we’ll begin exploring the operating system itself, learning how to move around the filesystem, examine directories, and run programs from the command line.

Getting to Know DOS

You’ve created the virtual machine, installed FreeDOS, watched it boot, and now you’re sitting at the C:\> prompt. If you’ve never used DOS before, it may not be immediately obvious what to do next.

The best place to begin is by looking around. Type the following command and press Enter:

DIR

The DIR command displays the contents of the current directory. You’ll see the files and subdirectories stored in your current location on the C: drive.

To move into another directory, use the CD command. For example:

CD GAMES

Once you’ve changed directories, use DIR again to see what’s inside. As you explore the system, you’ll quickly become familiar with how DOS organizes files and directories.

DOS commands and filenames are not case-sensitive. DIR, dir, and DiR all perform exactly the same command. Throughout this article, commands are shown in uppercase because that was the convention used in many DOS books and manuals, but DOS itself does not require it.

Like Windows, DOS identifies storage devices with drive letters. The operating system is normally installed on the C: drive. Historically, floppy disk drives occupied A: and B:, while CD-ROM drives and additional storage devices were assigned the remaining letters.

If you’re already comfortable using Linux or another command-line operating system, many DOS concepts will feel familiar even though some of the command names differ.

Task DOS Linux
List directory contents DIR ls
Change directories CD cd
Display the current directory CD pwd
Clear the screen CLS clear
Copy a file COPY cp
Move or rename a file MOVE / REN mv
Delete a file DEL rm
Create a directory MD / MKDIR mkdir
Remove a directory RD / RMDIR rmdir
Display memory information MEM free

Try a few additional commands:

VER
HELP
MEM
CLS

VER displays the FreeDOS version. HELP provides information about commands and many of the programs included with FreeDOS. MEM reports how DOS is using conventional, expanded, and extended memory. CLS clears the screen if things become cluttered.

As you browse the directories, you’ll find files ending in .EXE, .COM, and .BAT. These are executable files. In most cases, you can start one simply by typing its name and pressing Enter.

For example, if you see EDIT.EXE, you can start it with:

EDIT

EDIT is the text editor included with FreeDOS. We’ll use it in the next section to examine the startup files that DOS reads every time the computer boots.

At this point, you’ve done more than install an operating system. You’ve started exploring it the same way many people first learned DOS: by looking around, experimenting with commands, and discovering what was already on the computer.

Configuring DOS

Although DOS is a relatively small operating system, it still follows a predictable startup process each time the computer boots. Unlike many modern operating systems that may start hundreds of services behind the scenes, DOS performs only a handful of steps, making it much easier to understand what happens before the command prompt appears.

Traditional Microsoft DOS systems use two startup files named CONFIG.SYS and AUTOEXEC.BAT. FreeDOS uses slightly different names: FDCONFIG.SYS and FDAUTO.BAT. Although the filenames differ, they serve the same purposes.

The startup sequence follows a simple order:

  1. DOS reads its system configuration.
  2. The DOS command interpreter loads.
  3. The startup batch file runs.
  4. The command prompt appears.

Understanding this sequence makes it much easier to understand how DOS prepares the computer for use.

FDCONFIG.SYS

The first configuration file processed by FreeDOS is FDCONFIG.SYS.

Open it with:

EDIT C:\FDCONFIG.SYS

This file configures the operating system before you ever reach the command prompt. It can load device drivers, configure memory managers, create boot menus, and perform other low-level tasks that DOS needs before applications begin running.

If you’ve worked with Linux before, you can think of this stage as configuring the operating system before user-space programs begin executing.

You don’t need to understand every line yet. For now, notice that DOS is assembling the environment it needs before accepting commands from the user.

COMMAND.COM

After the operating system finishes processing FDCONFIG.SYS, DOS loads COMMAND.COM.

COMMAND.COM is the DOS command interpreter. It displays the command prompt, accepts the commands you type, executes programs, and provides the built-in commands such as DIR, CD, COPY, and CLS.

Without COMMAND.COM, DOS would boot, but there would be no interactive command-line interface.

FDAUTO.BAT

Once COMMAND.COM has started, it automatically executes the startup batch file.

Under FreeDOS this file is named FDAUTO.BAT.

Open it with:

EDIT C:\FDAUTO.BAT

A batch file is simply a text file containing DOS commands that are executed one after another. Rather than typing the same commands every time the computer starts, DOS performs them automatically during boot.

FDAUTO.BAT typically configures the command search path, sets environment variables, customizes the command prompt, loads utilities, starts mouse support, and performs many of the tasks users expected to happen automatically whenever the computer started.

Like FDCONFIG.SYS, you don’t need to understand every command yet. Instead, look through the file and notice how it builds the working DOS environment one command at a time.

By the time FDAUTO.BAT finishes, DOS has completed its startup process and is ready for you to begin working.

Although simple by modern standards, this startup sequence illustrates one of DOS’s greatest strengths: nearly everything the operating system does during boot is visible, understandable, and controlled by ordinary text files. Rather than hiding the startup process, DOS encourages you to examine it, learn from it, and modify it as your understanding grows.

Can It Run DOOM?

Few computer programs have had the lasting influence of DOOM. Released by id Software in 1993, it quickly became one of the defining games of the decade. Its graphics, networking, shareware distribution model, and technical achievements influenced both game development and personal computing for years afterward.

Over the decades, DOOM has been ported to countless operating systems and hardware platforms. Eventually, people began asking a simple question:

Can it run DOOM?

The question became something of a tradition. Rather than asking whether a device should run DOOM, people began asking whether they could make it run. The result has been an impressive collection of unusual ports demonstrating both technical skill and the surprising capabilities of modern hardware.

Among the more unusual examples are graphing calculators, John Deere tractors, and even internet-connected toasters. None of these devices were designed to play first-person shooters, yet each has become part of the long-running tradition of proving that almost anything with enough computing power can eventually be persuaded to run DOOM.

For this project, we’re doing exactly the opposite.

Instead of forcing DOOM to run on hardware it was never intended for, we’re returning it to the environment it was originally designed to use. DOS was the operating system for which DOOM was written, and running it here gives us an opportunity to experience the game much as players did in the early 1990s.

DOOM also serves one final purpose.

If the game starts successfully, displays graphics correctly, responds to the keyboard, and produces sound, it demonstrates that the DOS environment we’ve built is functioning as expected. In that sense, DOOM is more than simply the final program we’ll run—it becomes the final validation of everything we’ve built throughout this article.

There’s one more historical note.

According to id Software’s long-running backstory, the DOOM Marine is a descendant of Billy Blaze, the young hero of the Commander Keen series. Billy Blaze himself is the grandson of William “B.J.” Blazkowicz, the protagonist of Wolfenstein 3D. Although this family relationship has little impact on the games themselves, it’s a fun bit of id Software history that loosely connects three of the company’s most influential series.

If you’ve never played Commander Keen or Wolfenstein 3D, they’re well worth exploring. Together with DOOM, they illustrate the rapid evolution of PC gaming during the late 1980s and early 1990s.

Using DOOM in DOS

If you selected the Full Installation when installing FreeDOS, you may have noticed that FreeDOOM is already included. It can be found under:

C:\GAMES

FreeDOOM is an open-source project that provides freely distributable replacement game data compatible with the DOOM engine. It is an excellent project in its own right and provides an easy way to experience the DOOM engine without the original commercial game data.

For this article, we’ll also install the original DOOM shareware release.

The shareware version includes the complete first episode, Knee-Deep in the Dead. It is freely redistributable and provides everything we need for this project.

Transferring Files into DOS

One limitation of DOS virtual machines is that VirtualBox Guest Additions are not available for DOS. Unlike modern guest operating systems, FreeDOS cannot mount a shared folder directly from the host computer.

Extract the DOOM shareware archive on your regular computer, then use your preferred ISO creation tool to build a CD-ROM image containing the extracted files.

Attach the ISO to the virtual machine’s CD-ROM drive and boot FreeDOS. The virtual CD-ROM will appear as another drive letter. Throughout this example, we’ll assume it is D:.

First, create a directory for DOOM.

MKDIR C:\GAMES\DOOM

Next, copy the files from the CD-ROM into the new directory.

COPY D:\ C:\GAMES\DOOM

Now change into the directory.

CD C:\GAMES\DOOM

One characteristic I have always appreciated about DOS software is how self-contained most programs were. Installing software often meant little more than creating a directory and copying the files into it. There was no registry to update, no background services to install, and usually no dedicated uninstaller. If you no longer wanted the program, deleting its directory was often enough.

I especially appreciated this when sharing a family computer. I could organize my own software into whatever directory structure made sense to me without affecting anyone else’s programs. Because DOS applications generally kept everything they needed together, it was easy to understand what belonged to each application and to keep the system organized.

If the shareware distribution includes the setup program, run:

SETUP

Configure the sound and input devices, then return to the DOS prompt.

Finally, start the game.

DOOM

If DOOM starts successfully, you’ve accomplished considerably more than simply running a classic game. You’ve built a virtual DOS computer, installed an operating system, explored its filesystem, learned how DOS configures itself during startup, and run one of the most influential DOS programs of the 1990s in the environment for which it was originally written.

Summary

You have now built a virtual DOS computer from the ground up. Starting with VirtualBox, you installed FreeDOS, explored its directories and commands, examined the files that control its startup process, and finished by running DOOM in the operating system it was originally designed for. Along the way, you experienced many of the same workflows that defined personal computing throughout the 1980s and much of the 1990s.

Although DOS is no longer a mainstream operating system, many of the ideas it introduced remain part of modern computing. Command-line interfaces, startup configuration files, executable programs, directory structures, environment variables, and system configuration all continue to exist in today’s operating systems, even if they are presented differently. Learning DOS provides historical context for understanding why many modern systems behave the way they do.

You’ve now experienced DOS rather than simply reading about it. You have seen the operating system boot, explored its filesystem, examined how it configures itself, copied software into place, and run one of the most influential DOS applications ever written. Those experiences provide a foundation that will make future articles in this series easier to understand because they build upon concepts you’ve now used yourself.

If this article has sparked your interest, thousands of DOS programs, utilities, programming languages, and games are still available to explore. You can also visit Cyber Sword BBS, where I maintain a growing collection of DOS software from the 1980s and 1990s available for download. Whether you’re revisiting software you once used or discovering it for the first time, there is still much to learn from the operating system that helped define an era of personal computing.

More from the "Foundations of Computation" Series: