The Unix OS, first released in 1969 and titled “UNICS”, was widely adopted by academic institutions due to its portability. Unlike Windows and Mac, Unix is not written in assembly. Rather, Ken Thompson along with Dennis Richie wrote the Unix kernel in C. That’s where Unix’s portability comes into play; since the OS isn’t tied to a particular machine, it is an open system that can run on various hardware. Though, it’s portability does extend beyond simply having its kernel written in a higher language than Assembly; the design of the OS itself strips it bare of the bloat that is inherent in other commercial operating systems.
While there are many who love Unix systems for their minimal overhead, there are others who don’t. The Unix-Haters Handbook, a compilation of messages sent to the Unix-Haters mailing list, reveals the gripes that programmers have with Unix systems. The contributors provide hilarious commentary that even the staunchest Unix advocate may find understandable.
Unix systems have a thread bare user interface:
Unix was a programmer’s delight. Simple, elegant underpinnings. The user
interface was indeed horrible, but in those days, nobody cared about such
things. As far as I know, I was the very first person to complain about it in
writing (that infamous Unix article): my article got swiped from my computer, broadcast over UUCP-Net, and I got over 30 single-spaced pages of taunts and jibes in reply. I even got dragged to Bell Labs to stand up in
front of an overfilled auditorium to defend myself. I survived. Worse, Unix survived.
Ironically, the very attributes and design goals that made Unix a success
when computers were much smaller, and were expected to do far less, now
impede its utility and usability. Each graft of a new subsystem onto the
underlying core has resulted in either rejection or graft vs. host disease with
its concomitant proliferation of incapacitating scar tissue.
The Unix networking model is a cacophonous Babel of Unreliability that quadrupled thesize of Unix’s famed compact kernel. Its window system inherited the cryptic unfriendliness of its character-based interface, while at the same
time realized new ways to bring fast computers to a crawl. Its new system
administration tools take more time to use than they save. Its mailer makes
the U.S. Postal Service look positively stellar.
Contributor compares Unix to a virus
Unix possesses all the hallmarks of a highly successful virus. In its original
incarnation, it was very small and had few features. Minimality of design
was paramount. Because it lacked features that would make it a real operating system (such as memory mapped files, high-speed input/output, a robust file system, record, file, and device locking, rational interprocess
communication, et cetera, ad nauseam), it was portable.
A more functional operating system would have been less portable. Unix feeds off the energy
of its host; without a system administrator baby-sitting Unix, it regularly
panics, dumps core, and halts. Unix frequently mutates: kludges and fixes
to make one version behave won’t work on another version. If Andromeda
Strain had been software, it would have been Unix.
Unix is a computer virus with a user interface.
Contributor’s explanation for the proliferation of Unix:
Like any good drug dealer, AT&T gave away free samples of Unix to university types during the 1970s. Researchers and students got a better high from Unix than any other OS. It was cheap, it was malleable, it ran on relatively inexpensive hardware. And it was superior, for their needs, to anything else they could obtain.
Better operating systems that would soon be competing with Unix either required hardware that universities couldn’t afford, weren’t “free,” or weren’t yet out of the labs that were busily synthesizing them. AT&T’s policy produced, at no cost, scads of freshly
minted Unix hackers that were psychologically, if not chemically, dependent on Unix.
The reason why “Unix” is not used to name new version of Unix, besides the fact that AT&T owns the copyright:
These days, however, most vendors wouldn’t use the U-word if they had a
choice. It isn’t that they’re trying to avoid a lawsuit: what they are really
trying to do is draw a distinction between their new and improved Unix and
all of the other versions of Unix that merely satisfy the industry standards.
It’s hard to resist being tough on the vendors. After all, in one breath they
say that they want to offer users and developers a common Unix environment.
In the next breath, they say that they want to make their own trademarked version of Unix just a little bit better than their competitors: add a few more features, improve functionality, and provide better administrative
tools, and you can jack up the price. Anybody who thinks that the truth lies
somewhere in between is having the wool pulled over their eyes.
File deletion in Unix systems:
I too have had a similar disaster using rm. Once I was removing a file
system from my disk which was something like /usr/foo/bin. I was in /
usr/foo and had removed several parts of the system by:
% rm -r ./etc
% rm -r ./adm
…and so on. But when it came time to do ./bin, I missed the period.
System didn’t like that too much.
Unix wasn’t designed to live after the mortal blow of losing its /bin directory. An intelligent operating system would have given the user a chance to recover (or at least confirm whether he really wanted to render the operating system inoperable).
Please, please, please do not encourage people to overload standard
commands with “safe” commands.
(1) People usually put it into their .cshrc in the wrong place, so that
scripts that want to “rm” a file mysteriously ask for confirmation,
and/or fill up the disk thinking they had really removed the file.
(2) There’s no way to protect from all things that can accidentally
remove files, and if you protect one common one, users can and will
get the assumption that “anything is undoable” (definitely not true!).
(3) If a user asks a sysadm (my current hat that I’m wearing) to assist
them at their terminal, commands don’t operate normally, which is
frustrating as h*ll when you’ve got this user to help and four other
tasks in your “urgent: needs attention NOW” queue.
If you want an “rm” that asks you for confirmation, do an:
% alias del rm -i
AND DON’T USE RM! Sheesh. How tough can that be, people!?!
We now return you to your regularly scheduled “I’ve been hacking so
long we had only zeros, not ones and zeros” discussion…
Just another system hacker
Bad Error Message Humor:
People have published some of Unix’s more ludicrous errors messages as
jokes. The following Unix puns were distributed on the Usenet, without an
attributed author. They work with the C shell.
% rm meese-ethics
rm: meese-ethics nonexistent
% ar m God
ar: God does not exist
% “How would you rate Dan Quayle’s incompetence?
% ^How did the sex change^ operation go?
% If I had a ( for every $ the Congress spent, what would I have?
Too many (‘s.
% make love
Make: Don’t know how to make love. Stop.
% sleep with me
% got a light?
% man: why did you get a divorce?
man:: Too many arguments.
% ^What is saccharine?
%blow: No such job.
Dennis Richie fires back:
To the contributors to this book: I have succumbed to the temptation you offered in your preface: I do
write you off as envious malcontents and romantic keepers of memories. The systems you remember so fondly (TOPS-20, ITS, Multics,
Lisp Machine, Cedar/Mesa, the Dorado) are not just out to pasture,
they are fertilizing it from below.
Your judgments are not keen, they are intoxicated by metaphor. In
the Preface you suffer first from heat, lice, and malnourishment, then
become prisoners in a Gulag. In Chapter 1 you are in turn infected by
a virus, racked by drug addiction, and addled by puffiness of the
Here is my metaphor: your book is a pudding stuffed with apposite
observations, many well-conceived. Like excrement, it contains
enough undigested nuggets of nutrition to sustain life for some. But
it is not a tasty pie: it reeks too much of contempt and of envy.