Then, I saw a discussion thread on the DOS groups asking "hey, why doesn't someone write their own free version of DOS?" Remember, this was about three years after Linus Torvalds announced his work on the Linux kernel, and by 1993 Linux had shown that free software can achieve incredible results. So in 1994, the suggestion that we could write our own free version of DOS, and give it away with the source code so others could work with it and improve it, really didn't sound all that far-fetched.
Unfortunately, no one seemed to pick up the ball. The idea sort of sat there, waiting. I didn't have much experience in writing C or Assembly programs (most of my analytical work in physics was limited to FORTRAN) but I had written some C programs. So I sat down one weekend and hacked out code for a bunch of DOS file utilities. I posted what I had done to the DOS newsgroups, and announced that I intended to form a group on the Internet to write our own free version of DOS.
I took the opportunity to fix some things. There are some things about what Microsoft did with DOS that do irk me. The biggest is that MS-DOS commands lack options, not that there are lots of MS-DOS commands anyway. I wanted to have more powerful tools than what MS-DOS provided me with. So I hacked some of my own. (I wasn't a strong C programmer at the time, so this wasn't very beautiful code.)
There were several "beta" pre-release packages of my stuff:
* 0.10 - contained a few basic utilities, just to get the easy ones out of the way: clear (like CLS), echo, more, rem, type, ver, wait (like Pause)
* 0.11 - added date, test (some do-nothing test program), time
* 0.12 - added choose
* 0.13 - fixes and some cleanup
* 0.14 - added tee (like UNIX 'tee')
* 0.15 - added bgc (sets background color), fgc (sets foreground color), man (like UNIX 'man')
* ...
* 1.0 - clear replaced by cls, man replaced by help, wait replaced by pause, bgc and fgc moved into cls. Added del, find, reboot, unix2dos.
After I'd written over a dozen utilities that replaced MS-DOS commands, and found some public domain source that implemented other functionality, I realized that you could reproduce what MS-DOS does and make it a free software project. So I decided to go for it.
PD-DOS was announced to the world on June 28, 1994. To cement my ideas, I created a PD-DOS Manifesto. By July 24, 1994, the name of the project had officially changed to "Free-DOS", though the name actually switched around July 16, 1994 (the revision date on the manifesto).
It immediately became a popular idea. Within a few weeks, I had several coders from various parts who contacted me, wanted to take on this or that part of the new Free-DOS. Weeks after that, the number had doubled. Within months, I was contacted by Pat Villani, who had already written a functional DOS kernel called DOS/NT, and who was willing to release it under the GNU GPL for us to use! Tim Norman also started work on his version of the Free-DOS command.com, which is the heart of the DOS command line interface. I think the fact that, early on, we had access to a working DOS kernel and command.com really helped get the Free-DOS project in motion.
I can't pinpoint exactly when "Free-DOS" became "FreeDOS," but we have called ourselves "FreeDOS" (without the dash) since sometime in early 1996. The name change has become a bit of a FreeDOS myth: Free-DOS had become so popular, that R+D Books agreed to publish a book about Pat Villani's DOS kernel, entitled The FreeDOS Kernel. Popular belief is that Pat's editor thought the dash wouldn't look right on a book cover, so he dropped it! I stopped using the dash between January 31, 1998 and February 15, 1998.
On September 3, 2006, FreeDOS reached the "1.0" milestone.
DOS will be around for quite some time yet. DOS remains a great environment to work in if you are building an embedded system, for example. The operating system is light, so it will run well in a device that doesn't have a lot of memory. You can burn it into ROM, boot from a floppy, or a small micro-drive. There aren't many operating systems that you can find these days that will boot from a floppy, yet still leave you enough room on the disk for your embedded program and maybe some room for data files.
Want to help us? First, consider joining the mailing lists. If you are a programmer, please also check the software list and see what needs to still be done!