91探花 recently caught up with Jim Hall 鈥 founder of an open source version of the 1980s/90s DOS operating system 鈥 discussing how the project started, why it鈥檚 remained so popular, future plans and more鈥

听
What Is FreeDOS?
听
FreeDOS is an open source version of the DOS operating system from the 1980s and 1990s. 鈥淥pen Source鈥 means all of the source code for FreeDOS is available for anyone to examine, so they can learn from it, or make changes to it, or even use it to make another program. Our programs are available under the GNU General Public License, BSD License, MIT License, or another open source software license.
FreeDOS is very compatible with MS-DOS. Pretty much any program that ran on MS-DOS will run on FreeDOS.
听
How Did FreeDOS Start up? What Was the Inspiration Behind It?
听
We started FreeDOS in 1994. A little history helps here. I grew up with computers. We had an Apple II in our classroom at school, and my brother and I became interested in computers that way. I taught myself BASIC programming by reading books and making my own experiments. I liked to write little games and math puzzles.
Later, we upgraded to an IBM PC, and that was where I first learned DOS. I thought DOS was a much more powerful environment. Even though the command line was still primitive, I learned how to use the different commands on the system to get around and manage files.
Over time, I learned about C programming on DOS, and wrote my own DOS programs. I created more powerful and flexible DOS utilities that replaced the standard DOS commands, and wrote other DOS utilities that enhanced my DOS command line experience.
I used DOS as my primary operating system until I went to university. I was a physics student, but I spent a lot of time in the university computer lab, where I learned about Unix. I thought Unix was a pretty neat idea. It had a command line that was familiar to me, yet more powerful than DOS. Later in 1993, I decided to upgrade my computer, and I chose a free version of Unix called Linux. My first Linux distribution was SLS Softlanding Linux System.
But in 1993, Linux didn鈥檛 have a lot of applications. I still needed to boot back into DOS to write papers with a DOS word processor, and to analyze my physics lab data with a DOS spreadsheet. So even though I was using Linux, I still ran DOS much of the time.
In 1994, I started seeing a lot of articles in tech magazines that Microsoft planned to do away with MS-DOS. The next version of Windows would 鈥渒ill鈥 MS-DOS. I had used Microsoft Windows 3.1, and I didn鈥檛 like it very much. It was slow and seemed to crash a lot. If Windows 3.2 or 4.0 (I didn鈥檛 know the next version would be called Windows95) was going to replace MS-DOS, then I decided the only path was to create my own version of DOS. And that鈥檚 what I did.
I reasoned that if others could create an open source version of Unix (as Linux) by sharing source code and working together over the Internet, then surely we could do the same with DOS. After all, DOS is a much simpler operating system than Unix.
So I announced on June 29, 1994, that I was starting a new project to create an open source version of DOS. I bundled the DOS utilities I鈥檇 written, the ones that replaced standard MS-DOS commands, and shared it on an FTP site. Back in the 1990s, 鈥淔ile Transfer Protocol鈥 or FTP was the standard way to share things. Then others joined in, and shared programs they had written to replace and enhance other parts of DOS. And I looked on popular FTP sites and found other programs that replaced parts of DOS. And everything was open source. We all used the GNU General Public License or a similar open source license.
We continued working together to create our own version of DOS. Because everything was open source, others could see our source code and contribute new features or fix bugs. The 鈥淔reeDOS鈥 project came together very quickly. A developer named Tim Norman contributed a replacement for the DOS command interpreter, and Pat Villani contributed his DOS-compatible kernel. And the rest is history.
听
More from Interviews
- A Chat With James Clark, Partner At Spencer West LLP On What Digital Regulation May Look Like Under An Andy Burnham Government
- Product Market Fit: Early Green Flags And Where To Look
- A Conversation With Brennen Lawrence, Co-Founder And CEO At Proofly On The Next Evolution Of Claims Readiness
- A Chat With Liam Houghton, Founder & CEO of Popsa On What The Next UK Government Needs To Do To Best Support Startups
- A Chat With Richard Kersey, Founder And Chief Architect Of Chirpper On What People Are Missing With The 鈥淒ead Internet Theory鈥
- A Chat With Paul Beare, Founder Of Paul Beare Ltd On UK Companies Going International
- Get To Know Taiwo Akinropo, Founder And CEO At Heyfood And MENA40 Judge
- A Chat With Obinna Umeh, Co-Founder And CEO of Growwr And MENA40 2026 Judge
听
Why Work on DOS in 2021?听
听
We still work on DOS in 2021 for a few reasons. I guess the first reason is that DOS is still interesting. We鈥檝e added a lot to FreeDOS over the years. Where the original MS-DOS had a limited set of commands, FreeDOS includes dozens of useful utilities and tools, including editors, compilers, assemblers, games, and other neat programs.
But it has to be more than just an interesting hobby. I find that working on FreeDOS makes for a very interesting programming challenge. In modern systems like Linux, you can take advantage of a lot of memory at once, and you can address it all in one big block. As a result, many programmers will load a lot of libraries and other code to create their project. This is a very easy way to build a complicated project. You can build a very complex system in a very short time this way. And for many systems, time to market is the most important factor.
Loading a bunch of libraries and other code blocks is very inefficient, however. You may have the same basic functionality implemented half a dozen ways across the different libraries, because each library implements something their own way. So your code grows and requires more memory.
Maybe that鈥檚 not a problem on a desktop PC. I run Linux, and my modern desktop PC has 32GB of memory. Loading a bunch of stuff into memory isn鈥檛 a problem. But on a shared server, where you might have multiple instances of that project running, you鈥檒l quickly run into memory limitations. How many instances can you run at the same time on a server? That 32GB of memory starts to look pretty slim.
You can鈥檛 load all of that into memory on a DOS machine. To remain compatible with original DOS, FreeDOS has all the limitations of DOS. When MS-DOS was popular, a powerful PC might have had 4MB, 8MB or even 16MB of extended memory. But the computer only had 640kb of 鈥渕ain鈥 memory, due to how DOS addressed memory. And that鈥檚 megabytes and kilobytes, not gigabytes. A kilobyte is a thousand bytes (the basic unit of memory). A megabyte is a thousand kilobytes. And a gigabyte is a thousand megabytes. So today鈥檚 computers have memory that is about 1,000,000 more than a DOS computer.
By programming on a limited system like FreeDOS, you constantly have to think about the tradeoffs. How much memory does my program really need to do its job? Is it faster to read a file into memory to work on it, or process the file one bit at a time? And you鈥檙e always keeping in mind what libraries and other code you use in your program. A DOS program can only be so big, so you need to be careful about how you write a DOS program.
When you write DOS programs all the time, you get really good at optimizing a program. You think about programming in a different way, because you鈥檙e always considering how to do something more efficiently. That鈥檚 a challenge, but an interesting one.
听
FreeDOS Turned 25 a Couple Years Back, Why Do You Think It鈥檚 Remained So Popular for So Long?
听
For any open source project to go this long, you have to have a healthy community. And I think the people who participate in FreeDOS are a great community!
We communicate with each other via an email list. And it鈥檚 rare that we have 鈥渇lame wars鈥 on the email list 鈥 that鈥檚 where people argue about something, usually resulting in hurt feelings. That just doesn鈥檛 happen very often in the FreeDOS email list. We have a code of conduct for our email lists, but I think folks just aren鈥檛 into starting fights on the email list. We get along really well most of the time.
But I think for a lot of people, FreeDOS is an interesting hobby. Long ago, we decided that FreeDOS shouldn鈥檛 just be a one-to-one replacement of MS-DOS, but should aim to be a modern DOS. And I think the current FreeDOS 1.2 (and the upcoming FreeDOS 1.3) are representative of a more modern DOS 鈥 within the limitations of a 16-bit single-tasking command-line operating system. FreeDOS can do more than MS-DOS could at its peak, and includes tons of more utilities. Where MS-DOS only ever provided a BASIC interpreter to write small programs, we include a collection of compilers and assemblers for different programming languages. We include games so you can play classic-era DOS games 鈥渙ut of the box,鈥 and we provide utilities that extend the functionality of 鈥淒OS鈥 to feel more like a modern computer operating system.
听
Are There Any Future Plans for FreeDOS You鈥檇 Like to Share?
听
We are always working on the 鈥渘ext thing鈥 in FreeDOS. Right now, we鈥檙e planning the upcoming release of our next distribution, FreeDOS 1.3. Much of the 鈥渃ore assumptions鈥 about FreeDOS remain the same in the new release: Compatibility is key, FreeDOS 1.3 will remain 16-bit, FreeDOS 1.3 will retain focus on a single-user command-line environment, FreeDOS 1.3 will continue to run on old PCs (XT, 鈥286, 鈥386, etc) but will support new hardware with expanded driver support (where possible), and the 鈥淏ase鈥 package group will contain everything that replicates the functionality from MS-DOS.
But we鈥檙e also adding a number of neat features. The biggest new feature is that the install CD-ROM is now a live image. That means that you can boot and run FreeDOS without actually installing it 鈥 you can run it right from the CD-ROM. It鈥檚 a little slower that way, but works quite well.
Like previous versions of the FreeDOS distribution, we鈥檙e doing several rounds of 鈥渞elease candidates鈥 before we make the final distribution. We鈥檙e planning to release the FreeDOS 1.3 Release Candidate 4 in a few weeks, and hope to go for the final version after that.
You can learn more about FreeDOS at
Also check out our YouTube channel at
