Celebrating 30 years of FreeDOS


June 29, 2024, marks an important anniversary for the FreeDOS Project. FreeDOS is now 30 years old!

Not many open source projects have been around quite that long. Richard Stallman’s GNU Project dates to 1983, Linus Torvalds released the first Linux kernel in 1991, and Netscape became the open source Mozilla web browser (later Firefox) in 1998. While FreeDOS is not a large project like Linux, GNU, or Firefox, we’re still proud of the work we’ve done with FreeDOS over the last 30 years.

A look back at DOS

For its time, DOS was a powerful operating system for the then-new IBM Personal Computer 5150 computer, and later “IBM-compatible” PCs. The first version of DOS was called PC-DOS, provided by Microsoft – although it was actually purchased from Seattle Computer Systems and further developed into PC-DOS, and later as MS-DOS.

MS-DOS provided a flexible command line that I found useful to manipulate my files, especially text files. But DOS was so much more than just a command line. Software vendors provided lots of third-party DOS applications and games, which I used all the time as a student.

At first, I used the most popular DOS applications: WordPerfect to write class papers, Lotus 1-2-3 to analyze lab data, and so on. Later, I discovered a new concept called shareware where you could try applications before buying them – and they were often available at a fraction of the cost of the popular DOS applications. I found a shareware word processor called Galaxy Write that I found easier to use than WordPerfect, a shareware spreadsheet called As Easy As that did the job of Lotus 1-2-3, and a shareware terminal program called Telix that let me dial into the university’s computer network.

screenshot: Writing a paper in Galaxy Write
screenshot: Analyzing physics lab data in As Easy As

And I played a ton of shareware games. I would argue that shareware changed the DOS gaming landscape, making it easy to explore new games and try them out. You could usually play the first few levels or maybe the first full “episode” before you had to buy the full version of the game. I loved playing Commander Keen, Wolfenstein 3D, DOOM, Jill of the Jungle, Epic Pinball, and so many others.

screenshot: The first level of Commander Keen

I knew about this other operating system that Microsoft was touting, called Windows. But at the time, Windows was slow and unreliable. A poorly behaved Windows program could cause the entire system to slow down or crash. Things improved a bit in Windows 3 and Windows 3.11, but I still didn’t think much of Windows. I preferred using DOS. Windows was essentially a graphical “shell” that ran on top of DOS, so I didn’t see the point of running something extra when DOS did everything I needed.

And I could still use DOS, at least for a while. Around 1994, Microsoft announced that the next version of Windows would not use DOS. With the new Windows, DOS would be “dead.”

Creating an open source DOS

I didn’t want to be forced to use Windows. I figured if the new Windows “4.0” or “3.2” would be anything like Windows 3.11, I would rather keep using DOS. By this time, I’d already discovered an “open source” Unix system called Linux, and installed it on my computer at home – dual-booted with DOS. I really liked Linux, and loved that the source code was available to me. I learned a lot through exploring the source code and writing my own versions of programs. In the process, I also wrote a lot of my own DOS tools and command line utilities that enhanced the DOS command line experience.

I realized that if programmers around the world could work together to create Linux, surely we could do the same thing with DOS. I asked around on a public discussion board called Usenet if anyone was working on an open source DOS. No one was, but folks thought it was an interesting idea. So on June 29, 1994, I made an announcement about a new DOS:

ANNOUNCEMENT OF PD-DOS PROJECT: 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 James….@uwrf.edu

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

I thought “PD-DOS” was a good name to start with. “PD” was short for “Public Domain,” because I thought public domain meant creating a version of DOS that anyone could use. And the name mimicked other DOS versions at the time, like MS-DOS, PC-DOS, and DR-DOS.

However, it didn’t take long before I realized that what we were actually trying to create was free software like the GNU Project was doing with Unix. I even used the GNU General Public License for many of my early programs. We soon changed the name to “Free-DOS,” although we later dropped the hyphen to become “FreeDOS.”

Growing the project

I started by sharing the DOS tools that I had created for myself. Many of these reproduced and expanded on the DOS commands, such as my own version of CLS, DATE, DEL, FIND, HELP, and MORE. I also borrowed from the Linux command line to add Unix-like tools including TEE and TRCH (a simple implementation of Unix tr).

By sharing my programs, I gave other developers a starting point. And by using the GNU General Public License, I made it easy for others to add new features and fix bugs.

Other developers saw this new “FreeDOS” taking shape, and contacted me to help. Tim Norman was one of the first people to reach out to me, volunteering to write a version of the COMMAND.COM shell, which we later called FreeCOM. Others also contributed their own utilities that replaced or expanded the DOS command line, including Paul Vojta’s DEBUG and COMP programs. We also looked through archives of public domain DOS programs to find other tools, such as a cool program called SPOOL that replaced the DOS PRINT printer spooling feature.

We released our first Alpha version within a few months. By the time we released Alpha 5, FreeDOS had grown to over 60 utilities and tools, including features that traditional DOS lacked such as Internet connectivity with PPP dial-up and dual-monitor support with VGA and Hercules displays.

We welcomed everyone to contribute to FreeDOS. Thanks to Pat Villani, we had our first kernel in 1998 – Pat was an embedded systems developer, and had created a portable DOS kernel called DOS/NT that he used to develop new programs. DOS/NT became DOS-C, and later renamed the FreeDOS Kernel.

FreeDOS 1.0 released in 2006, and development slowed after that. MS-DOS had stopped being a “moving target” in 1995 when Microsoft released Windows95, and once we reached parity with MS-DOS, things didn’t need to change that much except to fix bugs or add new features. And that didn’t need to move as quickly. We released FreeDOS 1.1 in 2012, FreeDOS 1.2 in 2016, and FreeDOS 1.3 in 2022.

It takes a community

Today, FreeDOS is a very modern DOS. We’ve moved beyond “classic DOS” and include lots of development tools such as compilers, debuggers, editors, and assemblers so everyone can create new DOS programs. FreeDOS supports networking and a ton of extra tools and utilities, including many Unix-like commands that should help Linux users ease into their first experience with FreeDOS.

FreeDOS got where it is because developers came together in the spirit of openness to create something new. We collaborate by fixing bugs, adding features, and discussing new things to work on. We always treat users as co-developers and find ways to include everyone in ways that meet their comfort level: writing code, translating languages, writing documentation, testing programs … the list goes on.

As we look back on 30 years of FreeDOS, and ahead to more years to come, I want to thank everyone who currently contributes or has contributed to FreeDOS is what it is because of a ton of dedicated people like Pat Villani who wrote our first kernel, and others who maintained the kernel since then, including Bart Oldeman, Tom Ehlert, John Price, Jeremy Davis. And people like Tim Norman, M. Hannibal Toal, Eric Auer, Aitor Santamaria, Tom, Paul Vojta, Joe Cosentino, Shaun, Till, Martin, Arkady, Bernd, Charles, Eduardo, Rene, Dave, Mike, Imre, Louis, Fritz, Jim Tabor, Jason, Jerome Shidel, Ron, Lucho, ror4, Steffen, Wilhelm, Rugxulo, Mateusz Viste, Gregory Pietsch, Ralf Quint, and the many many others who have created programs, fixed bugs, wrote documentation, translated messages, and did all the other things necessary to keep an open source project moving forward.

Our community may be small compared to larger projects like Linux, but we’re very engaged. I encourage you to download FreeDOS and give it a try. You can also join our community by subscribing to either the freedos-devel or freedos-user email lists.