Unix Turns 40
wandazulu writes "Forty years ago this summer, Ken Thompson sat down and wrote a small operating system that would eventually be called Unix. An article at ComputerWorld describes the history, present, and future of what could arguably be called the most important operating system of them all. 'Thompson and a colleague, Dennis Ritchie, had been feeling adrift since Bell Labs had withdrawn earlier in the year from a troubled project to develop a time-sharing system called Multics (Multiplexed Information and Computing Service). They had no desire to stick with any of the batch operating systems that predominated at the time, nor did they want to reinvent Multics, which they saw as grotesque and unwieldy. After batting around some ideas for a new system, Thompson wrote the first version of Unix, which the pair would continue to develop over the next several years with the help of colleagues Doug McIlroy, Joe Ossanna and Rudd Canaday.'"
Not a bad retrospective, and interesting in that it illustrates some of the reasons for Unix's success: availability of source, and the ability for the user to create and replace tools easily. One wonders how those lessons might be applied not necessarily to operating systems or even computing, but to other industries and technical endeavours.
Please donate your spare CPU cycles to help fight cancer and other diseases
Unix just turned 40, and Tetris just turned 25. What do they have in common other than closely spaced birthdays? They were both first developed on PDP-11 hardware (Unix on a PDP-11, Tetris on a Russian clone). And they've both been cloned, early and often.
U.S. copyright explicitly doesn't apply to methods of operation. Title 17, United States Code, section 102(b). This makes it legal to "clone" a computer program by observing its method of operation. But SCO has tried to use copyright to shut down Unix clones, and The Tetris Company has tried to use copyright to shut down Tetris clones. SCO already lost its case (there is no copyrightable piece of Unix in Linux), but the other case (Tetris v. BioSocia) is still pending.
And despite Tetris inventor Alexey Pajitnov's expressed disdain for free software, two servers operated by Tetris (zone.tetris.com and www.tetrisfriends.com) are run using GNU/Linux.
Bah. Your command would fail. You need to escape the splat just like the semicolon:
find my_lawn -name kids\* -exec rm -f {} \;
However -exec is slow. Try:
find my_lawn -name kids\* | xargs rm -rvf
Verbose for your kid-removing satisfaction.
Oh, and happy birthday, UNIX! Without you my career would have undoubtedly been less interesting.
A squid eating dough in a polyethylene bag is fast and bulbous, got me?
When I started doing Unix Admin professionally Unix was just turning 30, Linux was poised to take over the Desktop, Mac OS X was just a glimmer of hope, and Sun was the king of commercial Unix.
When I started using Minix, Unix was only 20, but RMS was kvetching about source code (and Hurd was Coming Soon), BSD had just won it's freedom, and Steve Jobs was doing cool things over at NeXT. Unix was just leaving it's First "Golden Age"...
Now, at 40, Mac OS X is the most used Unix system, Sun was just bought cheap, most other commercial Unix systems are defunct... But with Android, Pre, and iPhone all putting *nix systems in the palms of millions, Macs selling more than ever, and many companies offering Linux pre-installed in the box, Unix is as relevant as ever.
Windows could take on board one thing from From Unix and be a much better product as a result: as David Korn (of ksh fame) says in TFA: "One of the hallmarks of Unix was that tools could be written, and better tools could replace them... It wasn't some monolith where you had to buy into everything; you could actually develop better versions.". Microsoft has a lot to learn. The progress from 1980's DOS to today's offering is pretty sad.
Did you notice that since Windows 3 Microsoft keeps adding Unix-like features? Windows 3 did not have _real_ multitasking, it came with WinNT. Windows NT was also a multi-user system, another Unix-like feature. With Windows Vista came the Windows power shell, M$ equivalent of Unix shell. In fact, Unix is an ideal, which Microsoft is approaching in each new Windows release.
I've encountered bits and pieces of Unix hagiography for the last 15 years, and in all that time, I've internalized that "Multics sucks" (somewhere alongside the virgin birth), yet I can't bring to mind a single reason *why* Multics sucked. Were the Romans really so stupid as they are made out to be?
From Fernando J. Corbató's 1991 Turing lecture concerning one of Muttlix's early teething problems:
The decision to use a compiler to implement the system software was a good one, but what we did not appreciate was that new language PL/I presented us with two big difficulties: First, the language had constructs in it which were intrinsically complicated, and it required a learning period on the part of system programmers to learn to avoid them; second, no one knew how to do a good job of implementing the compiler.
So, perhaps, not the best suited language for systems programming?
From Wikipedia:
The goal of PL/I was to develop a single language usable for both business and scientific purposes.
Doesn't that vision give your average PHB a throbbing chum? If simplicity is hard, let's scale up the mediocre talent and do sameness instead.
PL/I was designed by a committee drawn from IBM programmers and users drawn from across the United States, working over several months.
No sociology experiment from the 1960s was complete without confederates in white shirts. The free-love hippies managed to sneak into the language promiscuous data type conversions.
Dijkstra summed it up in 1975 with his monograph
How do we tell truths that might hurt?
PL/I --"the fatal disease"-- belongs more to the problem set than to the solution set.
God, I love this guy. He's the patron saint of annoying the hell out of people by always being right, and putting a fine point on it. Same monograph includes another famous zinger:
APL is a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past.
From Myths about Multics
We wrote 3000 pages of the Multics System Programmer's Manual first, while waiting for the PL/I compiler.
That should strike a painful nerve in anyone who tried to adopt the C++ STL in 1994.
Ouch. Shipwrecked on the beach of half a programming language, fondling your monads.
Not half surprising that Thompson ended up carving his own canoe with a pen knife to escape.
Oblig. piggyback whore post: The Unix Hater's Handbook[PDF warning]!
Does Unix philosophy actually mesh with Unix reality? A reason I ask is because in unix everything is supposedly a file, but there were enough exceptions, such as in networking, that in the seperate Plan9 OS, they sought to really make everything a file. And that by the original makers of unix.
So could an old salt fill us young-un's in? What was it like before Unix?
Here's a typical computer job from before UNIX... IBM JCL. The following is roughly the equivalent of "lpr -Pxerox
Like it or not, most of the key innovations in computers came from monopolies: Xerox, IBM, AT&T. When you have more money than you know how to spend, you can afford letting people play. Why not Microsoft? Although it has had some innovation, MS was never a monopoly in the same league as the other three. Also, there was a lot more low-hanging fruit in the computer world of the 60's and 70's than there was later.