Jim Hall’s day job is chief information officer for Ramsey County in the US state of Minnesota. But outside of work, the CIO is also a contributor to a number of free software/open source projects, including FreeDOS: The project to create an open source, drop-in replacement for MS-DOS.
FreeDOS (it was originally dubbed ‘PD-DOS’ for ‘Public Domain DOS’, but the name was changed to reflect that it’s actually released under the GNU General Public License) dates back to June 1994, meaning it is just over 22 years old — a formidable lifespan compared to many open source projects.
“And if you consider the DOS platform, MS-DOS 1.0 dates back to 1981, ‘DOS’ as an operating system has been around for 35 years! That’s not too shabby,” Hall said. (Version 1.0 of MS-DOS — then marketed by IBM as PC DOS — was released in August 1981.)
Hall has been involved in free software since the early ’90s when he was an undergraduate physics student. He first installed Linux on his home computer in 1993. These days Hall is a member of the board of directors for the open source GNOME desktop environment. He's also the author of GNU Robots and as well as FreeDOS he has contributed to a number of open source projects.
The creation of FreeDOS was a reaction to Microsoft revealing that, from Windows 95 onwards, DOS would no longer be developed as a standalone operating system. Microsoft in 1993 released MS-DOS 6.0, which was the beginning of the end of MS-DOS as a standalone OS (the final version of Microsoft’s 6.x branch, 6.22, was released in mid-1994).
Hall, at the time an undergrad at University of Wisconsin-River Falls, first announced ‘PD-DOS’ with a posting to comp.os.msdos.apps. It took until mid-2006 for FreeDOS 1.0 to be released.
Computerworld Australia first interviewed Hall in early 2013, a year after the release of FreeDOS 1.1, about the future of the project.
Computerworld Australia has caught with Hall again, this time ahead of version 1.2 of FreeDOS — an impending release, albeit one that has a release date of “when it’s ready” Hall says.
In the lead-up to the 1.1 release, Hall raised the question of what MS-DOS would have looked like if Microsoft hadn’t gone all-in with Windows — and what a ‘FreeDOS 2.0’ could potentially look like. However with FreeDOS 1.2 the project has decided to stick to its original vision of being a drop-in replacement for MS-DOS.
“To make a ‘FreeDOS 2.0,’ I originally wanted to change a bunch of things about FreeDOS,” Hall told Computerworld. “I thought we should move FreeDOS ahead, think about what ‘DOS’ would be like in 2015 or 2016 if Microsoft hadn’t stopped working on MS-DOS in favour of Windows. In this vision, I thought ‘FreeDOS 2.0’ would be more ‘modern’ and draw on other modern environments like Linux.”
Hall had thought a good place to start was with Gnuish, an effort dating back to 1989 to make a range of the GNU utilities available to people running MS-DOS or OS/2.
“The idea was interesting to me: Making FreeDOS more modern by incorporating all these Unix utilities,” Hall says. “And I thought maybe that kind of crossover would attract some free software/open source software developers to FreeDOS, who would otherwise have contributed only to Linux.”
Hall said that as the idea of a 2.0 branch was discussed by the community, “it became clear to me that this ‘modern DOS’ concept wasn’t really DOS any more.”
“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.”
“DOS hasn’t changed in any major way in years, and that’s good,” he added. “Because the definition of DOS has essentially remained the same since the mid to late 1990s, you can run any classic DOS program on FreeDOS.”
As a result, the ‘modern DOS’ idea was dropped. “The next FreeDOS needed to be simple, and it needed to remain ‘DOS,’” Hall said. “That’s where ‘FreeDOS 1.2’ came from,” he added.
As a result, the changes in FreeDOS 1.2 won’t be dramatic: “The next version of FreeDOS won’t be multitasking, it won’t be 32-bit, it won’t run on ARM,” Hall said.
“FreeDOS is still intended for Intel and Intel-compatible computers. You should still be able to run FreeDOS on your old 486 or old Pentium PC to play classic DOS games, run legacy business programs, and support embedded development.”
One of the most changes that will be noticeable to end users will be the FreeDOS installer, however.
“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),” Hall said.
“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,” he added. “I realised 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. To do this, we didn’t need a compiled installer. We could easily script it by using a few clever DOS power tools; utilities to prompt the user for input, etc.”
Jerome Shidel volunteered to write the updated FreeDOS installer. “He did a great job with it!” Hall said.
“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.”
Other changes in 1.2 relate to the packages included with FreeDOS, with updates to some components and some changes to what is bundled with the OS.
“The FreeDOS 1.1 release was four years ago, in January 2012,” Hall said.
“And while that’s fine for an operating system that doesn’t need to change much, we have realized that we need to change what packages we include in FreeDOS.” [see box]
The FreeDOS ecosystemBeyond 1.2, the team hasn’t decided whether the next FreeDOS release will be numbered 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,” Hall said. “If we decide to change how we organise things, or change what kinds of utilities we include, then maybe the next version will be 2.0.”
The basic FreeDOS software ecosystem is divided into seven categories: BASE, BOOT, DEVEL, EDIT, NET, SOUND and UTIL. The core components of BASE, which provides the same basic functionality as MS-DOS, won’t change significantly from 1.1 to 1.2, Hall said. The MKEYB international keyboard driver is being moved from UTIL to BASE, however (KEYB is still being retained).
“We are also removing some programs that were going to cause problems,” Hall added (the XMGR XMS memory manager for example).
As a whole, the ecosystem comprises close to 200 drivers, utilities and applications, the vast majority of which are open source (some are public domain, but most are licensed under the GPL v2 or v3).
“FDNPKG by Mateusz Viste definitely stands out for me as a great FreeDOS utility,” Hall said. “Mateusz realised that we needed an easier way to keep FreeDOS up-to-date after you’ve installed it, so he created FDNPKG [FreeDOS Network Package manager] to do that. FDNPKG is very much like Yum or Apt or any of the other Linux package managers. You can install a package, remove it, update it — even over the network.”
“Going back even further, I’m still proud of the Cats and Kitten libraries for FreeDOS,” Hall said. “I wrote Cats, and others updated it to create Kitten.”
“Cats provides the same programming API as catgets() on Unix, to support multiple languages,” he said. “So one program can support a bunch of different local languages without having to be recompiled. The Cats library reads a language data file, called a ‘catalog’ file (that’s where the ‘cat’ comes from) and uses that to display text. Cats is a pretty faithful reproduction of catgets() on Unix. Others made it smaller, and removed some functionality we just didn’t need or use, so now we have the much smaller Kitten library to support multiple languages.”
(“Because a kitten is smaller than a cat,” Hall added.)
Hall is convinced, however, the project will remain focused on “being DOS”. “We aren’t planning to add multitasking or 32-bit support or anything like that,” he said. “FreeDOS is just DOS, and will remain that way.”
Who uses DOS?
Hall said there are three key categories of people who use FreeDOS: People looking to run classic DOS games, businesses that need to support legacy applications and developers building embedded systems.
“I recall getting a lot of email from folks when John Romero released his new DOOM level and everyone wanted to play it,” Hall said.
“Of course, many people downloaded FreeDOS and ran DOOM on it, and they emailed me later to say it was cool to have FreeDOS so they could play this game again. It’s interesting, because ID Software released the source code to DOOM many years ago, and you can run it anywhere — on Linux, on Windows, wherever. But lots of people chose to run DOOM on FreeDOS instead. And that’s great!” (“I thought it was a good level,” Hall added.)
A number of organisations still rely on DOS-based applications, despite the system’s age. McLaren Automotive, for example, uses DOS-based software to McLaren F1s and South Australia’s health department still uses Global Health’s CHIRON application.
“I don’t know if they use FreeDOS or MS-DOS, but they are always welcome to run FreeDOS,” Hall said, noting that FreeDOS is released under an open source licence so it's free to use commercially.
There is still a strong community around the operating system despite DOS’s age, Hall said.
“Many of us older computer nerds probably used DOS very early, on our first home computer,” Hall said. “You could tinker on DOS, use the built-in BASIC system (such as GWBASIC) to write simple programs: games or small utilities to help you do your work. DOS was easy to set up, easy to get working. Memory management was sometimes a pain, but eventually we figured that out so we could run our games or other big applications.”
“The popularity of DOS games and DOS shareware applications probably contributes in a big way to FreeDOS’s continued success,” Hall said.
“Because DOS hasn’t really changed, you can still run those old DOS programs on FreeDOS: Wolfenstein 3D, DOOM, Commander Keen, Rise of the Triad, Epic Pinball, Jill of the Jungle, Duke Nukem. I also used a lot of shareware at the time: AsEasyAs and GalaxyWrite were invaluable during my university days as a physics undergraduate student.
“In 2016, you can download any of these classic programs and run them on FreeDOS. Because FreeDOS works the same as MS-DOS, by design, any DOS program should ‘just run’ on FreeDOS.”
“I think we have a good community among developers and users,” Hall added.
“We try to keep things civil on the mailing lists, and avoid flamewars. Whenever one pops up, I’m glad to say that someone always steps in to calm folks down. Sometimes that’s me, but usually someone else gets there first.”
As a result the project has avoided the toxic environment that some open source projects have become notorious for.
“We welcome anyone who wants to use FreeDOS,” Hall said. “You don’t have to be a developer or a DOS expert; if you’re interested in using FreeDOS, we’re happy to have you! Because of that, we’ve seen new people join FreeDOS. And they aren’t always running FreeDOS in an emulator or a virtual machine. Some of them are resurrecting old PCs, and they run FreeDOS on them. That’s great!”
FreeDOS can be downloaded from FreeDOS.org.