Twenty five years of Linux Journal. This also marks my 161st column with the magazine too, which means I've been a part of this publication for almost 14 years. Where does the time go?
In honor of the historical significance of this issue, I wanted to share some of my memories of the very early days of UNIX, Minix and Linux. If you're a regular reader of my column, you'll recall that I'm in the middle of developing a mail merge Bash utility, but that'll just have to wait until next time. I promise, the shell ain't going anywhere in the meantime!
I first stepped foot on campus at UC San Diego in late 1980, a declared computer science major. At that point, a lot of our compsci program was based on USCD Pascal on Apple II systems. I still have fond memories of floppy drives and those dorky, pixelated—but oh so fun!—Apple II games we'd play during lab time.
For more serious classes, however, we had some big iron—a mainframe with accounts and remote computer lab terminals set up in designated rooms. The operating system on those systems? UNIX—an early version of BSD UNIX is my guess. It had networking using a modem-to-modem connection called UNIX-to-UNIX Copy Protocol, or UUCP. If you wanted to send email to someone, you used addresses where it was:
unique-hostname ! unique-hostname ! account
I don't remember my UCSD email address, but some years later, I was part of the admin team on the major UUCP hub hplabs, and my email address was simply hplabs!taylor.
Somewhere along the way, networking leaped forward with TCP/IP (we had TCP/IP "Bake Offs" to test interoperability). Once we had many-to-many connectivity, it was clear that the "bang" notation was unusable and unnecessarily complicated. We didn't want to worry about routing, just destination. Enter the "@" sign. I became taylor@hplabs.com.
Meanwhile, UNIX kept growing, and the X Window System from MIT gained popularity as a UI layer atop the UNIX command line. In fact, X is a public domain implementation of the windowing system my colleagues and I first saw at the Xerox Palo Alto Research Center. PARC had computers where multiple programs were on the screen simultaneously in "windows", and there was a pointer device used to control them—so cool. Doug Englebart was inspired too; he went back to Stanford Research Institute and invented the mouse to make control of those windows easier. At Apple, they also saw what was being created at PARC and were inspired to create the Macintosh with all its windowing goodness.
Still, who doesn't love the command line, as Ritchie and Kernighan had originally designed it in the early days of UNIX? (UNIX, by the way, is a wordplay on a prior multiuser operating system called Multics, but that's another story.)
The problem with UNIX was that old software bugaboo of intellectual property ownership. UNIX came out of AT&T's Bell Labs, so AT&T owned UNIX. Us academics weren't too excited about that, and so pieces were replaced by the UC Berkeley's Computer Science Research Group. They released BSD UNIX. AT&T famously sued, so CSRG produced a complete and total rewrite from the ground up. My proud contribution (other than my popular Elm email program) to BSD 4.3 was to rewrite Hunt the Wumpus. Yup, I'm that guy.
While all this was going on, BSD re-implementing UNIX proved inspirational for people all over the world, including Andrew S. Tanenbaum, who cobbled together something called MINIX as a teaching tool for his Operating Systems Design and Implementation book. One person who played around with MINIX and was inspired further was a Finnish developer named, you guessed it, Linus Torvalds.
Meanwhile, the world of intellectual property was continuing to muddy the waters on the business side. Sun Microsystems and Digital Equipment Corporation were two of the companies trying to straddle the line between proprietary commercial development and public domain software for the good of the industry. But software copyright still plagues us to this day, so it's no surprise it was fuel on the fire—and occasionally the fire itself—in the evolution of Linux.
Spinning out of the software copyright mess was another colorful fellow: Richard Stallman. He hated the confusion between private corporate software ownership and free software. With a lot of help from others in the digital world, Stallman started building GNU (which literally stands for GNU is Not UNIX), and along the way, he created the Free Software Foundation.
The Free Software Foundation ended up being responsible for a lot of the building blocks of Linux and modern UNIX systems, notably the compilers. One result is GNU/Linux (that is, Linux with GNU utilities). At one point, that was called Lignux, of all things. Yikes.
Since nowadays GNU without Linux isn't hugely helpful, it's
basically just been assimilated into core Linux and just about every distro
of Linux includes GNU utilities or GNU versions of common UNIX-born tools.
Check find
, cc
and grep
on your system to see if you have the GNU versions,
if you're curious.
Me? Well, Hunt the Wumpus was fun, but everyone was interested in including my Elm mail system in their version of UNIX/Linux, and I remember going to some of the earliest FSF meetings at USENIX conferences. We basically just argued about IP rights and the nuances of the GNU General Public License (Copyleft). I was against it applying to my software, because if someone else was going to sell or make a profit from my software, I felt it only was fair that I would get a cut of that. That's why there never was a GNU Elm, if you're curious.
And oh, those USENIX conferences. USENIX was the professional organization for UNIX programmers and users (it pre-dated Linux for the most part), and I'm pretty sure none of us had a clue what we were creating. I remember hanging out with Larry Wall, Eric Allman, Bill Joy and most of the other developers back in the day. We were just a bunch of nerds—kind of like Revenge of the Nerds without the revenge part, at least, not at that point in time!
We UNIX folk kept hearing about this Linux thing, but honestly, the general attitude was dismissal. UNIX was massive and incredibly hard to duplicate, and a bunch of kids in a basement couldn't possibly do justice to the extraordinary work of Bell Labs and UC Berkeley's CSRG. Oh, how wrong we were.
Random historical note: Linus actually wanted to call his version of UNIX "Freax", as a play on free and UNIX. Fortunately, after a few months, it changed to the name we use today—a much better name, for sure.
UNIX, meanwhile, was losing customers even as Linux grew and grew. A free operating system that turned even junky old PCs into decent servers? Of course it was popular. And with the advent of different window managers within the X Window System and decent graphical applications, suddenly Linux could compete with Windows and Mac OS too.
I still remember being at Hewlett-Packard and having discussions about the expensive HP workstations with our proprietary version of UNIX (called HP-UX) versus customers wanting to run the fast-evolving Linux. Like so many big proprietary companies, HP was late to the Linux world, but the company definitely has made up for it since—which is lucky, because a number of those proprietary UNIX OS companies have since failed and vanished.
Today there are a bewildering variety of different Linux distributions, all of which are still UNIX at their heart. Heck, now both Windows and MacOS X have UNIX cores of some flavor and even offer full command lines. That Bash command line you use? Those commands with their cryptic "flags"? You can thank AT&T Bell Labs, UC Berkeley's Computer Science Research Group, MIT's Media Lab and a whole lot of us aficionados for creating the system you know and love.
Caveat: I'm sure I've gotten a few things wrong in this reminiscence. My apologies in advance for that, but hey, history ain't what it used to be.
In my next article, I'll be back talking about shell scripts and coding, and I'll wrap up that mail merge program. I hope you have enjoyed this column, and I would love any and all feedback!