September 2016, “Staff Pick” Project of the Month – FreeDOS

By Community Team

For our September “Staff Pick” Project of the Month, we selected FreeDOS, a free DOS-compatible operating system for IBM-PC compatible systems. Jim Hall, creator of FreeDOS shared some of thoughts about the project’s history, purpose, and direction.

SourceForge (SF): Tell me about the FreeDOS project please.
Jim Hall (JH): The FreeDOS Project aims to create a free, open source implementation of DOS. You should be able to run any program that runs on MS-DOS.

And we’ve achieved that. You can run pretty much any DOS program on FreeDOS.

SF: What made you start this?
JH: I created the FreeDOS Project when I was still an undergraduate physics student. At the time, MS-DOS was my primary platform. I’d actually grown up with several different computers, starting with a clone of the Apple II called the Frankin ACE 1000 where I first taught myself to write programs. But by the time I started as an undergraduate student in the early 1990s, I was using MS-DOS for everything.

For some of my classes, we used the computer lab, and I kept my Unix account current there. I thought Unix was very similar to MS-DOS but much more powerful. Then in 1993, I installed Linux on my computer for the first time, configured as dual-boot with MS-DOS. That was amazing! Here I had a full Unix system in my dorm room. I didn’t have to use the dial-in modem pool (sometimes busy) or trek all the way to the computer lab (difficult in winter) just to use a Unix system. And Linux was free! I think I paid someone $90 to copy SLS Linux to a bunch of floppies and mail them to me. But it came with source code, so I could see how the Unix programs were written.

I used Linux for a lot of things, but still booted into MS-DOS quite often to analyze lab data in a spreadsheet program, or write a class paper using a word processor program. MS-DOS was great for what I needed to do. I didn’t use Windows (version 3.x at the time) because Windows was sluggish and just plain difficult to use. I did everything in MS-DOS and a bit in Linux.

Then in 1994, Microsoft started talking about the next version of Windows. Of course, this would be Windows 95, but at the time it just seemed like “Windows 4.” Microsoft said the next version of Windows would do away with DOS. “DOS was dead.” I didn’t like that; I still used MS-DOS a lot. And I thought, “If the next version of Windows will be anything like Windows 3.x, I don’t want anything to do with it.”

I looked to Linux and realized a bunch of programmers wrote that – a full Unix system. Surely we can write our own version of DOS. It didn’t seem that hard, because DOS is a fairly straightforward operating system.

I made an announcement on USENET – that was how we communicated with others on the Internet.
(https://groups.google.com/d/msg/comp.os.msdos.apps/oQmT4ETcSzU/O1HR8PE2u-EJ)

I knew how to code in C, and I often wrote little utilities to help me at the DOS command line or to create improved versions of the standard DOS commands. I spent a few weeks writing a few extra programs that replaced the basic DOS file utilities, then posted that as my first contribution to FreeDOS.

SF: Who can benefit the most from your project?
JH: We ran a survey years ago and discovered that most of our users fall into three areas:

1. People who play classic DOS games.
2. People who run legacy business applications.
3. Developers who support embedded systems.

So anyone who describes themselves as any of those will love FreeDOS!

We haven’t repeated that survey in a while, but in the last few years I think we’re seeing a fourth group: Computer hobbyists. These include people who weren’t around for the original MS-DOS days. They didn’t use MS-DOS growing up, but they want to see what it was like. The folks I hear from are also rebuilding old computers, getting a retired ‘386 or ‘486 to run again and putting FreeDOS on it. I think this is great!

I think it’s safe to say most of our users are in the first camp: people who play classic DOS games. That’s also one of the key uses I get out of FreeDOS, if I’m not coding on it.

DOS had a lot of great shareware games, back in the day. And these games are still loads of fun to play! Everyone should know DOOM, Wolfenstein 3D and Quake. You can even find versions of these for Linux. There were also some other great games I played like Jill of the Jungle, Commander Keen, Duke Nukem 3D, Blood, Epic Pinball, TIE Fighter, and others.

You can also run these games in a dedicated system like DOSBox, but there’s something cool about running DOS games on an actual DOS system like FreeDOS!

SF: What core need does FreeDOS fulfill?
JH: If you have an old DOS program that you still need to run today, FreeDOS will let you do that.

SF: Why is FreeDOS still going strong in 2016?
JH: I think because we have a lot of interested developers! I was a little worried when we reached “1.0” in September 2006, because I thought we’d lose everyone. You know, we made it to 1.0, mission accomplished, and I thought people might “check out” of the project.

But no! We continue to have a lot of people working on FreeDOS, and as we lose some folks (as all projects do) we gain others.

SF: What’s the best way to get the most out of using FreeDOS?
JH: I prefer to run FreeDOS in an emulator. I recommend an emulator to people who are new to FreeDOS, because FreeDOS is an operating system and you can accidentally wipe your primary operating system if you try to install FreeDOS on actual hardware.

You can run FreeDOS in any PC emulator. I prefer DOSEmu and QEMU. Others also like VirtualPC, VMWare, VirtualBox, Bochs, and Plex86.

SF: What has your project team done to help build and nurture your community?
JH: Early on in the FreeDOS Project, we established some ground rules for the mailing lists. The fastest way for any open source software project to become toxic is to allow abuse and other rude behavior on its mailing lists. Projects need mailing lists for developers to communicate with each other.

The modern version of our list rules are at http://www.freedos.org/lists/remind.txt but in brief they are:

1. Don’t swear.
2. Keep posts on-topic.
3. No flame wars.

And surprisingly, these few rules keep folks in order.

I think because we have a welcoming community, new users feel free to contribute to the discussion and help out.

SF: What was the first big thing that happened for your project?
JH: I remember being very excited when Pat Villani published his book about FreeDOS in January 1996. (http://www.amazon.com/exec/obidos/ASIN/0879304367/002-5451196-6088831) It really felt like someone had taken notice of our little DOS project. Being in print was a big deal!

SF: What made that happen?
JH: Pat Villani was the original author of the FreeDOS kernel, and a good friend. (Pat died in August 2011.) You can read more about Pat’s work on Wikipedia (https://en.wikipedia.org/wiki/Pat_Villani) but in brief, Pat worked in embedded systems, and wrote many of his programs on MS-DOS and ported them to the embedded system. Later, he created a DOS-like environment to run directly on the embedded systems, so he didn’t have to do the porting work.

Several years later, Pat connected with the DOSEmu folks and offered his DOS kernel. The DOSEmu folks already knew about FreeDOS (then still “Free-DOS”) and pointed Pat to me. Pat contributed his DOS kernel as our FreeDOS kernel (originally called “DOS-C”).

I think it was Pat’s brilliance and experience in working in embedded systems and writing kernel code, and describing it in a straightforward way, that appealed to the publisher. They took a chance on his book and released it.

I still have my copy of Pat’s book on my bookshelf.

SF: How has SourceForge and its tools helped your project reach that success?
JH: When we first started, we collected and released our FreeDOS programs from an ftp site hosted at Sunsite (now Ibiblio.org). That’s how you released software in the early- to mid-1990’s. When websites became a thing, we created our first website at www.freedos.org, but still released our files via ftp.

What we lacked was any way to coordinate developer activity. If someone found a bug in your program, they had to email you, and you had to respond to it. Developers often kept a running list of bugs to be fixed, and kept them in a file as part of each program’s new release. We didn’t have a bug tracker back then.

We also didn’t have a way for multiple people to work on the same code base at the same time. In the early- to mid-1990s, you didn’t have online code repositories. Everyone managed their own code in their own special way. That was great for the person who maintained the code, but not great for collaboration. If you fixed a bug in someone’s program, you had to send them a patch for them to merge. It was a very manual process.

SourceForge came online in 1999, and we quickly realized how SourceForge could help us. I created our FreeDOS project at SourceForge and started activating the features that we could use. We immediately used the code repository (originally CVS, then SVN). We used the bug tracker. And I moved our www.freedos.org website to SourceForge, which also allowed other webmasters to help out.

Today, our www.freedos.org website is hosted at Amazon, but we still maintain a website at SourceForge. Our Wiki is hosted there, for example. We also continue to use the SourceForge Bug Tracker and the SourceForge SVN.

SF: What is the next big thing for FreeDOS?
JH: After FreeDOS 1.2, our next release may be FreeDOS 2.0 – finally. But even at version 2.0, FreeDOS will still be just DOS. We aren’t making any architecture changes; FreeDOS still requires Intel, it’s still 16-bit. FreeDOS won’t be multitasking.

We are still focused on FreeDOS 1.2, so we haven’t talked much about FreeDOS 2.0, so this may change:

FreeDOS 2.0 will probably move some of the legacy programs to a separate package set. You’ll always be able to install them if you want them, but the BASE install (just the programs that replicate the original DOS functionality) might not include some really old compatibility programs like SUBST (Substitute a path with a drive letter) or GRAPHICS (Allow Prtscr to print graphics screens to the printer using the PrtScn key on your keyboard).

SF: How long do you think that will take?
JH: It’s hard to say. We released FreeDOS 1.1 in 2012, and we’ll release FreeDOS 1.2 later in 2016. That’s a few years. You can make your own guess for when FreeDOS 2.0 will be here.

But I think sometime in 2017.

SF: Do you have the resources you need to make that happen?
JH: I think so. FreeDOS is all about the community, and we have a very engaged community right now.

SF: What can people expect from FreeDOS 1.2 compared to FreeDOS 1.1?
JH: There’s not a lot of big changes in this release. Going back, we had a lot of discussion about what the next version after “1.1” should be like. Would the next version be “FreeDOS 1.2” and contain mostly updates and look pretty much the same, or would the next version be “FreeDOS 2.0” and change a bunch of things about FreeDOS? In the end, we decided that FreeDOS is still DOS, and we shouldn’t change that core assumption. So FreeDOS 1.2 is an update from FreeDOS 1.1.

A few things have changed. Most noticeably, we’ve updated the installer. I wrote the original install program from FreeDOS Beta 1 (March 1998). The installer has always been a fairly straightforward program that figures out what programs (or “packages”) you want to install, and installs them. Programs can be collected into groups (or “package sets”) like BASE (contains just those programs that reproduce the behavior of classic DOS systems) or DEVEL (development tools, like compilers) and other groups.

The new installer was written by Jerome Shidel, and is a huge step forward. Our goal with the new installer was to make things as simple and straightforward as possible.

We’ve also updated a lot of packages in the new FreeDOS 1.2. A few packages have been dropped in favor of adding others. And we’re providing FreeDOS 1.2 in several formats: a bootable USB image that you can write to a flash drive, a CDROM installer, and a floppy+CDROM installer.

I think there’s a lot to love about the new FreeDOS 1.2!

SF: If you had to do it over again, what would you do differently for FreeDOS?
JH: From a project perspective, I don’t know that I’d do anything very differently from how we did it. I think our community really came together from the start to work on this shared vision of a free DOS. We built an amazing FreeDOS system that’s still getting used by lots of people around the world in 2016. That’s pretty impressive!

I guess if I could go back in time and change one thing, it would have to be the name. A little history: I first announced the project as “PD-DOS” in 1994 because I naively assumed “public domain” was the same as “free software.” And we did collect a lot of programs from various ftp sites that were released in the public domain, so “PD-DOS” seemed a good name.

Later, we realized that what we wanted was “free software” and used the GNU General Public License for our source code. The GNU GPL meant that no one could take our code and turn it into a proprietary product (but they could if we released everything in the public domain). That’s also when we changed our name to “Free-DOS” about a month later, to reflect the new “free software” focus. Sometime around January 1996, we dropped the hyphen and became “FreeDOS.”

You can see the full history at http://www.freedos.org/history/

SF: Is there anything else we should know?
JH: A little about my home setup: My platform of choice is Linux. I ran a version of Windows on my home computer until about 1998, then I switched entirely to Linux. It’s great! My laptop is a Lenovo Thinkpad X1 Carbon (first gen) running Fedora 24 and GNOME 3.20. I use Chrome, Firefox, and GNOME Web as my web browser. I listen to music using Rhythmbox. To edit code at home, I either use GNOME gedit or GNU Emacs, but when I ssh to my web server I use vi.

When I’m not working on FreeDOS, I’m also very engaged in usability testing. My Master’s capstone was about the usability of open source software, specifically GNOME. I want every open source software program to be easy to use! I work very closely with GNOME on this, and mentored three cycles of GNOME usability testing through GNOME Outreachy (formerly the Outreach Program for Women). Last Fall, I taught a university 4000-level class about usability in open source software (CSCI 4609 Processes, Programming, and Languages: Usability of Open Source Software) and I’m planning to teach it again this Spring semester.

I write about open source software and usability on my blog at http://opensource-usability.blogspot.com/

[ Download FreeDOS ]