Keeping DOS alive and kicking with open source

6 readers like this.

DOS: the Disk Operating System. For many of us whose computer coming-of-age story spanned across the 80s and 90s, we remember it, fondly or not, as the gateway into our computers. But somewhere along the way, DOS gave way to graphical environments, and some of us opted to move to open source alternatives.


But in the free software world, DOS is still alive and well in the form of FreeDOS, an open source operating system maintained by Jim Hall and a team of dedicated developers who are keeping the DOS legacy alive well into the twenty-first century. And more than simply an existing code base, FreeDOS is still being actively developed and is approaching a new release in the near future ("When it's ready," according to Jim). FreeDOS has proved to be an important tool to numerous legacy applications powering critical systems which were never migrated to a more modern operating system.


I caught up with Jim to learn more about the FreeDOS project and where it's headed in this interview.


It's 2016. Who's still using DOS?

We did a survey a few years ago, and found there are three types of people who use FreeDOS today:

  1. People who play classic DOS games. Sure, you can play DOS games in something like DOSBox, and some classic games have been ported to Linux (for example, DOOM) but there are a large number of us who still like to play DOS games on a DOS system. That's often how I play some of the old DOS games I loved.
  2. People who run legacy business applications. There may not be as many of these people in 2016, but they're still there! We don't know if these are FreeDOS or some other DOS, but there's the car company that uses an old Compaq laptop running DOS software to service luxury McLaren F1 cars and the South Australian Government is still running their electronic health records on a DOS-based system. Probably my favorite example is author George R.R. Martin (author of the 'Game of Thrones' series) writes all his books and manuscripts on a DOS computer, running the WordStar word processor.

    Over the years, I've heard from a few other individuals who say they used FreeDOS at work to bring up an old DOS program so they could grab data from an old data file. Actually, we did that at my previous job, at the University of Minnesota Morris. One of our faculty had a 3.5-inch floppy that had some old research data on it, and the modern Windows programs couldn't read it. We installed FreeDOS on a computer and downloaded a 1990s DOS shareware program that could read that kind of file, and were able to export the data into a text file.

  3. People who develop embedded systems. DOS used to be a very popular platform to run embedded systems. So if you support an older embedded system, you might be running DOS. And FreeDOS can fit in very well. At least one developer contacted me a few years ago to say the embedded system he writes for is running on FreeDOS. I thought that was great!

How does FreeDOS fit into the ecosystem of other projects enabling users to run legacy programs, like DOSBox and Wine?

There are certainly a number of people who choose to use DOSBox to play classic DOS games. And that's fine. But DOSBox is really geared for playing games; it doesn't do as well with many business applications. For these, you'll need an actual DOS system, either running inside a virtual machine like DOSEmu, QEMU, VMWare, and others, or running on actual hardware. It depends on what you need.

DOSBox has been making great progress in supporting DOS games, but there are still a few that don't run well or at all (yet) on DOSBox. If you aren't able to play the game in DOSBox, you might try it on FreeDOS.

Wine is a different thing, of course. Wine allows you to run Windows programs on Linux (and other Unix, like BSD) by translating the Windows calls to Unix calls. They don't aim to run DOS programs on Linux, for example.

You've been working on this project for over two decades. How do you avoid burnout and attract new contributors to the project?

Someone pointed out to me that I have been working on FreeDOS for longer than MS-DOS was a thing. That was probably the first time I'd realized how long we've been working on FreeDOS.

A lot of us are just really into programming, and we like working on DOS because it's a great little system that people still use for things. Personally, I need to take breaks from the project every once in a while so I don't get burned out. You need a vacation from anything, really. But for me, "taking a break" is really not paying attention to email for a week, then I usually get right back into things.

My hands-on work in FreeDOS has changed over the years, too. In the beginning, I wrote a lot of code. I wrote most of the original FreeDOS file utilities. For the other utilities, if I didn't write the first version, I probably contributed to the code in some way. I wrote a lot of libraries, like the Cats library (now called "Kitten") which is a DOS version of the Unix catgets (catalog get string) function family. This is what allows FreeDOS to support multiple languages, just by changing a DOS environment variable. And I wrote the first FreeDOS installer, which we used (with updates from others) through the FreeDOS 1.1 distribution.

These days, I do very little coding. I manage the website, take care of the wiki, respond to emails, do our social media, that sort of thing. I may not be writing DOS code, but I'm writing PHP or Bash or other scripting languages to keep things running behind the scenes. I'm doing all the other things that need doing in an open source software project to keep things moving.

So I guess the answer to your first question is: I avoid burnout by going where my interests decide to take me.

For attracting new developers, it's basically the same today that it was in 1994. I talk about FreeDOS whenever I get the chance, I showcase what our developers are doing, I highlight the cool things that people are doing with FreeDOS. People will only become interested in open source software projects that are being maintained, where people are active, and where contributors are recognized. And you don't have to be a developer to contribute to FreeDOS (but these days, most contributors are developers).

What can people expect from FreeDOS 1.2 compared to its predecessor?

We had a series of discussions about what the next version after "FreeDOS 1.1" should look like. For a while there, I thought the next version should be "2.0" and that we should change a bunch of things, think about what DOS should look like in 2016. I thought FreeDOS should become more "modern" and include more Unix-like functionality. I thought that kind of crossover would be interesting to new developers, and make FreeDOS something new.

But after a while, others convinced me that this was taking FreeDOS too far. The beauty of FreeDOS is that it's just DOS, and DOS isn't meant to be that complicated. DOS should be simple. DOS is and was always meant to be a simple operating system. DOS isn't that complicated. That's what makes DOS so appealing; the overhead is small, it's easy to figure out, and it's quick to set up and get running.

So other FreeDOS developers convinced me to drop the "modern DOS" idea. And they were right. The next FreeDOS needed to be simple, and it needed to remain "DOS."

We decided that the next version should be "1.2" and include mostly updates. Calling this version "1.2" meant we were just making an updated version of FreeDOS. No big changes. Nothing dramatic. We dropped or added packages where that makes sense, but mostly you'll see the same kind of things in FreeDOS 1.2 that you saw in FreeDOS 1.1.

However, one new thing you'll see in FreeDOS 1.2 is the updated installer.

I wrote the original FreeDOS install program back in 1997 and 1998, to create the FreeDOS Beta 1 distribution (called "0.1" on Wikipedia, but really this is more properly called the FreeDOS Beta 1 "Orlando" distribution). The original FreeDOS installer was pretty straightforward, a way to select packages (like CHOICE, PAUSE, etc) and package "sets" (like BASE for just the packages that provide the same functionality as MS-DOS, EDIT for the extra editors, DEVEL for the development kits, and so on). Over time, we've updated the FreeDOS installer to provide different options or to make it more flexible. But the core of the installer hasn't changed that much.

When we started work on FreeDOS 1.2, I was very insistent that we update the installer. I realized the old installer had become too complicated. But DOS isn't that complicated; the installer should be very straightforward. I wanted the new installer to provide only a few prompts, like if you want to install everything or just the basic "DOS" parts, or if you wanted to install source code, and the installer would take things from there. And to do this, we didn't need a compiled installer. We could easily script it by using a few clever DOS power tools, like utilities to prompt the user for input, etc. Jerome Shidel volunteered to write the updated FreeDOS installer, and he did a great job with it! The new installer is very simple, for both new and old users. If you've used DOS for a long time, the installer will feel very familiar. If this is your first time installing FreeDOS, you'll have an easy time, just answer a few prompts.

What will the next version beyond FreeDOS 1.2 look like?

We haven't decided if the next version after 1.2 will be 1.3 or 2.0. I think if we continue to include the utilities that we include today, and in the same package sets (BASE, EDIT, etc) the next version will be 1.3. If we decide to change how we organize things, or change what kinds of utilities we include, then maybe the next version will be 2.0.

But future FreeDOS versions will still be for Intel or Intel-compatible PCs. We aren't planning to add multitasking or 32-bit support or anything like that. FreeDOS is just DOS, and will remain that way.

How has running FreeDOS impacted your career? How does working on an open source "side project" for so many years differ from being able to work on open source fulltime?

Working on open source software projects has intersected in interesting ways with my day job.

I've been using and contributing to open source software since about 1993, so for the last 23 years. A few years ago, I decided to get a master's degree. As part of that program, I studied usability testing. I made "open source software" the focus of my usability project, specifically looking at Firefox, Nautilus, and Gedit.

Studying the usability of open source software sparked a new interest in me, and I focused my master's capstone on the usability of open source software. My capstone project included a usability test of several GNOME applications: Gedit, Web, Nautilus, Software, and Notes.

Today, I have turned that interest into a blog about open source software and usability.

I mentored interns doing usability testing in GNOME for a few cycles of Outreachy (formerly GNOME Outreach Program for Women). Then the university where I worked asked me to teach a class on usability. And I did! (CSCI 4609 Processes, Programming, and Languages: Usability of Open Source Software at the University of Minnesota Morris.) So I finally got to make part of my day job working in open source software. Even though I've moved on to a new role in government, the university recently asked me to teach the class again. I would love to teach the class again.

My regular day job is leading IT (today I'm a CIO), and I would say my background in open source software has made me more receptive to open source software in the enterprise. This goes way back in my career, even when I was a young Unix systems administrator in my first job.I've implemented open source software at every organization I've worked for. Most significantly, I once migrated a web registration system supporting over 65,000 students from a three-node IBM supercomputer to a ten-node cluster of Linux servers. We had better system reliability and performance, and we saved almost a million dollars!

Today's IT leaders need to embrace open source software. You can't say no to open source software just because you've had a comfortable time with Windows your whole career. The future is open source, and IT leaders need to go there.

I assume you don't run FreeDOS as your primary operating system fulltime. What modern tools do you use, and how has this influenced your work on FreeDOS?

No, I don't run FreeDOS as my primary system. That would really be impressive!

I run Linux at home. My laptop is a Lenovo X1 Carbon (first gen) running Fedora 24 with GNOME 3.

The tools I use every day include: Google Chrome, Firefox, and GNOMEWeb to browse the web; Gedit to edit text or simple code (such as Bash); GNU Emacs to edit program code (I prefer C); GNOME Terminal to SSH to my personal server and to the FreeDOS website; RhythmBox to listen to music.

I run FreeDOS in a virtual machine. I use DOSEmu if I'm writingFreeDOS code, so I can use GNU Emacs on Linux to write code and immediately compile it in FreeDOS via DOSEmu. That's really convenient because DOSEmu maps a folder in your home directory as the C: drive.

If I need to run FreeDOS as though it's running on hardware, such as testing the upcoming FreeDOS 1.2 release, I use qemu.

Jason Baker
Former Red Hatter. Now a consultant and aspiring entrepreneur. Map nerd, maker, and enthusiastic installer of open source desktop and self-hosted software.


Back in my sysadmin days, I used FreeDOS to update Dell BIOS firmware. My bootable USB had FreeDOS, Knoppix, and RHEL rescue image. I have some old DOS games that I still like to play and I've always used DOSBox, but I should try using FreeDOS to see if that clears up some of the annoying glitches I get sometimes.

I agree but we are hitting a scsi/sata roadblock with recent 64bit systems trying this.
I tried to throw together a freedos modified rescue disc w spinrite and such(I had all my pascal tools on an image) but I cant throw himem or cdrom access into working. so as a rescue disc, or a bios update disc, its almost useless.
you can boot a virtualized floppy.

and as per the dev:

qemu is nice but doesnt mimic the real hardware like you think it does, especially newer hardware. with qemu vs vbox you can simluate your real hardware--even dedicate it to qemu but, the ther system hardware components just dont mesh. You are using dated specs, as if using freedos on dated hardware.

--which is fine.
but it does squat for people with newer, recent hardware, which as you said-- runs fedora most likely.

(although its an extention)
we need support for dpmi and 32 bit but if the core doesnt want to develop for it, fine.

my x86 assembler is rusty when it comes to dpmi and such. Id have to crack open a book.

In reply to by bcotton

Salute to 640K, Config.sys, and Autoexec.bat. I have not ever tried FreeDOS. Glad to hear about it and maybe a chance a chance to virtualize it. Great article.

I have used freeDOS for BIOS updates that where DOS only and I do not use MS products anymore (GNU/Linux and some tests with other OSs)

I would like a freeDOS container edition that can write and read GNU/Linux file systems, so you can use it as actual Chrome OS users can use Android apps. And as actual RAM amount is very big, and, especially gamers, had a lot of trouble maximizing what we had with programs like QEMM, with RAM maximized as default to be able to run any old DOS game without any RAM amount problem. And as Dosbox has front end databases a good front end for games in order to let young people to enjoy those old but still good enough games.

DR DOS was supposed to be the future of DOS, but Microsoft illegally prevented it from happening. It was, sort of, natural course of DOS evolution with multitasking and high memory access. Perhaps FreeDOS people should reconsider it. I have been using Novell DOS for a while, which was DR DOS re-branded. Its multitasking capability helped me solve some problems back then.

Digital Research also created a desktop environment called GEM which influenced Atari, Apple and Windows 3.1. GEM was very easy to learn and use. I wish there is a similar software for Linux today, to help inexperienced users.

Thank you, great read. You've inspired me and I've just installed a free DOS Virtual Machine to play old games. Thank you.

Will future versions of FreeDOS include generic 16bit audio drivers to run on some/most systems? Hardware makers have stopped making DOS audio drivers and refuse to now even though it would be very simple. They obey microsloth and likely only offer the specs to linux developers because it's so widely used.

I would love to have a DOS-only computer for certain things, but the lack of audio makes that infeasible. Yes, one can scour used hardware shops for Soundblaster cards or buy cheap SB16 compatibles from China, but those require a tower to stick it in. For those who have to live with laptops with sound chips for various reasons (i.e. portability, space, etc.), that's not an option.

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