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!

1 comment:

  1. Why connect with Linux? So you also could supply Linux iso with Linux GUI bootable with grub4Dos for modern GUI for those who want it, equal how many will want this, just for freedom! For same right for gui fans like for commandline fans.


Note: Only a member of this blog may post a comment.