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