The origin and evolution of FreeDOS

Or, why a community formed around an open source version of DOS, and how it's still being used today.
578 readers like this.
Compute like it's 1989

LSE Library. Modified by CC BY-SA 4.0

I grew up in the 1970s and 1980s. My parents wanted to expose my brother and me to computers from an early age, so they bought an Apple II clone called the Franklin Ace 1000. I'm sure the first thing we used it for was playing games. But it didn't take long before we asked, "How does it work?" Our parents bought us a book about how to program in Applesoft BASIC, and we taught ourselves.

I remember my first programs were pretty standard stuff. Eventually I developed a fondness for creating simulations and turn-based games. For example, my friends and I played Dungeons and Dragons in our spare time, and I wrote several D&D-style games. A favorite hobby was re-creating the computer readouts from television shows and movies. Perhaps my largest effort was a program, based on the 1983 movie WarGames, that let you "play" global thermonuclear war.

Later, we replaced the Apple with an IBM PC. The BASIC environment on DOS was different from Applesoft BASIC, but I figured it out easily enough. I continued writing programs on it throughout my junior high and high school years.

In 1990, I became an undergraduate physics student at the University of Wisconsin—River Falls. Even though my major was physics, I continued to write programs. I learned the C programming language and picked up a C compiler. I wrote lots of utilities to help me analyze lab data or add new features to the MS-DOS command line. Like many others at the time, I also created utilities that replaced and enhanced the MS-DOS command line.

The university had a computer lab, and I got an account there on the VAX and Unix systems. I really liked Unix. The command line was similar to MS-DOS, but more powerful. I learned to use Unix when I was in the computer labs, but I still used MS-DOS on my personal computer. By running MS-DOS, I could use my favorite programs to write papers and help analyze lab data.

I discovered the concept of "shareware" programs, which let you try a program for free. If you found the program useful, you registered it by sending a check to the program's author. I thought shareware was a pretty neat idea, and I found MS-DOS shareware programs that filled my needs. For example, I switched from WordPerfect to the shareware GalaxyWrite word processor to write papers. I used AsEasyAs to do spreadsheet analysis and Telix to dial into the university's computer lab when I needed to use a Unix system.

In 1993, I learned about a Unix system that I could run on my home computer for free. This "Linux" system seemed just as powerful as the university's Unix systems, but now I could run everything on my home computer. I installed Linux on my PC, dual-booted with MS-DOS. I thought Linux was neat and I used it a lot, but still spent most of my time in MS-DOS. Because let's face it: In 1993, there were a lot more applications and games on MS-DOS than on Linux.

In 1993, I learned about a Unix system that I could run on my home computer for free.

How FreeDOS started

Because MS-DOS was my favorite operating system, I had built up this library of utilities I'd written to add new functionality to MS-DOS. I just thought DOS was a great operating system. I'd used Windows by this point—but if you remember the era, you know Windows 3.1 wasn't a great platform. I preferred doing my work at the command line, not with a mouse.

In early 1994, I started seeing a lot of interviews with Microsoft executives in tech magazines saying the next version of Windows would totally do away with MS-DOS. I looked at Windows 3.1 and said, "If Windows 3.2 or Windows 4.0 will be anything like Windows 3.1, I want nothing to do with it."

Having experience with Linux, I thought, "If developers can come together over the internet to write a complete Unix operating system, surely we can do the same thing with DOS." After all, DOS was a fairly straightforward operating system compared to Unix. DOS ran one task at a time (aka single-tasking) and had a simpler memory model. I'd already written a number of utilities that expanded the MS-DOS command line, so I had a head start.

I asked around the comp.os.msdos.apps discussion group on Usenet. Although others were interested in a free DOS, no one wanted to start such a project. So, I volunteered to do it.

On June 29, 1994, I posted this to comp.os.msdos.apps:


A few months ago, I posted articles relating to starting a public domain version of DOS. The general support for this at the time was strong, and many people agreed with the statement, "start writing!" So, I have...

Announcing the first effort to produce a PD-DOS. I have written up a "manifest" describing the goals of such a project and an outline of the work, as well as a "task list" that shows exactly what needs to be written. I'll post those here, and let discussion follow.

If you are thinking about developing, or have ideas or suggestions for PD-DOS, I would appreciate direct email to me. If you just want to discuss the merits or morals of writing a PD-DOS, I'll leave that to the net. I'll check in from time to time to see how the discussion is going, and maybe contribute a little to what promises to be a very polarized debate!

I am excited about PD-DOS, and I am hoping I can get a group started!

—James Hall

PS—of course, if this already exists, please point me to the group leader so I can at least contribute!

Developers contacted me almost immediately. We had all written our own MS-DOS extensions, power tools that expanded what you could do on the MS-DOS command line. We pooled our utilities and looked on public FTP sites for public domain source code to other programs that replicated the features of MS-DOS.

When I started the project, I didn't fully understand the nuances between "free software" and "public domain."
A note about the name: When I started the project, I didn't fully understand the nuances between "free software" and "public domain." I assumed they were the same. And certainly, many of the free tools we found on FTP sites were released into the public domain. I adopted the name PD-DOS for Public Domain DOS. It took only a few weeks before I realized we wanted the protection of the GNU General Public License, which would make our DOS project a "free software" project. By late July, we changed the name to Free-DOS. Later, we dropped the hyphen to become FreeDOS.

How FreeDOS is used today

Over the years, developers have shared with me how they use FreeDOS to run embedded systems. My all-time favorite example is a developer who used FreeDOS to power a pinball machine. FreeDOS ran an application that controlled the board, tallied the score, and updated the back display. I don't know exactly how it was built, but one way such a system could work is to have every bumper register a "key" on a keyboard bus and the application simply read from that input. I thought it was cool.

People sometimes forget about legacy software, but it pops up in unexpected places. I used to be campus CIO of a small university, and once a faculty member brought in some floppy disks with old research data on them. The data wasn't stored in plaintext files, rather as DOS application data. None of our modern systems would read the old data files, so we booted a spare PC with FreeDOS, downloaded a shareware DOS program that could read the application data, and exported the data to plaintext.

There are other examples of legacy software running on DOS. My favorite is the McLaren F1 supercar, which can only be serviced with an ancient DOS laptop. And Game of Thrones author George R.R. Martin uses DOS to write his books. 

They probably use MS-DOS, but I believe there are a bunch of other legacy systems running on FreeDOS.

A few years ago, we ran a survey to see how people use FreeDOS, and three different ways emerged:

  1. To play classic DOS games: You can play your favorite DOS games on FreeDOS. And there are a lot of great classic games to play: Wolfenstein 3D, Doom, Commander Keen, Rise of the Triad, Jill of the Jungle, Duke Nukem, and many others.
  2. To run legacy software: Need to recover data from an old business program? Or maybe you need to run a report from your old finance system? Just install your legacy software under FreeDOS, and you'll be good to go.
  3. To develop embedded systems: Many embedded systems run on DOS, although modern systems are more likely to run on Linux. If you support an older embedded system, you might be running DOS, and FreeDOS can fit in very well.

You can probably add a fourth category to those FreeDOS use cases: updating BIOS. I get a lot of email and comments from people who still boot FreeDOS to update the BIOS in their computer system. DOS is still a safe way to do that.

It's true that you don't see much DOS in embedded systems being developed today. I think the Raspberry Pi and other low-cost and low-power devices have made Linux in embedded devices very attractive, so most developer interest has moved there. But you still see FreeDOS sometimes, a testament to the staying power of open source development.

photo of Jim Hall
Jim Hall is an open source software advocate and developer, best known for usability testing in GNOME and as the founder + project coordinator of FreeDOS.


Love origin stories. The FLOSS Weekly Podcast episode on FreeDOS was really neat too. I've only dabbled with it in a VM running GEM but it's cool that, as someone said recently, FreeDOS has now been in active development longer than MS-DOS was.

Hi Hank! Thanks for the great comment.

It's true! I was a bit surprised when someone pointed out to me that I've been working on FreeDOS for longer than MS-DOS was a thing. The initial release of MS-DOS was 1981, and effectively stopped in 1995. I've been developing FreeDOS since 1994, and we're still going. That's 23 years for FreeDOS, compared to 14 years for MS-DOS.

Officially, Microsoft retired MS-DOS as a product in 2000. That's still only 19 years.

In reply to by HankG

They essentially stopped development after the last DOS based Windows was released, which was Windows ME, around 2000, when MS-DOS was officially retired. I think that was why it wasn't officially retired before that. They still needed it to make the consumer versions of Windows work. The last standalone MS-DOS was 6.22, but in Windows 98 when you entered real mode, you got MS-DOS 7. You couldn't enter real mode in ME, but I suspect that it would still have had 7.x as a version number.

Of course PC-DOS (IBM's DOS) had it's last release after the last standalone MS-DOS, and DR-DOS (Digital Research and later Novell's DOS version) was used for embedded systems for quite a while after that. (I think it still is sometimes, but FreeDOS just makes more sense at this point.)

In reply to by Jim Hall

Didn't realize that George R. R. Martin still uses DOS!
Someone should upgrade him to FreeDOS =)

I wonder if adding a DOSBox fork to the work the FreeDOS community is doing is a good idea? Maybe better integration with a system like Linux so that moving from one environment to another is even more seamless and better integrated.

I was looking at a recent app update (Blocek) and couldn't help but realize how many great terminal editors DOS has in it's arsenal. They also have a bunch of other tools (utils, automation, etc) that are powerful and just easier to work with.

Thanks! In FreeDOS, we try to provide more than just the features of classic DOS. When you install, if you select the FreeDOS "Base", that gives you just the features that match MS-DOS. If you choose to install everything, you get a bunch of other stuff - editors, compilers, music players, games, and other great tools that make FreeDOS very useful.

In reply to by jake (not verified)

Another use of FreeDOS, at least here in Spain, and a that amounts to a great number of computers is to avoid the Microsoft tax.
Here you can't, by law, buy a non-OS computer, computers should come with a OS installed. All linux users had to pay, till now, a Windows license, until shops started selling FreeDOS equipped computers.

At least in the US, Dell and HP also have FreeDOS as a pre-installed OS option. I think it's great to see FreeDOS used in this way. :-)

In reply to by Carles Mateu (not verified)

Thank Jim for great history article and FreeDOS too!

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.