Do one thing, and do it well: 40 years of UNIX
  • 17 Comments
by Scott Merrill on August 21, 2009

40years
Generally speaking, 40 is considered “over the hill” in human beings. I’m 35, and as I get closer and closer to the crest of that hill, I can tell you with some certainty that the best is yet to come. I think the same holds true for operating systems. UNIX turns 40 this month. That’s right: it was four decades ago that Dennis Ritchie and Ken Thompson worked in the AT&T Bell Labs on the successor to Multics.

“Unix was created to solve a few problems,” said Dr [Peter] Salus, “the most important of which was to have something that was much more compact than the operating systems that were current at that time which ran on the dinosaurs of the computer age.” The UNIX philosophy is “Do one thing, and do it well.” Rather than have one monolithic kernel with lots and lots of functionality built in, UNIX had a very small kernel with a strong complement of little helper utilities. Things like ‘ls’ and ‘cat’ aren’t core parts of the kernel, but rather discrete binary programs.

Along came Doug McIlroy, who introduced the concept of “pipes”. You could take the output of one program and feed it as input to another program. In this way, many small utilities could be chained together to create amazingly functional processes. Another upshot of this design mentality is that fixing bugs is easier: rather than working through a complex monolithic kernel and worrying about complex regression testing, one could focus on a single, small binary application. New features could be added to such binaries, and whole new binary applications could be rolled out quickly and without much direct coordination from any central body.

It’s easy for us UNIX and Linux users to lob potshots at Microsoft for it’s monolithic DOS and Windows design models; but the Redmond products are good examples of some of the problems with monolithic software design. Do you think there’s anyone at Microsoft who knows, on his or her own, how all of the pieces of Windows work together? It’s nigh impossible for any one person to have the breadth and depth of experience to know how all the UI, networking, storage, scheduling and security systems work on their own, let alone in conjunction with one another. Instead you have teams of people working on various aspects of the system, and inter-team communication and coordination can become a real impediment to success.

Contrast that to the UNIX design model, where the kernel is pretty small, and people really can know most of what goes on in the kernel. Guys like Linus Torvalds and Andrew Morton can know the nitty gritty of the core kernel, without having to know — or even care, much — about the nitty gritty of the X Window system, or how the GNOME environment works: other people are responsible for those things because they are, literally, separate things. If you don’t like GNOME, you can use KDE, or XFCE, or Oroboros, or Blackbox, or any number of other window manager solutions. Not so with Windows, where the GUI they make is the only GUI you get, and making changes to it may have substantial effect on other, non-GUI aspects of the system. The same holds true for filesystems, and networking protocols, and all manner of other things that get added on to the kernel by way of modules: the kernel developers need only present a consistent and stable API and ABI to allow other folks to extend the kernel functionality with new modules.

If you haven’t used UNIX (Solaris, AIX, HP-UX, Linux, what-have-you), you owe it to yourself to give it an honest examination. Dr. Salus has a great quote in this BBC story:

Unix is the best screwdriver ever built

And, if you live anywhere near Columbus, OH, you can see Peter Salus and Doug McIlroy on Saturday, September 25 at The Ohio LinuxFest: both men will be presenting at the event. Registration is free! I’ve been involved with OLF for several years now, and it really is a great opportunity to learn more about Linux, and Free Software generally. Jon ‘maddog’ Hall wrote a pretty good overview of what OLF is, and why it’s worth attending. If you want to learn more about UNIX, Free Software, Linux, or just network with computer luminaries like McIlroy and Salus, come celebrate 40 years of UNIX with Ohio LinuxFest.

Comments rss icon

  • I cut my “unix” teeth on BSD 4.2 back in the 80s in college. I spent a lot of time perusing the source which was available on that mini-computer. To this day, I am still fond of bash and vi (vim) and use them often. Where would we be without grep?

    David

  • *NIX isn’t the best screwdriver ever built — it’s the best toolbox full of small, individually useful tools that was ever built. It’s got a dozen high-quality screwdrivers, three different pliers, and so on. Each tool is simple, portable, lightweight, and efficient, and when used together no project is too complex.

    The fact that *NIX has been (largely) Open Source from day one has helped, too. Code reuse is the soul of software innovation, allowing each generation of programmers to reuse the good parts from prior art. “If we [program] farther than others, it is because we stand on the shoulders of giants.”

    Syscrusher

  • 40 is over the hill?! Only in sports. Sheesh, 40 is finally when you’ve finally learned enough about life, the universe and everything to really be productive and take responsibility for your work. If I have a major project, I’ll take a team of 40 somethings over a team of 20 somethings in a heartbeat!

    from a 50 something project manager

  • While at OLF last year, NOOSS interviewed Dr. Salus. The interview, and a few others: http://dort.hebrank.com/~martin/olf/

  • The amazing thing is that there was at time MSFT talked about rubbing out UNIX; now UNIX is clearly winning, at least in the form of OS X. Sure, 90% of the world is still Windows, but in 10 years? I think not.

  • The Windows Kernel (MinWin project) is actually pretty much a stand-alone “thing” now. Check out this: http://www.windows-now.com/blogs/robert/mark-russinovich-explains-minwin-once-and-for-all.aspx

    And the work continues… Like when they in Vista they pulled audio from the kernel.

Leave Comment

Commenting Options

Enter your personal information to the left, or sign in with your Facebook account by clicking the button below.

Alternatively, you can create an avatar that will appear whenever you leave a comment on a Gravatar-enabled blog.

Trackback URL
Short URL
bugbugbug