|Home » Rants
Who to Trust
And who not to.
Unix™ came to Cupertino with Steve Jobs. The preliminaries were underway by the end of 1996. Gil Amelio was Apple's CEO back then, asked to step down from the board in an attempt to save the struggling company. Amelio bought NeXT lock, stock, barrel, and their top engineers. And of course their code.
NeXTSTEP builds on the shoulders of giants. Ken Thompson, father of Unix, gets indirect credit for getting FreeBSD off the ground. FreeBSD is the most widely used Unix platform in the world today.
FreeBSD is run by its own group. Apple recently bought out the leader of this group.
NeXT placed their AppKit and Foundation atop FreeBSD. There was never any reason to muck with FreeBSD. NeXT added the MACH kernel of course: their chief engineer was part of the original MACH project at Carnegie-Mellon. Otherwise a 'hands-off' policy was the most prudent: those responsible for the 'underbody' were best suited to maintain it.
FreeBSD builds on Unix which in turn was conceptualised at the end of the 1960s at Bell Labs in Murray Hill New Jersey. Their Computer Science Research Centre employed some 25 PhD hackers. (Thompson was the notable exception.) Go in the front door, turn to the right, walk down that long corridor, take the stairs up to the next floor, there you are, explained Brian Kernighan.
Kernighan's the one who brought Unix to life. Perhaps more an observer than a contributor, but above all a guru who later went on to become software editor for Prentice-Hall International and later a professor at Princeton, Kernighan 'got it' when it came to Thompson's architectural purity and Dennis Ritchie's vision when it came to the C programming language. Kernighan went on to author the seminal 'Software Tools' series where he virtually turned every viable programming language into C. As those gurus often said of the system powered by C: 'it's not an operating system, it's a way of thinking'.
Ritchie's and Thompson's insistence on sticking to their principles is legendary. They were at one point under considerable pressure by IBM to change their C language definition to accommodate Big Blue's systems, but they stuck to their guns. 'It's a matter of definitions', they told the media.
Kernighan, Doug McIlroy, Joe Osanna, Al Aho, and countless others got more involved once Ritchie had completed C and he and Thompson were able to rewrite the Unix kernel in a compiled language. Steve Bourne wrote the first shell. Someone came in and wrote the incredible 'yacc' - 'yet another compiler compiler'. Kernighan teamed up with mates and wrote AWK. And so forth.
Unix was not without foibles back then. Not intended as a super-secure Indian system, but instead for Bell's patent applications department, it was nevertheless conscious about how other CSRC staff might tinker with the innards, and so kept security in mind.
Yet it took a bit of time for the ramifications of this radically new system to sink in. Changing directories from a command line, for example: they had to rip the system apart before they realised the one simple truth about how the system they themselves had designed really works.
Simple exploits were found and remedied as well. The './' became necessary, for example. The login trojan was detected and remedied, and so forth.
Unix made mainstream in the mid-1970s with a presentation at IBM's Thomas J Watson Research Center - twenty-some years before Steven Paul Jobs returned to Cupertino.
Cupertino had gone one way when the rest of the world had gone another. As the popularity and realisation of the obvious utility and practicality of C grew, Apple stayed stuck back in the classroom, using a programming language invented by a Swiss professor for teaching purposes only. As Brian Kernighan was later to quip, C and Pascal had a slight resemblance 'as much as German and Swedish, if you were brought up in the outskirts of Tokyo'.
Steve Jobs brought NeXT to Cupertino. And, with it, he brought Avie Tevanian, Jon Rubinstein, countless others, NeXTSTEP, OPENSTEP, countless technologies, including Brad Cox' Objective-C ('ObjC') programming language. With all the bastardisations of the 'OO' concept over the years, ObjC was the only one that got it right. As Alan Kay, creator of Smalltalk, pointed out at the time, no existing language gave him what he wanted - especially C++. Apple's favourite Pascal was of course not even in the running.
Perhaps part of the weakness with the original design hermetically sealed by Frog was the language itself. Whatever: when Steve returned to Cupertino, Apple's own developers were still living in the Dark Ages. Much of their code was written in a stultifying early variant of Pascal which most closely resembled COBOL. According to insiders, their willingness to 'go back to school', learn a new language, and embrace UNIX was not high. And, according to insiders, their attitude towards this new technology didn't exactly improve over the years.
In a world beset with literally millions of Microsoft Windows malware strains, Apple's new twist was the Great Hope. A commercial corporation with the clout to take Unix mainstream and rid the world of the nightmare of an Internet neighbourhood too dangerous to inhabit. Apple went their own way in other regards as well, using their hardware as a type of 'dongle' to prevent their new OS from spreading to other platforms, yet their refusal to 'stand on the shoulders of giants' hit them hard time after time.
- Should you really trust a company that released three versions of their mobile system where everything runs as root? Where the 'fanboys' fanboy' insists that Apple must have done so 'for a very good reason'?
- Should you really trust a company that had the opportunity to use the legendary ZFS but turned it down?
- Should you really trust a company that took on the amazing DTrace, only to bastardise it? To screams of protest from the wider community?
- Should you really trust a company that left the gaping Opener hole (described by Opener's author to this site as 'not so much a hole as a crater') for years with the lame excuse 'works as designed'?
- Should you really trust a company that reacted to the 'massive data loss' scandal by again claiming 'works as designed'?
- Should you really trust a company that still can't get rid of .DS_Store even though they've long ago admitted it's a programming error and easy to fix?
- Should you really trust a company that let the ARDAgent root exploit run wild for over four years?
- Should you really trust a company that found a way to remotely update parts of your system without asking your permission?
- Should you really trust a company that hires on an open source developer to build a web browser which, because of flaws introduced not in Redwood City but in Cupertino, ends up hosing users' systems on its first release, who then silently sneaks out an update without telling anyone, and who to this day refuses to own up to what happened?
- Should you really trust a company that has a serious networking flaw discovered by the US Naval Research Laboratory in Monterey California, then gags the researchers from even talking about it?
- Should you really trust a company that introduces a protocol that makes all systems vulnerable to attack, forcing a patch in their 'launch services' that exists to this day?
- Should you really trust a company that so abandoned their code base that today they don't even have a department to maintain it?
This wouldn't have happened to the original project in Murray Hill. Or even to the one later maintained downstate by USL. Or the one built by Bill Joy in California. Or the one built over the border by Theo de Raadt. Or the ones adopted by IBM.
For they have all known better than to not stand on the shoulders of giants. They understand the importance of vetting, of not going one's own way on a whim, of the inherent dangers in such an enterprise.
Reprinted from Rixstep.