Articles Archive
Articles Search
Director Wiki

A suitable frame

May 9, 1998
by Zac Belado

A source at Netscape is purported to have said that an OS is "just a device driver". The implication being that an operating system merely mediates between the applications and the hardware.

I've been finding this comment very interesting of late, as I have recently purchased a machine and installed Linux on it and this has made me see this statement in a different light.

For those of you not familiar with it; Linux is a UNIX variant that runs on Intel, PPC and several other hardware paltforms. Given that it is a UNIX OS, you interact with the OS primarily from a Command Line Interface. Yes, I know all about X11 and all about the wonderful GUI apps you can write with windows managers like KDE and Motif. But a vast majority of the software and functionality of Linux is gained through arcane UNIX commands like touch, biff, cat (which doesn't do what you Apple enthusiats think it does) and tar.

It's odd to think that going back to a CLI (something that takes me back to the Apple II, Amiga and PDP 11-70) is, in a very many respects, actually a step forward. Linux is by far the most stable personal operating system I have run. My Linux box has been running for two weeks now with absolutely no crashes, GPFs (not that there seems to be a Linux version of them) or cause to restart the machine. This despite the fact that I have been running Apache, FTP, telnet, several other concurrent apps and doing rather stupid and bizarre things like accidentally compiling three versions of the same app.

Hell would field a competitive hockey team before I could do that on my Mac or PC.

Everything old is new again

But for all its stability, advanced functionality and extensibility (hey kids let's add new functions to the kernel!) using Linux is a journey to a very old and precise territory. Linux commands are powerful and multi-faceted to the point of absurdity. At times it seems like an OS written by a cross between Hegel and Harpo Marx. The Linux command biff, which alerts you when you have received new mail, is reportedly called such because it is named after the authors dog that barked when the mailman approached. The command makes sense at a deeper level, much like a Zen koan, but frustrates you until you gain that deeper understanding.

The search for the "right" way to do something is often fruitless, as there are more than one way to do something. Even a relatively simple process such as copying a file can be done is several different fashions;

cp file1.txt file2.txt 
more file1.txt > file2.txt
cat file1.txt > file2.txt
I am assuming that this only scratches the surface of the number of ways (simple or arcane) that you can copy a file. In fact if you know of any more ways to do it (the more obtuse the better) then please send them in.

Interacting with Linux, entering commands through the CLI (or a terminal window under X11) makes you very aware that you are seperated from the inner workings of your machine by a thin wall. Closer to the metal if you will. You could almost reach out and touch the hardware (or mount /dev/hdo /floppy). It is an experience that lends credence to the view of operating system as device driver.

And then there are my Mac and PC.

The grass is infrequently greener

Despite the fact that I do a considerable amount of work on it, I really don't like my PC. The only thing that keeps the PC in my house at all is the fact that my Mac isn't fast enough to run Dreamweaver and Quake2 (and Sin and Half Life when they come out) doesn't run on my Mac at all. And it is this exact reaction that makes both of these operating sytems transcend their "device driver" moniker. There is something about both of them, some gestalt of code, UI and functionality that makes them more than simply a mediator between myself and my hardware. We have opinions about them. We love them. Hate them. Embrace them. But we ultimately react to them in a fashion that is out of context to their function. Have you ever reacted to a hammer or screwdriver in a similar fashion?

My Mac excudes personality (helped in no small part by my numerous Kaleidoscope schemes and custom desktop patterns) and has an underlying elegance that makes its creaking underpinnings a forgivable flaw. Windows tries to duplicate that same user experience without any attempt to understand the small, soft features that make the Mac what it is. And you either relate to this (and love the Mac) or don't (and think that all Mac users are slightly insane).

There is no way to quantify these feelings and reactions.

Peace, lova and all that greasy kid-stuff

But Linux (and by extension UNIX) simply is. There is no pre-mediation of your interaction with the underlying hardware. Both the Mac OS and Windows presuppose your actions and attempt to facilicate them in a simpler manner. Linux doesn't. Linux abandons you and makes you find your own way.

Depending on your OS of choice then your impression of what an operating system is, and what its ultimate function is, can vary wildly. Ultimately they all provide a layer by which we can interact with hard-drives, floppies and data.

This leads to a deeper question. In the case of Linux, is the kernel the operating system or is the operational layer (the UI or CLI) the actual OS? This is an even more valid question if we look at products like Virtual PC which provides a hardware abstraction layer that allows you to run Intel operating systems (including the Intel version of NextStep) on your Mac. Where do we draw the line? At what point does the code stop being an operating system and begin to be mere window dressing?

I loved playing Sinistar when I was younger. And now I can play it again without having to spend a few thousand dollars on a standup unit by downloading an emulator like Mac MAME. It provides a hardware emulator to run ROM images of old games like Sinistar and Dig Dug. Mac, Windows and UNIX versions of the same applciation are available. Similar hardware emulation running across different platforms to generate the same user experience (in this case a game).

Is this the future of our mediation with the hardware?

Linux already goes down this road to a certain degree. It is available on Intel, PPC, Sun and Alpha platforms. Systems exist to emulate Windows on Macs and Macs on Windows. I can have a dual boot Mac that runs Linux and emulates Windows 95. The line between where and how we can run certain user experiences (and that really is what we are talking about when we move past hardware issues) is becoming increasingly blurred.

How much longer before that line disappears?

Zac Belado is a programmer, web developer and rehabilitated ex-designer based in Vancouver, British Columbia. He currently works as an Application Developer for a Vancouver software company. His primary focus is web applications built using ColdFusion. He has been involved in multimedia and web-based development, producing work for clients such as Levi Straus, Motorola and Adobe Systems. As well, he has written for the Macromedia Users Journal and been a featured speaker at the Macromedia Users Convention.

Copyright 1997-2017, Director Online. Article content copyright by respective authors.