Interview with Jim Hall of FreeDOS

Keeping DOS alive and kicking with open source

FreeDOS
Image by : 

opensource.com

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.

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.

About the author

Jason Baker - Jason is passionate about using technology to make the world more open, from software development to bringing sunlight to local governments. Linux desktop enthusiast. Map/geospatial nerd. Raspberry Pi tinkerer. Data analysis and visualization geek. Occasional coder. Cloud nativist. Follow him on Twitter.