Apple Quietly Fixes DTrace
In January we discussed a blog entry revealing that Apple had "crippled" its DTrace port. As the author notes in a followup post, to say that DTrace had been "crippled" was at least overstated: "Unfortunately, most reactions seized on a headline paraphrasing a line of the post — albeit with the critical negation omitted." In an updated entry, the poster notes that Apple has made good (so we have too): "One issue was that timer based probes wouldn't fire if certain applications were actively executing (e.g. iTunes). This was evident both by counting periodic probe firings, and by the absence of certain applications when profiling. The good news is that Apple has (quietly) fixed the problem in Mac OS X 10.5.3."
Developer specific issues like this would certainly be fixed quickly under Linux, since it is a developer OS. On the other hand, usability issues that get fixed quickly under OS X, are often left to languor under Linux.
In both cases those features may never be fixed under Windows (or would be broken again after the next "Service Pack"
This space for rent. All reasonable inquiries will be entertained at proprietors discretion.
This was blogged about some days ago, but I'm glad that the news is out.
DTrace is used in all sorts of interesting ways. On the Belenix project, for e.g., we've sped up the LiveCD boot enormously, and this innovative use of DTrace is now part of the Distro Constructor Toolkit at opensolaris.org.
On my Dell D620, Belenix boots in about 3 and a half minutes (with KDE), while Ubuntu 7.10 boots up in about 8 minutes.
-- Sriram
http://www.belenix.org/
http://dynamicproxy.livejournal.com/
...and slashdot bends over backwards to apologise for ever doubting them.
You'd never see that happening if the same thing applied to Microsoft.
Apple designed their port of DTrace so that any program could "opt-out" of profiling if the developers are concerned about reverse-engineering. An unintended consequence of this was that it sometimes broke profiling of other apps while those apps were running. They've fixed that bug in their implementation of crippling, but that doesn't mean they've un-crippled it.
It's a big step forward, because now at least developers can properly profile their own code. However, one of the purposes of DTrace is to profile _anybody's_ code, in order for example to diagnose performance problems on your computer perhaps caused by those programs. Apple has intentionally left that feature out. So it's arguably still pretty crippled.
For example, I can't use Mail.app because it has this bug where it automatically sends events to iCal, even if both are set up to not exchange events. So if I get an email with a malicious file, it'll compromise my system. I have to use some other mail reader until they fix it.
Unfortunately, I need to follow other sources to find out when they fix it, because Apple won't say when they've fixed it. They will include a vague line something like "Improved reliability of iCal".
Usability, to me, means you know what's going on. Hiding all the details of everything from your customers so they can't make informed decisions is not usability.