BSDCon An Apple executive turned down an offer to sabotage the Mac OS X code tree, yesterday, we can sort of exclusively reveal.
The nefarious approach to Apple's director of core OS engineering Brett Halle - a member of the executive team which made the momentous decision on what should be the successor to MacOS back in 1996 - took place at BSDCon in San Francisco yesterday.
And we take full responsibility.
A transcript of the conversation went something like this...
Register: So how much beer would we need to buy you to sneak into the code tree and run the following command - find . -print | grep -i dock | xargs rm
Halle: Hey, I like the Dock!
Well, we did try our best, dear readers. Next time we'll have to raise the offer to two beers, or maybe some claret and some Cuban cigars.
Halle presented the morning keynote on Day Two of the annual USENIX BSDCon, in what was a very well received presentation. Despite some grumblings, which we'll address in a moment.
He also kindly gave us a half-hour to elaborate on Darwin's role in Mac OS X, which you may also be interested in.
The effort required to marry the two worlds was detailed in Brett's keynote. In OS X they're parallel universes, really: the BSD layer has different package management; it's own character format; it's even in its own timezone, too. This isn't apparent if you use an Apple computer in Pacific Time, it's really obvious if you use an Apple in London. (As I discovered when I began to encode some raw AIFFs in lame).
Halle's had plenty of experience with Unix at Apple. He worked on Apple's previous UNIX, A/UX. and started the mklinux effort, he told us.
Was this part of the thinking behind acquiring NeXT, then?
Very much so, said Brett. "BeOS was interesting, but not broad, and would have required considerable investment"
(Long time readers can fill in the sound of us chaffing here.).
Part of the thinking was being able to leverage the Unix technology from NeXT. The NeXT talent was really excellent."
(You'd have heard more chaffing from your correspondent at this point.)
But wasn't NeXT kind of moribund, if not already in mothballs, we wondered? I mean it wasn't up to date back in 1996...?
"Sure there was a lot of work updating it to FreeBSD 4.4. The Mach kernel was updated, the I/O was updated..."
Ah, now the kernel in Mac OS X is a Mach kernel in all but name, right? It isn't the Mach kernel as envisaged all those years ago for obvious reasons...
"Well the Mach we're using is based on the OSF/1 7,3, and that was evolved from Mach 3.0, which was a research project into a pure microkernel architecture. It was running in a separate address space."
"Intellectually that was a very interesting exercise but in practical terms, in reality, the trade-offs don't make sense.
"So we took BSD, and there they're layered but tightly coupled, so were able to leverage that better. Mach is a good abstraction layer though and enabled us to get to SMP much quicker, for example."
What's next on the roadmap for Darwin?
"We're looking at networking and data security. There's a lot of details but the Apple engineering organisation is very much a collaborative process - it's not like some separate group."
Now one obvious and immediate win is the excellent power management support in X. How did that come about - did Apple follow the APM and ACPI standards?
"It's similar but we have our own power management. We call them 'Power Plans' - how the power is managed when certain devices are idle. The I/O system ends up building up a graph or a hierarchy of devices in the system."
Has Apple plans to devise a new file system, maybe one with journaling capabilities?
"Well journaling-like qualities are certainly needed - drives get larger and larger and it's an issue for scaling that affects everyone. Whether you're using a portable, or if you're going to use it as a digital hub handling MP3s, or whether you're handling gigabytes of video.
"[Marshall] McCusick has done some work to on that to ensure that it is internally consistent without being a new file system. He had a session on that here, and it achieves some of the goals. There are some really interesting options.
"But right now we use BSD vfs for everything - we have a number of file-system plug-ins for UFS, for NFS, for HFS+"
So it's all, all vfs underneath?
Halle stressed the need for collaboration, but one or two voices of dissent were heard.
Who are you calling geek?
Wasabi's Perry Metzger was baffled to hear Apple's concerns about forward compatiblity:
"This problem has already been solved - we can run 0.8 BSD executables on VAXs running SystemVr3 sources that have are in production 15 years after the things were compiled - and stuff just works All of our syscalls are still there."
"They're new here, and I wish they'd appreciate that they need to give back before they can start telling us what to do," said one commercial BSD user.
One past chair of the conference was even offended by Brett's affectionate use of the word "geek" -
"I do object very strenuously to the Unix bashing and name calling - referring to geeks, instead of the professionals does you no good!" he said.
"I'm a geek and I'm proud of it!" responded one member of the audience.
"Hey! When I can have a three button trackpad?" asked another.
It was all good clean fun.
But the audience appreciated the effort to make Unix friendly, or effectively 'disappear' from the consumer. The concept of root administrator summed up Apple's dilemma best. It was demanding and complex to set UIDs in a rigid work environment, but home use called for something far more fluid.
Halle won a storming round of applause for shipping a system with the network vulnerabilities turned off by default, a point praised by many questioners.
Then it was back to the UI grumbles, which will dog this fine OS until they're fixed. Halle said performance was monitored at every stage, and was a high priority.
We were however thwarted in our strategy to scupper the Dock, alas.
How long before the Dock becomes like Microsoft's Clippy the Paperclip - an emblem so widely loathed that Apple's only chance of redeeming its human-interface reputation is to stage a public execution?
The Dock is hated by Mac veterans, who see it as a jack-of-all trade replacement for the combination of switcher, Apple menu and control strip. It's hated by NeXT veterans, who see it as an equally inadequate replacement for NeXT's elegant Dock and Shelf combination. It's hated by newbies - who as one questioner so eloquently put it yesterday (hi Brett) - can't make out one damn fuzzy icon from the next on a fully loaded system.
And it's hated by me, for all the reasons cited above, but most of all because the Cmd-Tab combo doesn't follow the Window Z-order. I'm funny like that.
(Yes - you can hide it, but the vacuum generated by disappearing CPU cycles as it slides out, then back again is enough to make my ears pop.)
Like an unloved Liberian-registered container ship full of nuclear waste, the Dock is making its lonely way across the screen, being bounced from port to port. It was at the bottom, now it's on the left, and hopefully soon it will run out of locations to take its foul cargo and slither out of our consciousness forever; only to live on as a 'do you remember...?' tech trivia question, like the DEC Rainbow or Microsoft's 8-bit MSX games console.
Our offer still stands. Anyone at Apple for a Havana? ®