Saturday, June 29, 2019

Celebrate FreeDOS at 25

How are you celebrating FreeDOS on our 25th anniversary? I'm spending the day with family and friends, drinking a beer. I'm also responding to a lot of emails. Thanks everyone for your well-wishes!

Here are a few other ways you can celebrate FreeDOS today:

Buy a FreeDOS 25th anniversary t-shirt! These are available on our FreeDOS store at Zazzle, in mens and womens styles. You can transfer the design to other products on Zazzle, like stickers or coffee mugs or hats. If you prefer a different color t-shirt, you can change that too.

Direct links are: mens t-shirt + womens t-shirt.
Download a free copy of our FreeDOS ebook! We have two of them:

23 Years of FreeDOS (2017) contains the voices of the users who contributed their stories, as well as the history of FreeDOS. Many individuals have helped make FreeDOS what it is, but this e-book represents only a few of them. You can get it in PDF format.

Using FreeDOS (2018) includes how-tos on installing FreeDOS, essays about running DOS applications, and quick reference guides to FreeDOS commands and batch programming. You can get it in PDF or EPUB format.

You can buy a print copy of Using FreeDOS from our publishing partner at Lulu.

Highlights of FreeDOS history

To celebrate the 25th anniversary of FreeDOS, I wanted to share a few highlights of FreeDOS history. You can find a more complete timeline of FreeDOS key events, including the dates of each FreeDOS release, and links to our news coverage - on the FreeDOS History page.

1994
  • First announcement of the FreeDOS Project (then "PD-DOS"). (29 June 1994) ~ comp.os.msdos.apps
  • FreeDOS changes its name from "PD-DOS" to "Free-DOS." (16 July 1994) ~ comp.os.msdos.apps
  • First "Alpha" release: FreeDOS officially releases the Free-DOS Alpha 1 distribution. (16 September 1994)
  • First article about FreeDOS ~ University of Wisconsin-River Falls: UWRF Student Voice (December 1994)
1996
  • First book about FreeDOS: The FreeDOS Kernel by Pat Villani. (6 January 1996) ~ R+D Books
  • FreeDOS drops the hyphen, changes its name from "Free-DOS" to "FreeDOS."
1997
  • First article about FreeDOS in popular press ~ DOS World Magazine (March 1997)
1998
  • First "Beta" release: FreeDOS officially releases the FreeDOS Beta 1 "Orlando" distribution. (25 March 1998)
2000
  • First third-party redistribution: Italian magazine DEV distributes FreeDOS Beta 4 (February 2000
2001
  • First conference talk about FreeDOS (Jim Hall) ~ SSGRR-2001 (August 2001)
2002
  • First third-party book about FreeDOS: The Universal Command Guide by Guy Lotgering ~ Wiley
  • First major PC install: Dell ships FreeDOS install CDs with n-series computers (August 2002)
2004
  • Major milestone: FreeDOS turns 10 years old (29 June 2004)
2006
  • First "1.x" release: FreeDOS officially releases the FreeDOS 1.0 distribution. (3 September 2006)
2012
  • FreeDOS officially releases the FreeDOS 1.1 distribution. (2 January 2012)
2014
  • Major milestone: FreeDOS turns 20 years old (29 June 2014)
2016
  • FreeDOS officially releases the FreeDOS 1.2 RC1 distribution. (31 October 2016)
2019
  • Major milestone: FreeDOS turns 25 years old (29 Jun 2014)

FreeDOS is 25 years old today!

Twenty-five years ago, I had an idea that we could write our own version of DOS and give it away for free. I shared the idea on Usenet newsgroups (the "social media" of the 1990s) and the response was an overwhelming "You should do that."

So on June 29, 1994, I announced a free DOS project that would soon become "FreeDOS":
ANNOUNCEMENT OF PD-DOS PROJECT:
A few months ago, I posted articles relating to starting a public
domain version of DOS.  The general support for this at the time was
strong, and many people agreed with the statement, "start writing!"
So, I have...

Announcing the first effort to produce a PD-DOS.  I have written up a
"manifest" describing the goals of such a project and an outline of
the work, as well as a "task list" that shows exactly what needs to be
written.  I'll post those here, and let discussion follow.

If you are thinking about developing, or have ideas or suggestions for
PD-DOS, I would appreciate direct email to me.  If you just want to
discuss the merits or morals of writing a PD-DOS, I'll leave that to
the net.  I'll check in from time to time to see how the discussion is
going, and maybe contribute a little to what promises to be a very
polarized debate!  :->

I am excited about PD-DOS, and I am hoping I can get a group started!
And twenty-five years later, FreeDOS is still here!

On this 25th anniversary, I wanted to thank all the FreeDOS developers who have helped make FreeDOS happen, and to everyone who keeps FreeDOS going today.

There are too many of you to name, but FreeDOS wouldn't have got off the ground if not for Pat Villani (who wrote our kernel) and Tim Norman (who wrote our FreeDOS command.com shell) and Morgan "Hannibal" Toal (who set up our first website). And I have to recognize John Price, Jim Tabor, Bart Oldeman and Jeremy Davis, who each took their turn as kernel maintainer. Also Steffen, Tom, Blair, Brian, Joe, Bernd, Eric, Florian, Shane, Paul, Raster, Gregory, Alain, Arkady, Mike, Imre, Gregory, Aitor, and Russ for your early and ongoing contributions.

So many people have contributed to FreeDOS in one way or another, especially in recent years as we released FreeDOS 1.0, FreeDOS 1.1, FreeDOS 1.2, and now prepare for FreeDOS 1.3. I'd like to thank Tom Ehlert for his excellent contributions and advice, Eric Auer for his continued work, Rugxulo for his help and conversation, and Jerome Shidel for his outstanding work on rewriting the FreeDOS installer and package system.

I know I could go on forever, so I'll just list a few more names by way of saying "Thank you." Wilhelm, Jack, Dale, Kevin, rar4, Lucho, Charles, and everyone else - you are awesome!

There are lots more people to recognize, and I apologize that I have missed some of you. There are literally too many people to name. FreeDOS is really a community effort, and we would not be here without you.

Thank you to everyone!

Saturday, June 22, 2019

My first FreeDOS utilities

On June 29, the FreeDOS Project will officially turn 25 years old! That's a major milestone by any reckoning, and to celebrate we're making June our FreeDOS celebration month.
Following up on the story of how FreeDOS got started, I mentioned that I wrote my own DOS extensions, and I re-used several of these as the first FreeDOS utilities.

When I made that first release, I made the naive assumption that FreeDOS would likely work in three separate teams: a Kernel team, a Shell team, and a Utilities team.

With that first assumption, I collected several of my DOS-alike commands into a single package called "Util." I assumed we would continue to add other programs to "Util" over time. In fact, everyone contributed their own programs independently; it didn't make sense to follow the "teams" model.

But let's go back and look at the original "Util" release. You can find this at ibiblio.

If the code looks amateurish, please remember that I was still a university physics student when I wrote these. I didn't have any real experience as a programmer. I had taught myself programming, and some of these early programs show that.

Util 1.0 included these utilities:

cls
Used ANSI to clear the screen or set color. For example, cls white on blue would clear the screen and set the text colors to grey text on a blue background. Or cls bright yellow on cyan would do the same with bright yellow text on a cyan background.
date
The standard utility to display the date and allow the user to change it.
del
Erases one or more files or directories. Using /S would recursively delete subdirectories, but would ask first unless you added the /F option.
find
Locates a string in one or more text files and prints them. Using /C would simply count the lines that contained the string. The /I option ignored case sensitivity. /N numbered the displayed lines, and /V would "invert" the search to display lines that did not contain the string.
help
A viewer for Help files. This was intentionally similar to Unix man, and even used a HELPPATH variable to set the locations of the Help files, and PAGER to set the viewer program.
more
Displays one or more files, pausing at each screenful. A pretty simple program.
pause
Displays a prompt to the screen and waits for the user to press a key before it exits. The /R option returned the key pressed as an ASCII code.
reboot
A program to do a "warm" or "cold" reboot of the computer. Based on public domain code from Mike O'Carroll.
tee
Similar to Unix tee, this acts as a filter and saves a copy of its input to a file, while also printing to standard output. Looking at this years later, there are much simpler ways to write this program.
time
Similar to DATE, the standard utility to display the current time and allow the user to change it.
type
This is one of those programs that started out as an extended DOS program I'd written for myself, then repurposed it for FreeDOS. The standard TYPE command displays a text file. This version of TYPE can also number the output with the /N option, or squeeze together non-blank lines using /S. You can show special characters, such as control characters with the /C option, ends of lines with the /E option, and tabs using /T. The /A ("All") option was the same as /N/C/E/T. And you can convert case: change everything to uppercase using /U and to lowercase using the /L option.
unix2dos
Converts a text file from Unix format to DOS format. This was especially useful for me because I was working in Linux most of the time, and booting into MS-DOS to run the applications that I needed. Converting text files was very handy.
ver
A simple utility to display a hard-coded version number of the FreeDOS utilities. Since this was very early in FreeDOS history, the project was still called "Free-DOS" (with the hyphen).

There's a code comment that developers should refer to us as "Free-DOS" and not "FreeDOS" because another group got started about the same time as us (a few days after us, I think) and used the name "Freedos." Their project had different goals; I don't remember exactly, but I think they wanted to write everything in Assembly, and I wanted to be more flexible. We standardized on C and Assembly for any FreeDOS "Base" utilities, and generally let developers choose their own programming language for other extended utilities.
There's lots more history to share, and throughout June I hope to write about FreeDOS history and various milestones. Please join me in making June our FreeDOS celebration month!

Saturday, June 15, 2019

How to pronounce FreeDOS

On June 29, the FreeDOS Project will officially turn 25 years old! That's a major milestone by any reckoning, and to celebrate we're making June our FreeDOS celebration month.
When Linus Torvalds released Linux, he didn't originally name it Linux. But the person who hosted the original releases of his new Unix kernel put it in a folder called "linux" and so the name stuck.

But there was a problem. How to pronounce "linux"? I pronounced it "Lie-nucks" until I attended a Linux user meetup and heard others pronounce it "Lih-nucks." There was some online debate about how to correctly say "Linux" until Linus himself settled the debate around 1998 by recording a brief audio clip of himself saying "Hello, this is Linus Torvalds, and I pronounce Linux as Lee-nooks!" And so the debate was settled.

Except that a lot of people had already grown used to saying it the way they wanted. These days, I still hear "Lih-nucks" among most users.

A year later, I was testing a new microphone, and decided to record the test phrase "Hello, this is Jim Hall, and I pronounce FreeDOS as FreeDOS." I never thought people would pronounce FreeDOS any other way, I just thought it was a funny phrase to say to test a microphone.

I posted the audio clip to our site on ibiblio. It's been hiding there for years, I don't know if many people have downloaded it. You can find it on ibiblio. I hope you enjoy it.
There's lots more history to share, and throughout June I hope to write about FreeDOS history and various milestones. Please join me in making June our FreeDOS celebration month!

Saturday, June 8, 2019

FreeDOS and Unix

On June 29, the FreeDOS Project will officially turn 25 years old! That's a major milestone by any reckoning, and to celebrate we're making June our FreeDOS celebration month.
Early FreeDOS was influenced quite a lot by Unix. You can still see traces of it today.

I was a long-time DOS user. When my family replaced our Apple II with an IBM PC, I thought DOS was a huge step up! DOS had more powerful utilities, and once I taught myself about programming, I could create my own utilities to expand the command line.

I used DOS exclusively from sometime in the 1980s until about 1992, when I attended university. I was a physics student, and part of our physics program required FORTRAN programming. To do that, we were given an account on the university's VAX system. But if you asked, you could also get an account on the University's Unix network. Normally, the Unix systems were reserved for computer science students, but I had a lot of friends in the computer science program. They helped me get an account on the Sun Unix systems.

I found VAX to be not that different from DOS. But I found Unix to be really interesting!

On the surface, Unix wasn't too different from DOS. Unix had a command line like DOS. Some of the commands were different (ls instead of DIR, for example) but it was still a command line interface. And Unix was much more powerful than DOS! The power and flexibility of the Unix commands was definitely a step above DOS.

So when I created FreeDOS, I wanted similar power found in Unix.

The first utilities that I contributed to FreeDOS included programs that mimicked Unix. If you look at "Utils 1.0" on ibiblio, you'll find standard DOS utilities like CLS, DATE, DEL, FIND, and MORE. You'll also see programs that were meant to be similar to Unix, like TEE and TRCH.

We also looked for other Unix-like utilities to add to FreeDOS. You may be familiar with the Gnuish utilities. From the Readme: "The GNUish Project was designed to bring GNU programs to small systems running OS/2 and DOS." Some Gnuish programs were ports of GNU utilities, others were written from scratch to provide a similar flavor to the GNU and Unix utilities.

My favorite discovery at the time was a print spooler released by Craig Derouen. After you loaded the SPOOL.DEV driver in CONFIG.SYS, Spool would fill up the LPT print buffer when your PC wasn't so busy. This was a big deal! At the time, you committed to printing from DOS. While DOS was printing (usually through an application) you couldn't do anything else. You had to wait for the entire print job to finish, and with a dot matrix printer (typical) you might wait several minutes to get back to work. With Spool, you could print, then get back to work almost immediately. Your printer might slow down as you ran some command, but your printer would keep printing while you were doing something else. That gave FreeDOS similar functionality to the Unix lpr spooler.

Today, we still have some feature borrowed from Unix. FreeDOS has accumulated several Unix-like utilities over time. In fact, for the next FreeDOS 1.3, we have separated these Unix-like utilities into their own package group. You'll find programs like cal, du, grep, less, nro, tail, which, and others that provide parallel functionality to Unix and Linux.

I don't want FreeDOS to become a "Unix clone," where we try to make FreeDOS into an underpowered Unix system. That would be a disservice to FreeDOS. DOS is quite different from Unix. Where Unix was designed to connect small, dedicated utilities to do more complex jobs, DOS was designed to run applications. The MS-DOS command line was always anemic, enough to let you manage data files and do basic manipulation.

But with FreeDOS, I like to think we've expanded the DOS command line to be more powerful on its own. Heavily influenced by Unix, FreeDOS provides a flexible command line with powerful utilities that let you do almost anything. But like standard DOS, you can still rely on applications for your larger work tasks, such as spreadsheets and word processors. FreeDOS is a great mix.
There's lots more history to share, and throughout June I hope to write about FreeDOS history and various milestones. Please join me in making June our FreeDOS celebration month!

Saturday, June 1, 2019

June is FreeDOS celebration month

On June 29, the FreeDOS Project will officially turn 25 years old! That's a major milestone by any reckoning, and to celebrate we're making June our FreeDOS celebration month.
FreeDOS started out as an extension of my personal programming projects. When my family got our first PC and I tried MS-DOS, I thought it was outstanding. I thought MS-DOS was a great little operating system. It provided a powerful platform where I could run applications and do other work. I think we got our first PC when I was in grade school, and over the next several years I thought of myself as a power user. Over that time, I found several of the standard utilities to be lacking. Eventually, I learned C and started writing little utilities for myself.

I wrote my own extensions. If I needed extra features on the command line, I wrote a replacement DOS command to do it. I think my first enhanced utility program was a new version of TYPE that could do different things, similar to Unix cat. My TYPE could convert to uppercase and lowercase, and could pause after printing a screenful of text so I didn't need to pipe the output through MORE. Later, I kept adding new features to it so it could do even more for me.

Not every new program was a replacement to a MS-DOS command. Some were just new programs that I felt made the command line easier to use. A lot of DOS programmers did the same, and it was common to find public domain utilities (often with source code) on FTP sites that extended and enhanced the DOS command line.

I remember when Windows came out. I didn't get to try Windows 1, but I did use Windows 2 and Windows 3/3.1/3.11 when that became the standard. I wasn't that impressed. Windows was slow and buggy. In comparison, MS-DOS was way more mature and powerful.

It was around this time that I also discovered Linux. I was at university, and I had an account on the Unix systems in our campus computer lab. As an avid MS-DOS user, I thought Unix was great. But it was too expensive for me. When others pointed me to a free version of Unix called "Linux" I had to check it out. I dual-booted my '386 PC with MS-DOS and an early release of SLS Linux. It was great! That Linux didn't have a ton of applications didn't bother me; I used Linux for a lot of my work, and booted into MS-DOS to run spreadsheets and word processors.

In 1994, things changed. Microsoft had started doing interviews with technology magazines that the next version of Windows would do away with MS-DOS. Effectively, Microsoft was killing MS-DOS. I didn't want that; I still ran all my applications and games on MS-DOS. A lot of other folks thought the same.

I decided that if we were going to keep DOS, we would need to write our own. As a novice programmer, I didn't know that writing an operating system would be such work. I thought "start with my DOS utilities, add a command shell, and write a kernel." And on June 29, 1994, I announced a free DOS project that would soon become "FreeDOS":
ANNOUNCEMENT OF PD-DOS PROJECT:
A few months ago, I posted articles relating to starting a public
domain version of DOS.  The general support for this at the time was
strong, and many people agreed with the statement, "start writing!"
So, I have...

Announcing the first effort to produce a PD-DOS.  I have written up a
"manifest" describing the goals of such a project and an outline of
the work, as well as a "task list" that shows exactly what needs to be
written.  I'll post those here, and let discussion follow.

If you are thinking about developing, or have ideas or suggestions for
PD-DOS, I would appreciate direct email to me.  If you just want to
discuss the merits or morals of writing a PD-DOS, I'll leave that to
the net.  I'll check in from time to time to see how the discussion is
going, and maybe contribute a little to what promises to be a very
polarized debate!  :->

I am excited about PD-DOS, and I am hoping I can get a group started!
There's lots more history to share, and over the next month I hope to write about FreeDOS history and various milestones. Please join me in making June our FreeDOS celebration month!