Tuesday, June 13, 2017

All FreeDOS distributions

They say that for any open source software project to get traction at the beginning, it needs to release early and release often. And that's just what we did when we started the FreeDOS Project.

You probably know the backstory: throughout the 1980s and early 1990s, I considered myself a "power user" of MS-DOS. I liked the flexibility of the command line. I had a bunch of applications that helped me do my work. And I'd even written some of my own utilities to expand the MS-DOS command line. So I was upset to hear in early 1994 that Microsoft would soon end support for MS-DOS; the next release of Windows would do away with the venerable DOS. So I decided to write my own DOS.

I announced the project on June 29, 1994. Others soon joined the effort, and we formed the FreeDOS Project.

Our first goal was to identify the functionality of MS-DOS that we wanted to replicate. Once we had a list of commands and features, we began searching for free software and public domain tools to fill those needs. We found several, including a neat replacement for PRINT called SPOOL, which operated in the background to print to the line printer when the computer was less busy. For those commands where we couldn't find existing tools, we wrote our own. Tim Norman was one of our first contributors, and started work on a free replacement for the COMMAND shell, later dubbed FreeCOM.

Once we had a core set of utilities, we released our first FreeDOS Alpha Distribution on September 16, 1994.

We didn't have a kernel yet, so "FreeDOS" at this point was still incomplete; you needed a copy of MS-DOS to use as the kernel. But the Alpha release got the attention of other DOS developers, who soon contributed new features and new commands. I don't have an exact date for our next Alpha, but looking at our email list archives at MARC.info suggests we released our FreeDOS Alpha 2 Distribution in very late 1994. I'll assume December 1994.

From there, we attempted regular releases of the FreeDOS Alpha. We released the FreeDOS Alpha 3 Distribution shortly after, in January 1995. A few months later, we made the FreeDOS Alpha 4 Distribution. From a FAQ posted to Usenet, and an archived FreeDOS announcement, I can place the Alpha 4 to after May 20 1995 and before June 18 1995. I'll assume June 1995.

Our next two Alpha releases took a while to get out the door. We were starting to grow as a community, and things were stabilizing. A little over a year later, we released the FreeDOS Alpha 5 Distribution on August 10, 1996. And more than a year after that, we made the FreeDOS Alpha 6 Distribution in November 1996.

All through the Alpha releases, we were missing something: there was no "installer" for FreeDOS. To update an existing FreeDOS system, you had to manually transfer the new kernel to the system using SYS, then unzip the entire Alpha package to your computer. To install FreeDOS Alpha on an empty computer required a few more steps:
  1. Boot the computer using a floppy, with the new kernel.
  2. Create a FreeDOS partition using the FDISK program.
  3. Add a DOS filesystem using FORMAT.
  4. Make the system bootable with FreeDOS using SYS.
  5. Extract the entire Alpha bundle to your new C: drive using UNZIP.
That last step required several floppies, if you used floppies, as the FreeDOS distribution was now larger than a single 1.44MB floppy disk.

We needed to make FreeDOS easier to install, which meant we needed an automated install program. So I spent a few weekends writing one.

Our first installer wasn't very pretty. It simply automated the setup steps via a Batch file, then ran the install program to let you select what "packages" and "package sets" you wanted to install on your system. It didn't use console menus, just scrolled text from the bottom of the screen. But it worked. And with this, we had the start of a new FreeDOS distribution.

The new installer deserved a new version scheme. We were still far from "1.0," but with the new installer, we moved from "Alpha" to "Beta."

We created the "codenames" for the Beta releases because we thought it was an interesting "beta-ish" thing to do. I think a number of us were using Red Hat Linux, which also used codenames (like Red Hat Linux 4.96 "Mustang" or Red Hat Linux 5 "Hurricane") and we wanted to mimic what they were doing. Mostly it was just fun. Red Hat Linux connected the codename to the previous codename in some way ("Mustang" was a car and a WW2 fighter plane, "Hurricane" was a WW2 fighter plane and a mixed drink, and so on) but we just assigned a codename from whatever seemed relevant at the time.

I released the FreeDOS Beta 1 "Orlando" Distribution on April 24, 1998, just before I would fly to visit my brother in Orlando, Florida. I thought it would be cool to name the distribution based on that trip. I think I literally uploaded the new release then finished packing so we could fly down the next morning.

A few months later, we released the FreeDOS Beta 2 "Marvin" Distribution on October 28, 1998. The name comes from the old MicroVAX system that we used at the University of Wisconsin River Falls, when I was a physics student and created the FreeDOS Project. Sometime in October 1998, I returned to campus as part of an alumni event, and learned that the university had finally decommissioned the last of the old computing system. It had been a venerable system, so I named the Beta 2 release after the system I used so fondly as an undergraduate student.

We fell into a semi-regular update cycle, and released the FreeDOS Beta 3 "Ventura" Distribution a few months later, on April 22, 1999. I live in Minnesota, and we had elected former WWE wrestler Jesse Ventura as our governor the previous Fall, and he assumed office that January. By April, he'd probably done something really dumb, and I probably thought it was funny to use his name as the Beta 3 codename. Ah, for the days when an elected official would only do something really dumb every few months.

Around this time, someone started a discussion on the email list about the FreeDOS Project adopting a mascot. Linux had the penguin, BSD had the daemon, and GNU had the gnu. I thought a mascot would be cool, but I don't think I pushed the idea of adopting an official FreeDOS mascot because I didn't want to get distracted by the noise that would create. As a compromise for myself, I named the next Beta release the FreeDOS Beta 4 "Lemur" Distribution on December 29, 1999 as a way of "adopting" a mascot when we really didn't have one. I always thought lemurs looked cool, although I've never given them Twinkies or grape soda.

I also thought a seal would be a cool mascot. I imagined a seal paired with the Linux penguin. But there was already a desktop system for FreeDOS called SEAL, and that provided the obvious name challenge. FreeDOS eventually adopted a cartoony fish as our mascot. You can read more about Blinky the FreeDOS fish in the Brief history of the FreeDOS logo.

After a bit of a lag, we released the FreeDOS Beta 5 "Lara" Distribution on August 11, 2000. I played a lot of Tomb Raider on the Playstation in the late 1990s. I think the "Lara" codename came about because I was really looking forward to the upcoming Tomb Raider Chronicles game (later released in November 2000). They advertised this as the last Tomb Raider game in the series, so I probably memorialized it in the Beta 5 codename. The title character in Tomb Raider is Lara Croft.

The next Beta release also marks a sad time for me. Our beloved cat Midnight died in March 2001, during the run-up to the next release. I named the next Beta after him, as the FreeDOS Beta 6 "Midnite" Distribution on March 30, 2001. I changed the name slightly so I didn't get sad every time I looked at the codename.

Around this time, I got a big promotion at the office. I worked for the University of Minnesota, part of the Enterprise Operations and Infrastructure team in the Office of Information Technology. I didn't have as much free time to assemble the FreeDOS distributions, so I passed the distribution maintainer role to someone else. We released the FreeDOS Beta 7 "Spears" Distribution on September 8, 2001. I'm not completely sure about the origin of the name. I think this had something to do with Britney Spears. Her self-titled album Britney would be released in November 2001, and in September 2001 we would have heard a ton of her music on the radio to advertise the upcoming album. So we probably had that on our minds when we picked the codename.

Jeremy Davis posted the next version of FreeDOS, releasing the FreeDOS Beta 8 ("Nikita") Distribution on April 7, 2002, and the FreeDOS Beta 8 H1 ("hot release 1") Distribution a few months later on September 15, 2002. I'm not sure where the "Nikita" name came from.

We changed distribution maintainers again for the next version. Bernd Blaauw didn't think we were ready yet for a Beta 9 version, so the next release was instead a release candidate. Bernd released the FreeDOS Beta 9 "Methusalem" RC1 Distribution on July 19, 2003. I suspect the codename came about because the Bible says Methusalem lived the longest at 969 years old, and Bernd might have been making a joke at how long DOS had been around.

After the Beta 9 RC1, we decided the codenames thing had run its course, so we stopped giving cute names to releases. The FreeDOS Beta 9 RC2 Distribution on September 1, 2003 was the first since the FreeDOS Alpha releases not to have a codename.

We sort of crawled our way towards the inevitable "1.0" by increments. I think everyone pretty much realized that the "1.0" release would be a big deal, and we wanted that version to be as perfect as we could make it. We weren't satisfied with broken functionality, so each new distribution was a tiny step forward. We walked our way through the Beta 9 release candidates in several stages: the FreeDOS Beta 9 RC3 Distribution (September 28, 2003), the FreeDOS Beta 9 RC4 Distribution (February 5, 2004), and the FreeDOS Beta 9 RC5 Distribution (April 20, 2004)

With five release candidates, we felt ready to finally release the FreeDOS Beta 9 Distribution on September 28, 2005. Although we made some "service release" updates to the Beta 9 soon after: the FreeDOS Beta 9 SR1 Distribution on November 30, 2004 and the FreeDOS Beta 9 SR2 Distribution a year later on November 30, 2005.

Yes, we'd taken about three years to go through the Beta 9 cycle. That's a long release, but we wanted to take our time before the official "1.0" release. And the following year, we finally felt FreeDOS was ready! We released the FreeDOS 1.0 Distribution on September 3, 2006.

The "1.0" release was a big deal. Every software project considers the "1.0" release to be a major milestone. It's when you decide everything is stable, ready for prime-time. And certainly everyone noticed! If you check our FreeDOS History page, you'll notice a lot of news coverage around the "1.0" release.

But after we had "1.0," what to do next? We'd mostly achieved parity with MS-DOS. You could run pretty much any DOS program on FreeDOS, except some versions of Windows. And MS-DOS compatibility wasn't a moving target. So many of us didn't feel much need to create an update to the FreeDOS distribution for some years.

It would be almost six years before the next version of FreeDOS. We posted the FreeDOS 1.1 Distribution on January 2, 2012. Technically, the release was ready on December 31, 2011 but that's New Year's Day, and we didn't want to make a major release on a holiday. So we waited a day before I released it on the website. But because we had transitioned our FreeDOS News system to use GMT time, not local time, the news item was stamped with a January 2, 2012 date. Ah well.

A few years later, and we'd started to collect enough updates to the FreeDOS core system that we decided to make a new FreeDOS release. But I wanted "1.2" to be more than a simple package update. I decided that our install program was very outdated. We'd continued to make updates to it since the Beta 1 distribution in 1998. I thought we should re-write the installer to reduce the number of steps to install FreeDOS. Jerome Shidel volunteered to write the new installer, based on a set of Batch script power tools. Jerome's "V8" tools created a whole new install process, basically one smart Batch program.

Jerome made many "pre-release" FreeDOS distributions, ending with a series of two official release candidates before a final "1.2" version.

This time, we decided to follow a holiday release cycle. Jerome released the FreeDOS 1.2 RC1 Distribution on October 31, 2016 (Halloween) and the FreeDOS 1.2 RC2 Distribution on November 24, 2016 (US Thanksgiving).

After much testing, and to much press coverage, we finally released the FreeDOS 1.2 Distribution on December 25, 2016 (Christmas).

And that brings us to today! What's next? We haven't had an official discussion yet, but a few of us are starting to think about the next version. We aren't sure if the next release will be called "1.3" or "2.0."

But we do know the next version will remain 16-bit, with the focus on a single-user command-line environment, just like classic DOS. FreeDOS can't be "DOS" if we change that. The next version will continue to run on old PCs (XT, '286, '386, etc) but will support new hardware with expanded driver support, where possible. However, direct support for UEFI systems may be tricky (or impossible).

If you're interested in contributing to FreeDOS 1.3 or 2.0, whatever we end up calling it, please join the conversation on the FreeDOS email list.

No comments:

Post a Comment