Jim Hall WHAT A RIDE: A HACKER'S HISTORY OF FREEDOS When it comes to starting a free software project, I was an unlikely candidate. When I began the FreeDOS Project in 1994, my computer experience was fairly limited. As a physics student at the University of Wisconsin-River Falls, I wrote simple programs to analyze lab data, and of course I used a computer to write papers and do further lab analysis. The bulk of my programming experience came during an internship at a lab, where one of my assignments was to convert an old FORTRAN-IV program from an HP-1000 minicomputer to FORTRAN77 for use on a Macintosh computer. My primary computing platform back then was MS-DOS, running on a '386. I really enjoyed using DOS. The operating system was easy to use, ran well on my little '386 with only 2MB memory, and was rock solid. Along the line, I picked up an 8088 laptop so I could do computer work when I was away from my desktop. The only operating system that would run on my 8088 was DOS, but I would have used it anyway. I ran everything from DOS: word processing, spreadsheets, connections to the university dialup network, data analysis, lab simulations, and computer programming. As far as I was concerned, DOS was a great operating system. So it was a shock to me in 1994, when Microsoft announced it was going to stop supporting MS-DOS in favor of a new version of Windows. This was about a year before Windows 95 hit the shelves. Microsoft, it seemed, had abandoned its DOS roots! And I wasn't the only one who was surprised. A lot of people on the DOS newsgroups that I subscribed to were complaining about being forced to a platform they didn't find very easy to use. Quickly, people asked for alternatives. Would there ever be a "free" DOS, ala Linux? If the Linux hacker community had succeeded in writing their own UNIX system, then surely we should be able to write a DOS kernel? Unfortunately, no one seemed willing to take on such a project. After a few more weeks, it became clear to me that the momentum to start a free version of DOS would be lost. So, I posted my idea to start a project that would reproduce DOS, with source code available to all. I wish I'd kept that original email. All I can remember about that email was that the content eventually turned into the FreeDOS Manifesto (back then it was just called "PD-DOS".) manifesto1.txt There were a few problems with the original Manifesto. I didn't spell out what platforms we'd run on and I didn't mention anything about the GPL, mainly because I didn't realize that those things were important. But this description of a free DOS was enough to attract attention. People were interested! A few people started writing code, and Tim Norman created a COMMAND.COM replacement. I wrote a few utilities myself, but my C programming skills still weren't very strong. To make up for my lack of programming expertise, I scanned several DOS archive sites and found a few DOS programs that I thought would be useful in reproducing the functionality of MS-DOS. We planned to do more than reproduce MS-DOS: we planned to extend it! SPOOL (a rather cool TSR that did background print spooling, and only ran when your I/O was idle) was a step above MS-DOS PRINT, Tim's COMMAND.COM was supporting the basic features of DOSKEY, and my own DOS utilities were stuffed full of options that I never thought I'd need. (Later, I removed a bunch of my options, because it made the code really hard to maintain.) Our goal was to write a free version of DOS for the PC, yet I saw several posts on newsgroups that seemed to diverge from that objective. Among other things, people suggested that our DOS should only run on 32-bit CPU's ('386 and above), that we should no longer support the PC-XT and PC-AT. I had watched another free DOS project start up with high ideas to do multi-tasking and other things that DOS was never meant to do. That other project died in about six weeks after it became apparent that they had taken on too much. I didn't want our DOS project to die a similar death, so I updated the Manifesto. I changed the name of the project to "Free-DOS" because most of the code we were writing wasn't in the public domain anyway. The software we were writing was most accurately described as a "free DOS:" manifesto2.txt Things sort of snowballed after that. Pat Villani contacted me and offered to release the source to his DOS kernel ("DOS/NT," later to become "DOS-C") under the GPL. That was a big boost to FreeDOS, as it finally meant we had a DOS kernel of our own, even if it was a bit buggy and had poor floppy drive performance. M. "Hannibal" Toal created the FreeDOS web site for us, and he took charge of the project for a while when I started to get too busy at work to maintain FreeDOS any longer. I returned to the FreeDOS project in November 1997. The first thing I realized about FreeDOS after my long absence was that it was still a bitch for first-time users to download and install. I guess it wasn't any worse than Linux had been in its first few years. But I never thought that DOS should be hard to install. DOS is, by far, the simplest operating system still in use. So I wrote the FreeDOS install program. Since then, I have become much more active in the FreeDOS Project. To help others learn how to install and use FreeDOS, I started the FreeDOS Documentation Project. With the addition of my install program, I was able to release FreeDOS software distributions that were more stable and easier to install than in times past. Finally, Hannibal passed maintenance of the FreeDOS web site to me. As time goes on, I continue to remain a strong supporter of FreeDOS. That FreeDOS should remain completely free strikes a key note in me. Software should be free. We should be able to download and distribute software and source code as fits our needs. If we find a bug in a piece of software, we should have the freedom to fix that bug and, if the fix seems useful to others, distribute the fix so that others can enjoy it. As I defend FreeDOS and free software, I sometimes find myself becoming a bit of a zealot. Like Richard Stallman, perhaps this is a risk that comes with the job. What will FreeDOS bring in the future? People will continue to use FreeDOS on their PC's and in PC emulators such as Linux DOSEmu, Mac Bochs, and VMWare. However, I believe the most interesting area of growth will be embedded devices. FreeDOS is already used in this field: a good example is a frequency generator that uses FreeDOS as a user interface. Embedded devices are usually comprised of a small single-board PC. The floppy and hard disk interfaces are part of the board, as is the video and keyboard adapters. An external hard disk, floppy drive, keyboard, and monitor can be connected in a custom configuration to suit the needs of the embedded application. Finally, a small operating system brings the application to life. Linux and Windows CE are vying for a position in the embedded computing market. However, in such devices, memory and disk space come at a premium cost. For these applications, the operating system is too much overhead. DOS, capable of running in under 640k memory and on a 360k floppy, is an ideal solution. Look for FreeDOS to become more prominent in this field. But in the end, the future is always changing. Who can tell where the market will be in three to five years? The key to FreeDOS remaining a popular system in years to come is for us to remain true to our original goals: to create a free version of DOS, with source available to all, so that people may take the software in new directions. -Jim Hall Founder of the FreeDOS project