WHAT IS FREEDOS? 3/18/00 The FreeDOS Project started in 1994, when Microsoft announced plans that it would no longer support DOS. Why would Microsoft, a dominate force in the DOS world, do such a thing? Because the world was moving to Windows, they said. This was about a year before the release of Windows 95. I was a student at the time. Most of my work, if not all of it, was done using DOS and DOS applications. I had, you might say, a certain investment in the DOS platform. I did not own a computer that was capable of running Microsoft Windows (I had a very low-end '386 for desktop work, and an 8088 ``portable'' for work on-the-go), and as a physics student, I only needed my computer to run word processing applications, spreadsheets, and data analysis programs (most of which I would write myself.) Microsoft's announcement that they would stop supporting MS-DOS was a great shock to me. It struck at the very core of how I used a computer to do work. Others felt much the same way. I was a member of several newsgroups that discussed MS-DOS. When Microsoft declared that DOS was dead, many on these newsgroups asked what was to become of DOS. Would the command line go away forever? Would we be forced to migrate to ``GUI'' applications, and do everything using a mouse instead of a keyboard? This was not a pleasant prospect. By this time the '486 was quite common (and the Pentium had hit the market) and more than capable of supporting Microsoft's next version of Windows. But that wasn't the point. We all still used DOS, and thought it was great. Why kill it? From this unrest, the idea of FreeDOS was born. To see exactly why we started the FreeDOS Project, you must go back a few years even before FreeDOS, to 1991. Linus Torvalds had released the first version of his new PC-based UNIX kernel for the '386. This was Linux, which quickly grew in support, so that by 1994 Linux was more than just an experiment in writing a UNIX kernel for the '386 CPU. So many people had found it useful, not to mention interesting, that there were already a large set of programs that had been ported to the Linux kernel. And not just small utilities. The gcc compiler and GNU Emacs were among them. A version of X Windows, called XFree86, was already available under Linux, along with a host of useful utilities. In 1993, I had purchased a Linux distribution called SLS Linux, and I installed it on my little '386. Immediately, I was impressed. Here was a fully functional UNIX system right on my desktop. It was freely available (even though I had purchased my copy, since I didn't want to create my own install disks or copy a hard drive image from someone else) and freely distributable (under the terms of the GNU GPL.) The source was available, so you could fix your own bugs. People from all over the world were submitting patches and updates to the software, so that as time went on, the quality of the software only improved. I was amazed. A loose collection of hackers had been able to create and sustain a software project that reproduced a UNIX system. So in 1994, when Microsoft announced the death of MS-DOS, it really didn't seem odd at all to suggest that we write our own version of DOS. Surely, if hackers had been able to write their own UNIX system, we should be able to write our own DOS. In July 1994, I posted the FreeDOS Manifesto, which really launched the project into public awareness. Interest caught on, and within days I received email from hackers around the world who were interested in contributing to this new, free version of DOS with source code available. Quickly, we began collecting software that reproduced the functionality of MS-DOS, and in time Pat Villani found the FreeDOS Project and contributed his kernel, DOS-C, which was a working DOS kernel he had written a few years earlier for embedded systems. DOS-C was still buggy, but it worked. That was six years ago. Quite a lot has happened to the project since then. Today, we have a working DOS kernel, which is getting better mainly due to the efforts of kernel hackers John Price, James Tabor, and Steffen Kaiser. We have a command.com shell that is a vast improvement over MS-DOS command.com, and various utilities that rival or exceed MS-DOS in terms of functionality and ease of use. If only Microsoft had taken the route that we had taken in writing our utilities--concentrating on making the utilities meaningful, useful, and centered on the user--MS-DOS might still be around today. I think we have a terrific DOS system! A few others have tried to get into the ``free'' DOS arena. Caldera is the one with the biggest name. I think they tried to give it their best shot, but they were ultimately encumbered by trying to make a profit. I am the first to admit that people are not much interested in buying an operating system that was cutting edge ten years ago. The place where you can sell DOS at a profit is the embedded systems market. But Caldera could not make it in this market, and their DOS went from an ``open source'' model (OpenDOS) to a ``closed source'' model (DR-DOS). And once their DOS no longer made the source code available, it died. FreeDOS, however, has always been about keeping the source code available to all. Most of our utilities and programs are distributed under the GNU GPL, which gives you certain rights, including the right to view and change the source code. Those FreeDOS programs that are not under the GNU GPL are under a similar license that allows developers to make changes to the code to improve it. Where will you find FreeDOS today? Look for anyone who is using Linux DOSEmu, which allows you to run DOS programs from within Linux. DOSEmu is actually an emulated PC environment that allows a DOS kernel to boot up and execute programs. FreeDOS is often used by Linux users who need to run legacy DOS applications. (When I first started using Linux, I used DOSEmu to run WordPerfect and Lotus 1-2-3.) But it's not just DOSEmu that can run FreeDOS. VMWare, plex86, and MacBochs are all PC emulators that will allow you to boot up a copy of FreeDOS from within Windows NT, Linux, or the Macintosh. FreeDOS is also used quite frequently in the embedded systems market, where the size of the operating system still counts, and a DOS-based system is still the best way to create an embedded application. There are several examples of good embedded systems that use FreeDOS. One of them is a project simply referred to as ``The Box'' built by John Price. Details of The Box are not available, but this is simply a single-board computer (``SBC'') that boots up using the FreeDOS kernel, and executes a program. The embedded program takes its input from several keys on the front of the device, which actually are wired to the parallel printer port, where the program actually reads the data. Other examples of embedded systems would be a device to control a robotic arm to load/unload platters in a WORM array, an information kiosk, and a car-based mp3 player. Similar to the embedded market is the ``DOS on a floppy'' market. Often, a vendor releases a hardware product that can be supported on several PC-based operating systems: BSD, Linux, Windows, and Windows NT (for example.) However, if that hardware contains a BIOS that may need to be updated or ``flashed'' at a later date, how do you bring the BIOS update to all the operating system platforms under which the hardware may be in use? The simple answer is to use DOS. Create a floppy that boots up with a DOS kernel, executes the BIOS update, and exits. The vendor writes the BIOS update, but still requires a DOS kernel to boot the system. For these applications, FreeDOS is a perfect fit. It boots on all PC hardware, and is available with no license fees! Even better, if the vendor finds that the kernel is missing some DOS interrupt that is required for the BIOS update, the vendor can add that interrupt himself to better support the program. You can't find that level of flexibility in a commercial, ``closed source'' DOS system. FreeDOS is also used in schools. DOS is an excellent operating system to teach a child to learn how to use a computer. The commands are simple and can be learned quickly. Our FreeDOS distribution comes with editors, compilers, assemblers, and linkers that provide the tools needed to learn computer programming. And DOS runs on old hardware. Note that today's operating systems (Windows and Linux included) requires at least a '386 CPU and 8MB memory. However, FreeDOS still runs on an 8088 or '286 in only 640k memory. This makes FreeDOS an ideal choice for schools with small budgets for technology. Where will FreeDOS be in the next few years? The future is difficult to predict. However, FreeDOS is adding multi-language and multi-cultural support to its programs and utilities. So it is a safe bet that we will see more users in non-English speaking countries begin to adopt FreeDOS as a computing platform. I think FreeDOS will also continue to thrive in the embedded market. Already, we are seeing companies drop out of the embedded DOS market because embedded system manufacturers are increasingly unwilling to use a closed system in their products. FreeDOS is filling the gap nicely in these areas. Look for more FreeDOS-based embedded systems in the months ahead. But the FreeDOS Project will always be focused on making DOS an approachable yet powerful operating system. FreeDOS is nothing without its support in the hacker community, and we will survive based on the strengths of the programming abilities of the people who use it. The more hackers who use FreeDOS, the better it will become. ____________________________________________________________________ You can download FreeDOS from http://www.freedos.org Jim Hall is the founder of the FreeDOS Project. He lives in St. Paul, Minnesota (USA) and can be reached at jhall1@isd.net.