Pass4sure 9L0-061 dumps | 9L0-061 actual questions |

9L0-061 MAC OS X 10.5 Troubleshooting

Study sheperd Prepared by Apple Dumps Experts 9L0-061 Dumps and actual Questions

100% actual Questions - Exam Pass Guarantee with tall Marks - Just Memorize the Answers

9L0-061 exam Dumps Source : MAC OS X 10.5 Troubleshooting

Test Code : 9L0-061
Test denomination : MAC OS X 10.5 Troubleshooting
Vendor denomination : Apple
exam questions : 71 actual Questions

It is much to possess 9L0-061 Latest dumps.
After a few days of 9L0-061 preparation with this set, I passed the 9L0-061 exam. I must admit, I am relieved to leave it behind, yet fortunate that I organize to capitalize me score through this exam. The questions and answers they embrace in the bundle are correct. The answers are right, and the questions possess been taken from the actual 9L0-061 exam, and I got them while taking the exam. It made things a lot easier, and I got a score alittle higher than I had hoped for.

tremendous source of awesome dumps, accurate answers.
Many thanks on your 9L0-061 dumps. I identified most of the questions and likewise you had everysingle the simulations that i was asked. I were given 97% marks. After attempting several books, i was quite confused now not getting the prerogative material. i was looking for a guideline for exam 9L0-061 with facile and rightly-prepared questions and answers. exam questions fulfilled my need, because it defined the complicated subjects within the most effectual manner. in the actual exam I got 97%, which become past my expectation. thanks, to your awesome guide-line!

That was I were given coincident day dumps today's 9L0-061 examination.
I desired to possess certification in 9L0-061 exam and I select question and solution for it. Everything is brilliantly organized with I used it for topics fancy data amassing and desires in 9L0-061 exam and I were given 89 marks attempting everysingle the query and it took me nearly an hour and 20 minutes. commodious pass to killexams.

try those actual bewitch a learn at questions for 9L0-061 examination.
Im going to provide the 9L0-061 exams now, sooner or later I felt the self notion due to 9L0-061 training. If I looked at my past each time I willing to provide the tests possess been given nervous, I realize its humorous but now i am surprised why I felt no self warranty on my, motive is want of 9L0-061 education, Now im completely prepared can passed my test without problems, so if everysingle of us of you felt low self guarantee virtually score registered with the and inaugurate education, sooner or later you felt self warranty.

try this notable source of actual bewitch a learn at Questions.
I solved everysingle questions in only 1/2 time in my 9L0-061 exam. i can possess the capability to profile expend of the keep manual purpose for different tests as rightly. much liked brain dump for the assist. I need to bid that together along with your out of the ordinary keep and honing devices; I passed my 9L0-061 paper with suitablemarks. This due to the homework cooperates with your application.

These 9L0-061 questions and answers provide excellent erudition of topics.
To foster to subsist a 9L0-061 licensed, i was in push to pass the 9L0-061 exam. I attempted and failed ultimate 2 tries. Accidently, I got the material through my cousin. I was very inspired with the exam questions material. I secured 89%. I am so satisfied that I scored above the margin heed with out hassle. The material is rightly formatted as well as enriched with essential requirements. I assume its miles the wonderful desire for the exam.

I want actual bewitch a learn at questions today's 9L0-061 exam.
I passed the 9L0-061 exam thanks to, too. excellent to know Im not alone! This is a much pass to prepare for IT exams. I was worried i would fail, so I ordered this bundle. The exam simulator runs very smoothly, so I could drill in the exam environment for hours, using actual exam questions and checking my answers. As a result, I knew pretty much everything on the exam, which was the best Christmas and unique Year present I could give myself!

located maximum 9L0-061 Questions in latest dumps that I organized. material are precisely as excellent, and the percentage spreads everysingle that it need to blanket for an in depth exam planning and that i solved 89/100 questions the usage of them. I were given every simply considered one of them via planning for my tests with exam questions and exam Simulator, so this one wasnt an exemption. I am capable of assure you that the 9L0-061 is a ton tougher than past tests, so score prepared to sweat and tension.

Do you need updated dumps for 9L0-061 exam? Here it is. is the satisfactory and redress pass i possess ever encounter to Put together and pass IT checks. The component is, it offers you accurately and precisely what you need to recognise for 9L0-061 exam. My pals used for Cisco, Oracle, Microsoft, ISC and other certifications, everysingle exact and valid. completely dependable, my private preferred.

agree with it or no longer, just try 9L0-061 learn at questions as soon as!
I chose because I didnt sincerely want to pass 9L0-061 exam but I desired to skip with True marks in order that I might profile an excellent imprint on everysingle of us. In order to accomplish this I wanted outside useful resource and this become willing to present it to me. I studied over here and used 9L0-061 questions to prepare. I were given the majestic prize of best markss within the 9L0-061 test.

Apple MAC OS X 10.5

a pass to Revisit every version of Mac OS X out of your Browser | actual Questions and Pass4sure dumps

The Aqua GUI in Apple’s working systems has undergone a astounding evolution given that March of 2000, when it discovered its method into OS X 10.0, and you may subsist surprised at just how part everything looks now. due to the newly launched Aqua Screenshot Library, you could revisit each edition of OS X (and macOS) in the course of the years and view the gradual evolution of Apple’s working device—all from your browser.

The massive gallery is the latest work via 512 Pixels, a web library that makes an attempt to maintain tabs on everysingle things Apple (including the Mac’s many wallpapers). The Aqua Screenshot Library, as creator Stephen Hackett notes, gives a complete emerge on the history of Apple’s working systems, which covers its leap to from bulkier CRTs to compact, LED-backlit shows; Apple’s numerous font changes over the years; and Apple’s flood from disc-primarily based operating systems to (free) digital downloads.

Let’s bewitch a learn at some of these foremost Mac milestones.

Mac OS X 10.0 (“Cheetah”)

March 24, 2001, marked the first legitimate unlock of the Mac OS X working device, following a public beta the year before. Hackett notes that its 128MB recollection requirement was “more than most Mac clients had in their methods on the time.” This judgement many complaints about the OS’s gradual efficiency and tall resource demand. The Cheetah interface retained the pin-striped menu and window design from the beta, however began the feline-based mostly naming trend which would closing as much as version 10.eight, “Mountain Lion.”

Mac OS X Leopard (10.5)

The ultimate months of 2007 introduced some massive alterations to OS X. The unlock of Leopard saw Aqua bewitch on a a entire lot more streamlined look, with everysingle windows now defaulting to a single, elementary grey design, as smartly as the debut of a redesigned Finder tool. prior to this, different apps—and diverse versions of OS X—had numerous UI designs (for more suitable or worse). With Leopard’s unlock, OS X began to look to subsist greater uniform. most importantly, it changed into the first version to encompass those rad, house-primarily based backgrounds.

OS X Mountain Lion (10.eight)

Mountain Lion became the first edition of OS X to arrive after Steve Jobs’ death, and it focused on aligning Mac computer systems with the late CEO’s other major contribution to the tech business: the iPhone. The 2011 OS X update, Mac OS X Lion (10.7), kicked off Apple’s merging of iOS aesthetics into OS X, and the company doubled down with Mountain Lion. equipment and functions had been renamed after iOS points, and Apple brought some little visible and enter adjustments to bridge both operating techniques even closer together—in fashion, as a minimum.

OS X Mavericks (10.9)

Mavericks turned into a huge enterprise pivot for Apple, as it was the primary version of the OS the commerce released for gratis, provided to clients as an upgrade by pass of the App save in October 2013. Apple hasn’t gone again to paid working systems considering that—fortunately. Mavericks become additionally the first version of OS X to profile expend of non-feline nomenclature. It additionally ditched the galactic historical past theme for California landscapes, which they will everysingle correspond was an incredible blunder. correct?

macOS Sierra (10.12)

edition 10.12 of Apple’s operating system for the Mac is most is outstanding for its commodious rebranding. Apple dropped the “OS X” denomination entirely during this release, instead calling its operating system “macOS” to align it the enterprise’s operating methods on other structures: iOS, watchOS, and tvOS. 

browsing the Aqua Screenshot Library is a enjoyable method to see just how far macOS has come, primarily to learn how Apple’s design priorities change between the foremost releases. besides the fact that children, the Aqua Screenshot gallery is just one of 512 Pixels’ many tasks to try. profile confident to poke across the other Apple-themed collections Hackett has assembled through the years, too, including the impressive 512 Pixels YouTube channel.

the pass to repair Mac OS X edition 10.5 Leopard | actual Questions and Pass4sure dumps

Snow Leopard debuted in 2007.

Snow Leopard debuted in 2007.

Win McNamee/Getty pictures information/Getty images

Mac OS X version 10.5 Leopard gives probably the most fresh version of the Macintosh working system that runs on many PowerPC-primarily based Apple computers. fancy customary and later versions of the Mac OS, Leopard comprises utilities you could expend to troubleshoot and maintain your OS and your challenging force. To resolve freezes and crashes, or readily give your Mac a tuneup, inaugurate with Apple's developed-in upkeep tools earlier than you compass for third-party repair functions or reinstall your OS.

Obviously it is hard assignment to pick solid certification questions/answers assets concerning review, reputation and validity since individuals score sham because of picking incorrectly benefit. ensure to serve its customers best to its assets concerning exam dumps update and validity. The vast majority of other's sham report objection customers foster to us for the brain dumps and pass their exams cheerfully and effectively. They never trade off on their review, reputation and attribute because killexams review, killexams reputation and killexams customer assurance is vital to us. Uniquely they deal with review, reputation, sham report grievance, trust, validity, report and scam. In the event that you see any spurious report posted by their rivals with the denomination killexams sham report grievance web, sham report, scam, dissension or something fancy this, simply recall there are constantly terrible individuals harming reputation of excellent administrations because of their advantages. There are a much many fulfilled clients that pass their exams utilizing brain dumps, killexams PDF questions, killexams hone questions, killexams exam simulator. Visit, their specimen questions and test brain dumps, their exam simulator and you will realize that is the best brain dumps site.

Back to Bootcamp Menu

HP0-045 test questions | F50-531 free pdf | NS0-320 drill exam | 190-955 free pdf | 644-906 brain dumps | HP3-C29 exam questions | C9030-633 free pdf | HH0-560 test prep | C2010-658 VCE | 000-979 drill test | PDM-2002001060 cheat sheets | C2050-219 braindumps | 1Z0-331 test prep | 000-533 sample test | EX0-114 exam prep | 000-646 drill questions | E20-537 braindumps | 1Z0-599 actual questions | E20-542 dump | 920-503 cram |

Ensure your success with this 9L0-061 question bank
Just recede through their Questions bank and feel confident about the 9L0-061 test. You will pass your exam at tall marks or your money back. They possess aggregated a database of 9L0-061 Dumps from actual exams so as to give you a haphazard to score ready and pass 9L0-061 exam on the very first attempt. Simply set up their Exam Simulator and score ready. You will pass the exam.

We possess Tested and Approved 9L0-061 Exams. provides the most accurate and latest IT exam materials which almost contain everysingle erudition points. With the aid of their 9L0-061 study materials, you dont need to waste your time on reading bulk of reference books and just need to spend 10-20 hours to master their 9L0-061 actual questions and answers. And they provide you with PDF Version & Software Version exam questions and answers. For Software Version materials, Its offered to give the candidates simulate the Apple 9L0-061 exam in a actual environment. Huge Discount Coupons and Promo Codes are as under;
WC2017 : 60% Discount Coupon for everysingle exams on website
PROF17 : 10% Discount Coupon for Orders greater than $69
DEAL17 : 15% Discount Coupon for Orders greater than $99
DECSPECIAL : 10% Special Discount Coupon for everysingle Orders
Click possess their specialists Team to guarantee their Apple 9L0-061 exam questions are reliably the most updated. They are entirely set with the exams and testing system.

How preserve up Apple 9L0-061 exams updated?: they possess their brilliant system to check for update in exam questions s of Apple 9L0-061. Presently after which they contact their assistants who're particularly composed with the exam simulator acknowledgment or now and again their clients will email us the latest update, or they were given the most current update from their dumps providers. When they find the Apple 9L0-061 exams changed then they update them ASAP.

On the off prep that you genuinely foster up fleet this 9L0-061 MAC OS X 10.5 Troubleshooting and might pick never again to sit taut for the updates then they will give you plenary refund. in any case, you ought to ship your score reply to us with the objective that they will possess an exam. They will give you plenary refund speedy during their working time when they score the Apple 9L0-061 score record from you.

Right when will I score my 9L0-061 material once I pay?: You will receive your username/password within 5 minutes after successful payment. You can then login and download your files any time. You will subsist able to download updated file within the validity of your account. Huge Discount Coupons and Promo Codes are as under;
WC2017: 60% Discount Coupon for everysingle exams on website
PROF17: 10% Discount Coupon for Orders greater than $69
DEAL17: 15% Discount Coupon for Orders greater than $99
DECSPECIAL: 10% Special Discount Coupon for everysingle Orders

Since 1997, we have provided a high quality education to our community with an emphasis on academic excellence and strong personal values.

Killexams HP0-Y17 sample test | Killexams 312-50v8 cram | Killexams 000-877 free pdf | Killexams 050-650 drill questions | Killexams 000-957 drill test | Killexams F50-528 dump | Killexams HP0-265 examcollection | Killexams 000-M61 exam questions | Killexams LOT-829 actual questions | Killexams CUR-051 actual questions | Killexams HP0-Y23 braindumps | Killexams 920-320 test prep | Killexams HP0-A116 free pdf | Killexams 642-542 study guide | Killexams A2040-922 test prep | Killexams HP0-Y11 test questions | Killexams 000-733 study guide | Killexams 642-964 questions and answers | Killexams MB2-707 braindumps | Killexams 920-162 drill exam |

Exam Simulator : Pass4sure 9L0-061 Exam Simulator

View Complete list of Brain dumps

Killexams HP2-E25 brain dumps | Killexams 00M-155 drill test | Killexams 190-952 questions and answers | Killexams HP0-336 dump | Killexams VCS-411 mock exam | Killexams EX0-117 test prep | Killexams 1Z0-448 braindumps | Killexams HP0-660 free pdf | Killexams COG-105 braindumps | Killexams OMG-OCUP-100 test questions | Killexams 000-J02 exam prep | Killexams LOT-988 examcollection | Killexams HP0-729 free pdf download | Killexams 312-76 actual questions | Killexams HP0-052 dumps | Killexams 000-713 exam questions | Killexams C2180-317 free pdf | Killexams 920-552 dumps questions | Killexams E20-555 actual questions | Killexams C2140-136 test prep |

MAC OS X 10.5 Troubleshooting

Pass 4 confident 9L0-061 dumps | 9L0-061 actual questions |

How to Repair Mac OS X Version 10.5 Leopard | actual questions and Pass4sure dumps

Snow Leopard debuted in 2007.

Snow Leopard debuted in 2007.

Win McNamee/Getty Images News/Getty Images

Mac OS X version 10.5 Leopard provides the most recent version of the Macintosh operating system that runs on many PowerPC-based Apple computers. fancy previous and later versions of the Mac OS, Leopard includes utilities you can expend to troubleshoot and maintain your OS and your hard drive. To resolve freezes and crashes, or simply give your Mac a tuneup, inaugurate with Apple's built-in maintenance tools before you compass for third-party repair applications or reinstall your OS.

Mac OS X 10.5 Leopard: the Ars Technica review | actual questions and Pass4sure dumps

reader comments with 0 posters participating Share this story
  • Share on Facebook
  • Share on Twitter
  • Share on Reddit
  • Introduction

    At the discontinue of my Mac OS X 10.4 Tiger review, I wrote this.

    Overall, Tiger is impressive. If this is what Apple can finish with 18 months of progress time instead of 12, I tremble to assume what they could finish with a plenary two years.

    That was exactly two and a half years ago, to the day. It seems that I've gotten my wish and then some. Mac OS X 10.5 Leopard has gestated longer than any release of Mac OS X (other than 10.0, that is). If I had tall expectations for 10.5 back in 2005, they've only grown as the months and years possess passed. Apple's tantalizingly specific withholding of information about Leopard just fanned the flames. My state of intellect leading up to the release of Leopard probably matches that of a lot of Mac enthusiasts: this better subsist good.

    Maybe the average Mac user just expects another incrementally improved version of Mac OS X. Eighteen months, two and a half years, who's counting? Maybe they enthusiasts are just getting greedy. After all, as Apple's been so fond of touting, there possess been five releases of Mac OS X in the time it's taken Microsoft to deliver Windows Vista.

    But far subsist it from me to expend Microsoft to calibrate my expectations. Leopard has to subsist something special. And as I see it, operating system beauty is more than skin deep. While the casual Mac user will gauge Leopard's worth by reading about the marquee features or watching a guided tour movie at Apple's web site, those of us with an unhealthy obsession with operating systems will subsist trolling through the internals to see what's really changed.

    These two views of Leopard, the interface and the internals, lead to two very different assessments. Somewhere in between lie the features themselves, judged not by the technology they're based on or the interface provided for them, but by what they can actually finish for the user.

    This review will cover everysingle of those angles, in varying degrees of depth. fancy everysingle other Mac OS X releases before it, Leopard is too commodious for one review to cover everything. (After all, Tiger's internals lonely can fill over 1,600 printed pages.) As in past reviews, I've chosen to delve deeply into the aspects of Leopard that are the most Interesting to me while likewise trying to provide a reasonable overview for the non-geeks who've decided to bewitch the plunge into an Ars Technica review. (Hi, Mom.)

    Okay Leopard, let's see what you've got.


    This is the allotment where I usually link to the entire history of Ars Technica's Mac OS X coverage, from the hoary DP2 in 1999 everysingle the pass up to the previous major release. If you're interested, you can find the list of links on page two of my Tiger review. But with 10.5, I assume it's time to profile a spotless rupture from the past. While Mac OS X is noiseless changing as fleet as it ever has, I feel fancy the concept of Mac OS X as a product has settled down in the minds of users. What was once seen as a bizarre and exotic beast is now simply "the Mac operating system." It's almost a shame that the "X" qualifier is in there.

    After over eight years of exposure, even the hardest of hardcore classic Mac OS fans possess gone through everysingle five stages of grief over what's been lost—some of us multiple times. Though what's been organize in Mac OS X has long overshadowed those concerns, leisure assured that they are not forgotten. The inequity now is that enough time has passed to allow them (I hope) to shed everysingle semblance of nostalgia and subsist seen as they always should possess been, as captious statements about the current state of Mac OS X, plenary stop.

    Moving on to hardware, can you believe I noiseless don't possess an Intel Mac in the house? Okay, maybe it's not so hard to believe if you occur to recall that my dual 2GHz G5 replaced a blue and white G3/400, and my G3/400 replaced an SE/30. Though a MacBook Pro is likely on its pass to my house as you read this, alas it did not profile it in time for this review. On the quick-witted side, my relatively static hardware collection allows for excellent continuity of performance impressions. To recap, my time with Leopard has been spent with the following hardware:

  • Dual G5 2GHz: A dual 2GHz Power Mac G5 with 2.5GB RAM, an ATI Radeon 9800 Pro video card with 128MB of VRAM in an 8x AGP slot, two 160GB 7,200 RPM Serial ATA hard drives, a DVD-RW/CD-RW drive, and a 23-inch Apple Cinema HD panoply (the non-aluminum one).
  • Dual G5 1.8GHz: A dual 1.8GHz Power Mac G5 with 1.25GB RAM, an ATI Radeon 9600 XT video card with 128MB of VRAM in an 8x AGP slot, a 80GB 7,200 RPM Serial ATA hard drive, a CD-RW/DVD-ROM drive, and a Dell 20-inch LCD.
  • 15" AlBook: The 1GHz 15-inch Aluminum PowerBook G4 which I reviewed here at Ars Technica.
  • In this post-PowerPC era, it's reasonable to await that Apple is spending most of its time on Intel-specific performance enhancements, but even if this were not the case, Intel's CPUs possess long since left behind the ultimate PowerPC chips used in Macs in terms of everysingle reasonable performance measures. There is no need for profound analysis or gnashing of teeth; Leopard is faster on today's Intel Macs than it is on yesterday's PowerPC Macs because today's Intel Macs are, well, today's Macs. Time marches on.

    The excellent news, I suppose, is that Leopard certainly isn't hamstrung on PowerPC Macs. More on performance later. For now, let's talk fluff.


    Big cat names are noiseless in effect. After a two-year wait, I was entirely ready for Apple to abandon this theme. It's almost as if they have. Leopard's branding has few feline traces: no furry "X" logo, no leopard spots in the screenshots, and so on. So what is the theme? First, recall the history.

    Mac OS X boxes: Cheetah/Puma, Jaguar, Panther, TigerMac OS X boxes: Cheetah/Puma, Jaguar, Panther, Tiger

    So what's the sage with Leopard? Quite simply, it's Tiger in space.

    To my eyes, Mac OS X's branding is changing ever so slightly less between each unique release. I guess this is yet another token of a maturing product. I fancy the space theme. fancy Tiger's spotlight theme, it highlights the most prominent feature of the OS. It likewise leads nicely into a secondary future-world theme, as seen in this screenshot of a prerelease web page at

    It took a while to settle down, but once the space theme was chosen, Apple has sprint with it and produced what I assume is the most appealing mass-market message for Mac OS X yet.


    The installation process has been further pared down. There are fewer options in the optional install and even less clutter on the screen during the installation process. They Mac users bewitch this everysingle in stride, but I can imagine the Leopard installer being a revelation to someone who uses Windows exclusively.

    Apple has likewise updated the introduction movie, which now plays full-screen during the first boot into Leopard. It's hot.

    Leopard's unique look

    There's been mention of a "new look" in most post-10.0 Mac OS X reviews, and with excellent reason. With each release of Mac OS X, Apple has chosen to revise the learn of several aspects of the interface. Sometimes these changes were made for usability reasons, but increasingly, the motivation appeared to be, for want of a better word, fashion.

    The phrase "arbitrary graphical change" has become increasingly applicable, and the sheer number of possible looks for any given component of the OS has exploded. As of the discontinue of Tiger's reign, most major interface elements had at least two possible looks, with windows themselves having many more than that. Worse, Apple itself has introduced many unique looks that are exclusive to its own applications (e.g., the iTunes scroll bars or just about the entire Aperture interface.)

    I've never been among those who rail against this proliferation of looks based solely on their number. It's okay to possess multiple looks for, say, a button as long as it's noiseless recognizable as a button. In fact, this exact sentiment was expressed in Apple's human interface guidelines long before the advent of Mac OS X.

    That said, I possess my own reasons for being down on the state of Mac OS X's appearance through the Tiger era. Put simply, after six years of tweaks, I'm ready for a commodious change.

    I touched on this in the introduction, and it colors my entire view of Leopard: I'm looking for a discontinuity, a unique beginning, in everysingle aspects of the OS. This is unfair (and you'll see how unfair in a moment), but it's how I felt. I know plenty of other Mac fans likewise pinned their hopes on a radical appearance revision in Leopard; everysingle the "top secret" hype certainly fanned those flames.

    Just to subsist clear, I'm talking only about the appearance of the OS for now. I certainly wasn't expecting commodious changes to the interface behavior—a crazy iPhone-like multitouch reimagining, pervasive voice or handwriting recognition, and so on. But there's plenty of room for a revolution solely within the "look" half of "look and feel."

    Look no further than the introduction of Aqua itself for the quintessential example. recall what that was like?

    Introducing Aqua.

    Aqua hit fancy a ton of bricks, and it wasn't just because it was such a rupture from the past. Aqua was a comprehensive overhaul of the learn of Mac OS. As it existed in Mac OS X 10.0, Aqua was a closed circle: a single, internally consistent design from top to bottom.

    That's not to yell that it was perfect—far from it. Some judged it too bright; the pinstripes were a bit too pronounced; translucency hindered legibility in some areas; the list went on. These flaws were slowly corrected with each subsequent revision of Mac OS X. But while these corrections improved the usability and (usually) the learn of the OS, they likewise compromised the overall aesthetic design. What started as a (flawed) work of genius was patched and filled and tweaked by a committee of pragmatists, rendering it much improved, but considerably less inspired.

    Is it dispassionate to await Leopard to wipe the slate spotless and, further, to succeed where Aqua failed by being at once a work of art and a pragmatic match for the evolved Tiger user interface? Maybe not, but that's what was in my heart as Leopard was revealed. I wanted Steve to score up on stage and say, "Aqua's had a excellent run, but it's time for something new. Introducing (insert code denomination here)." That's why I loved the "Illuminous" rumor so much. To me, a unique denomination meant a unique beginning.

    Leopard's unique look: the reality

    Leopard's appearance is not a unique beginning, but it is noiseless the most substantial visual change in the history of Mac OS X. This is mostly attributable to the appearance of windows. A Leopard window looks fancy this (mouse over for graphite).

    Notice that I didn't yell that this is what a "standard" Leopard window looks like, or a "metal" Leopard window, or a "unified" Leopard window. That's because there's only one kindhearted of window in Leopard, and you're looking at it. This slate gray appearance replaces everysingle other yardstick window styles. Existing applications that interrogate for metal or unified windows will score this appearance instead.

    Custom appearances fancy those used by some of Apple's applications retain their unique looks. (Yes, Garage troupe is noiseless sporting wood.) But oddballs aside, this is effectively a majestic Unification of window appearance after six long years of experimentation.

    I mentioned before that I've never been opposed to multiple window looks on generic principles, but there was one judgement (aside from my desire for radical change) that the multiplying window appearances bothered me. The commodious problem was that it was never lucid which appearance to expend in any given situation. Apple's few attempts at setting guidelines stank of retroactive justification, so developers were left to their own judgment. This led to some impoverished choices and some unsightly applications.

    And, verisimilitude subsist told, if there's no coherent judgement for the expend of a unique window appearance, then why does it need to exist at everysingle as a system-wide option for everysingle developers? I'm not confident what to convene the unique One True Window Appearance in Leopard (Aqua? Slate?), but I'm joyous someone at Apple finally made a election and stuck with it.

    As for the learn itself, I find it kindhearted of heavy, especially when paired with the still-bright yardstick window background, as seen in dialogs, especially.

    It likewise clashes a bit with the mostly unchanged buttons, scroll bar thumbs, and other yardstick controls that retain their shiny blue appearance. The customary "Aqua" window looks (any of them) were definitely a better fit.

    Tool bars in the unique windows are "unified" in that there is no dividing line between the title bar and the tool bar area. tool bar items retain their many different looks across the bundled applications. There's a unique appearance for the "selected" state of toolbar items, which has its own Interesting story.

    There's likewise been a welcome revision to the learn of "capsule" toolbar buttons. Gone are the muppet-felt blue buttons introduced in Tiger's Mail application, replaced with more palatable gray equivalents.

    Preview toolbar capsulesPreview toolbar capsules Mail toolbar capsulesMail toolbar capsules Depressed toolbar buttonDepressed toolbar button

    The capsules are noiseless a bit of an oddity, coming in runt clumps as they do. The Safari-style square toolbar buttons are more common, and much nicer looking. The dejected (mouse-down) state of these buttons is particularly nice.

    The dormant state of the unique windows is now more clearly distinguished from the energetic state. dormant windows fade to a much lighter shade of gray. The switch from shadowy to light gray can actually subsist a bit jarring when it happens to big windows.

    Inactive windowInactive window

    It takes a while to score used to these changes. Long-time users used to looking for "dark windows" to pick out Safari, for example, will subsist flustered. Now, only the front-most window is dark, and even Safari windows are light when in the background. Still, it's a change worth acclimating to.

    To even further emphasize the front-most window, its drop shadow has been greatly expanded (see screenshot above). It's large, but likewise quite diffuse, so it doesn't unduly obscure content below.

    Aesthetic quibbles aside, the unique window learn is overwhelmingly a net win. It eliminates developer and user confusion, sweeps up and disposes of several unsightly (in the sentiment of many) looks from past versions of Mac OS X, and is, well, pretty okay looking in its own right.

    Perhaps I should try to sound more positive about the unique window style, because it turns out to subsist the highlight of the visual changes. Leopard likewise includes its own crop of the aforementioned "arbitrary graphical changes," and most of them are not changes for the better.

    Leopard's unique learn (continued)

    Arguably, the unique window appearance was likewise an capricious change. (Why shadowy gray? Why not standardize on the customary "unified" appearance instead?) But in the majestic scheme of things, the particular design chosen is not as significant as the fact that a election was made. Of course, it could possess been an unsightly election (I don't assume it is) or it could possess suffered from terrible usability issues (I don't assume it does), but at least the intent was a excellent one: to simplify.

    The selfsame cannot subsist said for a several other significant changes to the learn of Leopard's interface. Their intent is unclear at best, they judgement usability issues where notasoul existed before, and many of them are visually unpleasing, if not downright ugly.

    Folders Tiger folder iconTiger folder icon

    Let's start with the most iconic icon in the OS, the humble folder. Next to windows and yardstick controls, the folder icon is the most ubiquitous piece of reused art. A lot of people didn't fancy the folder icon introduced in Mac OS X 10.0 and carried through essentially unchanged to Tiger.

    As the learn of the OS moved away from 10.0's heavily pinstriped, ultra-bright-and-shiny look, the folder icon stayed stuck in the past. Some likewise complained that the isometric perspective didn't match Apple's icon design guidelines. But these are everysingle trivial issues, and subjective ones at that. Most Mac users were not clamoring en masse for unique folder icons.

    Leopard folder icon. Enlarge / Leopard folder icon.

    I'm not opposed to a unique folder icon design, of course. But the first rule of such an trouble should subsist "don't profile it worse." Unfortunately, that's exactly what Apple's done with the Leopard folder icon design.

    The learn isn't bad, right? It's noiseless easily recognizable as a folder. It's even environmentally friendly; note the darker blue flecks that imply it's a recycled paper product. (Er, recycled pixels... or something.) The distress starts when you see what the "special" folder icons learn fancy (Applications, Documents, etc.)

    Leopard special folder iconsLeopard special folder icons

    The embossed learn is attractive, but it's likewise incredibly low-contrast and pretty much impossible to profile out at little sizes. I preserve several special folders in my Dock, and I depend on being able to pick them out quickly, even at little sizes. Here's how they learn in Tiger.

    Tiger docked special foldersTiger docked special folders

    Now here they are in Leopard.

    Leopard docked special foldersLeopard docked special folders

    When it comes to at-a-glance identification, the inequity is striking. I find myself literally squinting at the Leopard special folder icons, as if I'm constantly not seeing them clearly. You can find a more rigorous examination of the unique folder icons at Indie HIG (a site whose mere actuality is a blot on Apple's recent user interface record).

    Poorly designed folder icons aren't the discontinue of the world, but it's the context that's so maddening. Here's an interface component that maybe could possess used some freshening up, but it was far from broken. Apple's gone and made it worse in a pass that's obvious in seconds to anyone who's ever given any thought to interface design. It boggles the mind. The rumor is that Jobs likes them. Great.

    The Dock

    It gets worse. Next to recede under the knife is the Dock. Now here's an interface component with some serious, long-standing issues, but recall we're only talking about appearances in this section. On that front, there's not much to complain about in Tiger, where the Dock is a minimalist translucent rectangle upon which icons are arrayed.

    The Tiger DockThe Tiger Dock

    Hmm, how can they profile this more "Leopard"? We'll possess to dwindle the usability in some obvious ways. I've got a few ideas there. Let's start by removing the uniform background, leaving the icons partially hanging over the desktop. That'll subsist confident to judgement some visibility issues. Next, the already-small triangles that emerge under running application icons can probably subsist further obscured. Let's replace those with fuzzy blue orbs. Also, if they can effectively profile the Dock less space-efficient, that'd subsist a plus. But they likewise possess to jazz it up, don't we?

    I know! Let's profile it pseudo-3D! And finally, the obligatory demo feature: reflections everywhere! Reflections on the fuzzy blue orbs, a reflection highlight line running across the entire Dock, and—the coupe de grâce—real-time reflections of any windows that wobble near the Dock! Behold, the Leopard Dock.

    The Leopard Dock. The Dock on<br /> the sideThe Dock on the side

    It's a cornucopia of Obviously heinous Ideas, again addressed more thoroughly by others. This is fancy the folder icon situation everysingle over again, but even worse. It's an specimen of sacrificing usability for the sake of purely aesthetic changes that are far from universally loved (to Put it mildly) in isolation, and inexcusable given the cost paid for them.

    Seriously, pseudo-3D? Really? If a compulsion for gaudiness must subsist quenched, at least try to confine such exercises to more obscure features. Don't scribble everysingle over the second-most visible interface component in the entire OS fancy a nine year-old girl putting make-up on her dollie.

    When the Dock is placed on the side, it regains its sanity, appearing with a uniform, flat background that encloses the icons entirely. There are no real-time reflections, and running applications are indicated by a little but high-contrast white dot.

    This visual style never appeared in a developer seed of Leopard, indicating that it was added very late in the game. Perhaps it's meant as an apology, or an acknowledgement that the people most annoyed by the learn of the horizontal Dock are likewise the most likely to possess their Docks on the side. Either way, the presence of an alternate learn is a tacit admission that the default design has problems.

    If you want the alternate learn when the Dock is on the bottom too, ilk the following commands at a Terminal prompt:

    % defaults write no-glass -boolean YES % killall Dock

    There is actually one legitimate improvement in the appearance of the Leopard Dock. The text labels that emerge when hovering over Dock icons are more readable, with light text on top of large, uniform, shadowy backgrounds.

    Dock labelsDock labels

    Did I yell "second-most visible interface element" earlier? Oh, you see it coming, don't you? What's the most visible interface element? What's on screen even more than the Dock? Your brain doesn't even want to recede there, I know. "The menu bar? Surely they didn't... I mean, what's to change there?" Oh yes, buckle your straightjackets; they possess now passed over to the other side.

    The menu bar

    Completing the troika of insane, unnecessary changes for the worse made to Mac OS X's most prominent interface elements is the Leopard menu bar which is, inexplicably, incomprehensibly translucent.

    The Leopard menu bar. ReallyThe Leopard menu bar. Really

    It's more of a "menu smear" than a menu bar, as if someone painted it onto the screen with Vaseline. (It's actually using Core Image to filter the background, if you care.)

    It used to subsist worse, believe it or not. In prerelease versions of Leopard, the menu bar was even less opaque—comically so. But Apple gets zero points from me for lessening the degree of transparency. That'd subsist fancy congratulating someone for extinguishing the left half of his body after intentionally lighting himself on fire.

    The rationale proffered by Apple for the expend of translucency in the original Aqua design was that it denoted a fleeting element—pull-down menus and sheets, for example. Now it's being applied to the least fleeting component in the entire interface.

    Leopard's unique learn has been compared to the Aero Glass learn in Windows Vista. While I assume there are few legitimate similarities, this comparison comes up as often as it does because the two designs participate one prominent attribute: the gratuitous, inappropriate expend of translucency to the detriment of usability.

    Why, Apple? Why!? Was there something horribly wrong with the existing menu bar—something that could only subsist fixed by injuring its legibility? fancy the folder icons and the Dock, it's not so much a lethal flaw in and of itself. It's what it implies about the situation at Apple that is so troubling. What in the holy hell has to occur in a meeting for this thought to score the green light? Is this the shadowy side of Steve Jobs's iron-fisted rule—that there's always a risk that an obviously ridiculous and horrible thought will subsist expressed in his presence and he'll (inexplicably) latch onto it and profile it happen? Ugh, I don't even want to assume about it.

    In the meantime, there's confident to subsist a burgeoning market for hacks to restore blessed sanity to the menu bar. This is nothing new, really. Since the dawn of Mac OS X, third-party developers possess been saving Apple's bacon by doing what Apple should possess done itself. I already need several "hacks" to subsist fortunate in Tiger, but a hack for the menu bar? It's just getting ridiculous.

    I guess I should try to yell something nice about the Leopard menu bar too. Well, the unique Spotlight icon fits in much better with the line-art theme used for other menu icons.

    Menu bar iconsMenu bar icons

    Leopard's menus likewise possess a subtle change: rounded corners. Only the lower corners are rounded in drop-down menus, while everysingle four corners are rounded in pop-up menus.

    Pull-down menu

    Pull-down menu

    Pop-up menu<br /> (graphite)

    Pop-up menu (graphite)

    Although I'm a commodious fan of rounded corners (round rects forever!) I don't fancy them in this particular location; I assume it makes drop-down menus in particular learn less crisp. But at least the change has no detrimental sequel on usability and isn't aggressively ugly.

    The unique menu highlight color is a deep, affluent blue on an appropriately slatey gray, both with the obligatory gradients. They're certainly striking, but perhaps distractingly so. I know, I know, I'm never satisfied.

    Leopard's visual scorecard

    I'm going to desist here, not because there's nothing more to yell about the unique learn in Leopard, but because the things I possess covered span the compass of quality. The new, standardized window style makes the biggest visual impact and is the best aspect of the unique design. At the other discontinue of the spectrum are the baffling alterations and adornments that profile Leopard less usable and (in many cases) less pleasant to learn at. There are little visual improvements in individual applications, but the overall learn of the OS proper is foundering.

    I was ready for an all-new learn in Leopard; I was ready for Aqua's successor. That Leopard doesn't provide that is a disappointment, but hardly a sin. But a lower degree of hardship should entail less risk. Viewed in that light, Leopard's graphical missteps are damning. If Apple is going to profile mistakes, let them subsist made in service of a truly daring design. I'm willing to forgive, and even to learn back fondly on the original Aqua UI for this reason. But to attempt a relatively tame evolution and then to willfully screw things up—things that were not broken before—that I finish not forgive.

    The Kernel

    Let's recede in the opposite direction entirely and dive into the core of the OS. We'll work their pass back up to the higher levels eventually. For now, it's kernel time.

    There was a bit of a kerfuffle about the future of the Mac OS X kernel back in the summer of 2006, fed mostly (as these things often are) by an information vacuum. The summary is that Apple wasn't releasing the source code to its then-new x86 kernel (as it had with everysingle previous kernels) and wouldn't yell why. Many theories sprang up to fill the void. I, of course, had my own pet theory.

    The most logical judgement that I can assume of for Apple's refusal (thus far) to publish the source code to the x86 version of the Mac OS X kernel is that the kernel shipping today in the x86 versions of Mac OS X Tiger is an evolutionary inanimate end, and therefore not worth the trouble to pretty up and publish.

    Presumably, everysingle of the major work on Mac OS X, the kernel or otherwise, has long been focused on Leopard. Now imagine that the Leopard kernel has significantly diverged from the Tiger kernel. Maybe it's a unique kernel entirely, or maybe it has significant changes to champion virtualization more efficiently, or something in between. Apple seems to subsist holding its cards nearby to its chest until WWDC. In the meantime, pushing out the source to a soon-to-be defunct incarnation of the Tiger kernel might not subsist along the captious path.

    I even had some crackpot ideas about what, exactly, could replace the existing Mach/BSD kernel—ideas that didn't stand up to much scrutiny, sadly. But as usual, I was smart (or wimpy) enough to hedge my bets.

    I'll subsist very surprised if there's no commodious kernel-related technology or announcement at WWDC. That said, I don't see any pressing need for major kernel shenanigans in Leopard, just more of the selfsame kinds of improvements that came in Tiger. Maybe no commodious announcement really would subsist the best possible outcome.

    WWDC came and went (and came and went) and there was no major kernel announcement. The Leopard kernel does indeed contain "more of the selfsame kinds of improvements" that we've seen over the life of Mac OS X, and that's not a heinous thing at all. (I'll save my kernel pipe dreams for Mac OS X 11.0, I suppose.)

    A lot of the kernel rumor craziness had its origins in the thought that Mac OS X is a impoverished performer at the kernel flat due to some fundamental design choices. This is a long-standing meme with some sound (though often misapplied) computer science theory surrounding it, as well as the expected bevy of dubious benchmarks.

    As usual, the verisimilitude is much less dramatic. The core OS team at Apple is, perhaps predictably, the polar opposite of the graphical design team. Apple's kernel engineers in particular are pragmatic, cautious, and wise. They're likewise human, however—if you prick them, finish they not bleed?—which may complicated why they spent some time at WWDC spelling out the philosophy behind Mac OS X's kernel progress process.

    Apple's focus is on system-level performance, not micro-benchmarks. The kernel team's job is to profile the software at the higher levels learn good. If improving the performance of some tiny aspect of the kernel tenfold does not provide a measurable performance augment for some user-visible feature or task, it's not an effectual expend of progress time, benchmark bragging rights subsist damned.

    That's not to yell that Apple's kernel team isn't competitive. But when it comes to dedicated kernel benchmarks, there's a natural home-field advantage: Linux tends to finish well on LMBench, Solaris does well on libmicro, and so on. This is not surprising; the election of benchmark determines where optimization is done. Apple's conclusion to measure kernel performance "from the top" by looking at the conduct of the actual applications running on the plenary OS dictates which aspects of the kernel score the most attention.

    In Mac OS X in general, and in Leopard in particular, improvements to scheduling and latency are important. There's a commodious inequity between being "fast" and being "responsive," and Apple's focus is on the latter. Here are a few of the highlights from the Leopard kernel. (For the nitty gritty details, there's always the source code... or will be, once Apple updates its repository.)

    Kernel highlights

    The Leopard kernel is better about scheduling processes on CPUs, affecting from a single, flat queue of processes to a hierarchical one that better reflects the actual hardware (e.g., two part chips, each with two CPU cores). Bouncing a process from one CPU to another is heinous for performance; the on-chip caches don't score a haphazard to properly warm up. But multiple cores on the selfsame chip often participate some caches. A hierarchy of process queues in the kernel created with this erudition allows for better scheduling choices.

    The Leopard virtual recollection system is better about determining which pieces of recollection are actually being used by your application prerogative now and which are safe to swap out to disk. When it comes time to swap to disk, Leopard will (finally!) dynamically appropriate swap files, which means that you should score some disk space back when the recollection pressure abates.

    Resource limits, the bane of my actuality in Tiger and earlier, are dynamic where possible in Leopard. These are things fancy the number of open files or processes per user and so on. If you've never bumped up against these limits, reckon yourself lucky; a lot of things desist working in very heinous ways when you can't open any more files, for example.

    I routinely sprint into these limits in Tiger and possess often been forced to bewitch heroic measures to augment them. A few of the defaults possess likewise increased in Leopard (e.g., the default maximum number of processes per user has increased from 100 to 266. I'll noiseless preserve mine over 2000, thanks). And for excellent measure, there are even a few unique limits on previously unlimited resources fancy resident and wired recollection sizes.

    The Leopard kernel likewise has a unique "sandboxing" system which forces inevitable processes to sprint in their own isolated, restricted environments for security reasons. Apple's implementation is based on mandatory access control (yet another "MAC" acronym that's not short for "Macintosh"). These sandboxes are defined, in typically unpretentious Unix style, by unpretentious text files (examples can subsist organize in /usr/share/sandbox) and are applied to many system services in Leopard, including Bonjour, Quick Look, Spotlight, NTP, and many others.


    Perhaps the most significant change in the Leopard kernel is the addition of DTrace. DTrace was developed by Sun and is open source. Apple's core OS team has continued its vein of shrewdly identifying and adopting best-of-breed open-source projects and has completed the substantial task of porting DTrace from Solaris to the Mac OS X kernel. DTrace solves a long-standing kernel progress problem, and does so in such a exotic pass that it creates unique opportunities for Apple to capitalize everysingle programmers, not just kernel hackers.

    To understand how DTrace helps kernel developers, reckon the following scenario. Let's yell you're a developer working on some aspect of process creation in the kernel. To capitalize during your development, you'd fancy some sort of notification every time a unique process is created. So you find the function in the kernel that creates a unique process, and you add a bit of your own code to the beginning of that function that prints some information to a log file. Now you recompile your kernel, reboot, and continue your work.

    Unfortunately, you've hard-coded at least three things using this technique: 1) the fact that you want some debugging information, 2) the location of the inquiry, and 3) the mechanism of the report. Furthermore, it's likely that you'll want similar bits of debugging code in other places in the kernel in the future, and it's unlikely that you'll want every one of these bits energetic at the selfsame time.

    So, being the excellent runt programmer that you are, you foster up with a more generic solution. At each point where some debugging code may subsist useful, you wrap the code in a conditional expression that asks, "Should this piece of debugging subsist turned on prerogative now?"

    This seems fancy a excellent solution until you've filled the kernel with these snippets. recall that the kernel, by its nature, tends to contain code that executes very quickly and very frequently. A tiny check to see if a particular piece of debugging should subsist turned on may only bewitch a millisecond, but if the entire routine executed in ten milliseconds before you added this check, you've just increased the execution time significantly. And if this routine is called many thousands of times per second, you're starting to talk some actual wall-clock time down the drain. Now multiply this by many hundreds or thousands of debugging probes in the kernel, and it becomes lucid why everysingle these checks cannot subsist left in the finished product.

    The obvious solution is to transfigure these debugging checks from conditions that are evaluated at runtime to conditionally compiled code. When debugging is enabled during the kernel build process, some or everysingle of the debugging code is included in the build. But when debugging is disabled for a production build, the debugging code is omitted entirely from the kernel.

    Though I've simplified things greatly, this is the gist of traditional kernel-level debugging probes. You work with a special "debug build" that may subsist leisurely but which contains everysingle the diagnostics you need for development. When you need to add, enable, or disable some debugging code, you recompile and reboot. When you're happy, you compile an optimized production build of the kernel that contains notasoul of this debugging code.

    Into this environment comes DTrace, which proposes the following seemingly impossible combination of features.

  • No recompilation required. Enable or disable debugging probes in actual time on a running kernel.
  • Near-zero overhead when not in use. The impact of disabled debugging code is so little that everysingle such code can subsist left in production kernel builds.
  • Programmers reading this will subsist forgiven for cringing a bit at the smell of self-modifying code, but my recommendation is to just nearby your eyes and assume of England. The bottom line is that it actually works, and works well.

    DTrace supports its own simplified programming language called "D" (no, not that one) which is used to define probes. Here's an specimen that prints a notification every time a unique process is created.

    #!/usr/sbin/dtrace -s #pragma D option quiet syscall::exec*:return { printf("%Y unique process %s (pid %d) createdn", walltimestamp, curpsinfo->pr_psargs, curpsinfo->pr_pid); }

    The output looks fancy this.

    2007 Sep 22 22:10:16 unique process ls (pid 1743) created 2007 Sep 22 22:11:34 unique process nmblookup (pid 1746) created 2007 Sep 22 22:18:11 unique process coreservicesd (pid 85) created 2007 Sep 22 22:21:11 unique process login (pid 1752) created 2007 Sep 22 22:21:12 unique process bash (pid 1753) created 2007 Sep 22 22:21:12 unique process sh (pid 1755) created ...

    Here's another one, slightly more complicated. It waits for the ls program to profile the stat() system call, then traces the execution of this convene through the kernel.

    #!/usr/sbin/dtrace -s #pragma D option flowindent syscall::stat:entry /execname == "ls" && guard++ == 0/ { self->traceme = 1; } fbt::: /self->traceme/ { /* default action */ } syscall::stat:return /self->traceme/ { self->traceme = 0; }

    Here's the (abbreviated) output.

    CPU FUNCTION 1 -> stat 1 -> vfs_context_current 1 <- vfs_context_current 1 -> vfs_context_proc 1 <- vfs_context_proc 1 -> namei 1 -> vfs_context_proc 1 <- vfs_context_proc 1 -> lookup 1 -> name_cache_unlock 1 -> mac_vnode_check_lookup 1 -> vfs_context_proc 1 <- vfs_context_proc 1 -> mac_policy_list_conditional_busy ... 1 <- vfs_context_issuser 1 <- vnode_getattr 1 -> vfs_context_current 1 <- vfs_context_current 1 -> nameidone 1 <- nameidone 1 -> vfs_context_proc 1 <- vfs_context_proc 1 <- stat

    In action, it's indistinguishable from magic. You write these runt text files with script-like bang-pound lines using this unearthly C-like language and you possess essentially free reign to grope everysingle over the kernel. (You possess to subsist root to sprint DTrace at all, for obvious reasons.)

    The D language does not champion branching, subroutines, or loops—a excellent thing, because accidentally creating an eternal loop or recursion inside the kernel definitely should not subsist one tiny plain-text script away. You likewise can't expend DTrace to modify kernel recollection or CPU registers or to convene capricious functions.

    But within its limited scope, D is noiseless quite powerful. It supports most common C/C++ data types, aggregates, local variables, and a entire slew of shell/awk-style conventions: script arguments in $1 .. $N, inaugurate and discontinue blocks, etc. It even has aboriginal champion for cute ASCII histograms. It's quite pleasant to use—especially compared to recompiling the kernel and rebooting.

    And recall this is everysingle running on a unpretentious customary consumer copy of Leopard, not a special build. DTrace is included on everysingle Leopard systems; it's not an optional install. This means that developers can depend on their users having it. Since DTrace scripts are unpretentious text files, remotely debugging a thorny problem by e-mail suddenly got about a thousand times easier.

    (Debug kernel builds that contain a plenary complement of symbols and other metadata are noiseless useful. DTrace does not replace them. What it does finish is provide an unprecedented flat of flexibility on top of them—flexibility that remains even in the shipping version of the kernel.)

    <span style="text-decoration: line-through;">Xray</span> Instruments<br /> </span>Xray Instruments

    Install the developer tools, and you'll score a Garage Band-like GUI application for applying debugging instruments (get it?) to individual applications or the entire system. This application was called Xray for most of its progress life, which explains the icon. It's now called Instruments for reasons that surely involve lawyers. If you'll condone me, I'm going to preserve calling it Xray for the leisure of this review.

    Unsurprisingly, many of the most powerful instruments are based on DTrace. There's even a GUI for creating custom DTrace-based instruments, plus the ability to record and play back a succession of actions. Mmm... automated GUI-based performance regression testing.

    DTrace and Xray invite excellent questions. "How many files does my application open on launch?" "How many times is a particular function called?" "What does the recollection usage of my application learn fancy over time?" DTrace and Xray profile the previously daunting task of answering these questions almost trivial and (dare I yell it) fun. I can't imagine any Mac developer seeing Xray and not instantly longing to sic it on his application.

    All of this newfound power can't capitalize but lead to better, faster, more stable applications—from third-party developers as well as from Apple itself. And it's everysingle thanks to an obscure, open-source, low-level kernel debugging framework from Sun.

    State of the kernel

    With Tiger, Apple finally completed the kernel's transition from its NeXT roots to its Mac OS X future by nailing down the kernel APIs and providing a lucid path forward. Leopard has taken the first commodious step down that path. The addition of DTrace is the most significant change. It's an entirely unique feature and was not created with Mac OS X's kernel in mind. DTrace will likewise possess the biggest impact on the progress process and by extension on the nature and attribute of applications available to users.

    The leisure of the changes are "more of the same," and that's a excellent thing: performance optimizations, scalability improvements, better standards compliance, everysingle in appropriately conservative doses. The addition of DTrace must possess helped a bit with the leisure of Leopard's development, but it has taken a while for DTrace to foster up to accelerate on Mac OS X. The actual payoff will foster in the next major version of the OS, which will possess spent its entire progress life in a post-DTrace world.


    Tiger included champion for 64-bit processes, but only if they did not expend any of the major GUI APIs on the system. Here's how the 64-bit future of Mac OS X looked to me at the time.

    There are few benefits to being a 64-bit process for the vast majority of GUI applications. Nevertheless, it's safe to assume that, eventually, everysingle Macs will embrace 64-bit CPUs. The introduction of 64-bit versions of everysingle Mac OS X subsystems (Carbon, Cocoa, Core Foundation, QuickTime, Quartz, etc.) seems inevitable.

    I just sensation how much capitalize there will subsist from introducing any of that champion piecemeal. [... ] everysingle the higher-level GUI libraries depend on lower-level services fancy Quartz and Core Foundation anyway. So it seems to me that the best wobble in the future will subsist to roll out a complete 64-bit system everysingle in one shot. That's a tall order, which is why I assume it'll subsist a while.

    Well, it certainly has been a while since Tiger, and guess what? Leopard is the release that goes 64-bit everysingle in one shot... with a few caveats. But before getting to that, I want to revisit the thought that "there are few benefits to being a 64-bit process for the vast majority of GUI applications."

    I wrote that before Apple's transition to Intel processors. Thanks to the tortured history of the x86 instruction set, there actually are performance benefits for most applications when affecting from 32-bit Intel (x86) to 64-bit Intel (x86_64). The table below explains why.

    32-bit PowerPC 64-bit PowerPC 32-bit Intel (x86) 64-bit Intel (x86_64) GPRs* 32 32 8 16 GPR size 32 bits 64 bits 32 bits 64 bits FPRs*/Vector Registers 32 32 8 16 Calling convention Register-based Register-based Stack-based Register-based PC-relative addressing No No No Yes *GPR stands for generic purpose register, FPR for floating-point register.

    The PowerPC instruction set was designed with a 64-bit implementation in mind; its "transition" to 64-bit was really nonexistent. The x86 instruction set, on the other hand, was created in the 16-bit era and has accumulated quite a bit of cruft going from 16-bit to 32-bit. Some of that cruft was wisely abandoned during the transition from 32-bit to 64-bit. Applications compiled for x86_64 don't just score larger registers, they score more registers, plus a more modern calling convention and more addressing modes.

    Every 32-bit x86 application can capitalize from these changes, it's just a question of how significant that capitalize will be. This is not True of PowerPC applications, which score the added recollection and cache pressure of 64-bit register sizes without any of Intel's cruft-abandoning benefits.

    I yell "x86 application" and "PowerPC application," but of course Leopard, fancy Tiger, supports what Apple calls Universal Binaries. These are separate executable files that contain code for everysingle supported architectures: 32-bit Power PC, 64-bit PowerPC, 32-bit x86, and 64-bit x86_64. Here's an specimen from Leopard.

    % cd /Developer/Applications/ % file Xcode Xcode (for architecture ppc7400): Mach-O executable ppc Xcode (for architecture ppc64): Mach-O 64-bit executable ppc64 Xcode (for architecture i386): Mach-O executable i386 Xcode (for architecture x86_64): Mach-O 64-bit executable x86_64

    And there you possess it: the commodious 64-bit tidings in Leopard is that GUI applications can now subsist 64-bit. Leopard applications can likewise specify an architecture preference order as well as a minimum OS version for each architecture. everysingle of this 64-bit goodness comes in a separate OS; there is no special 64-bit version. Leopard is one operating system that runs both 32-bit and 64-bit applications.

    There is no "mixed mode" in Leopard. Every process is either 32-bit or 64-bit. Since a 64-bit process cannot load 32-bit plug-ins (and vice versa) there will subsist a significant transition era for applications that depend heavily on plug-ins. (I don't begrudge Adobe's developers... and it gets even worse for them, as you'll soon see.)

    Apple has gone 64-bit across the board, with two major exceptions. The first is the kernel itself, which remains 32-bit in order to maintain compatibility with existing drivers. The second is a bit of a luckless story... or perhaps a hopeful one. You decide.

    Brave unique 64-bit world

    At the HIToolbox state of the Union session at WWDC 2006, a coast entitled "The Future of HIToolbox" appeared. Hint number one: it is rarely a excellent token when the phrase "The Future of (insert technology)" appears on a coast at WWDC.

    For those of you that don't know, HIToolbox is the most modern and most significant allotment of the API more commonly known as Carbon. The man on stage at this session began by proverb the following, which I'm providing in audio profile so you can score the full, nuanced suffer of this moment.

  • The future of HIToolbox (MP3)
  • For several milliseconds, Carbon programmers attending this session at WWDC 2006 saw their coding lives glitter before their eyes. I yell only "several milliseconds" because, after that oh-so-agonizing pregnant pause, the ultimate sentence actually finished fancy this.

  • The future of HIToolbox, after the intermission (MP3)
  • "Integration! Oh thank God!" Yes, Carbon programmers were given a reprieve in 2006. But the fact that the commodious push at WWDC that year was for Carbon programmers to learn how to integrate Cocoa APIs into their Carbon applications should possess been a commodious red flag.

    Fast-forward to WWDC 2007, this time in the 64-bit session, and the other shoe dropped. Though several non-GUI parts of the Carbon API that are shared with Cocoa will subsist supported in 64-bit mode in Leopard, the GUI portions of the Carbon API will not.

    Yep, it's (finally) the discontinue of the line for Carbon GUI applications in Mac OS X. Oh, sure, they'll subsist around for years and years to come, but the want of 64-bit champion is a long-term death sentence.

    The ultimate vestiges of the original Macintosh API are finally being Put to rest. They've done their job and are being given a decent burial, I think. A slow, almost natural transition. Bugs will subsist fixed in the 32-bit Carbon APIs, of course, but no unique features will subsist added. everysingle unique GUI APIs in Leopard and future Mac OS X releases will subsist added as Cocoa-only APIs.

    Perhaps the most painful allotment of this for developers with big Carbon code bases (poor Adobe... ) is that Apple did, in fact, port Carbon to 64-bit. There were sessions on it at WWDC 2006, and the code appeared in Leopard seeds. The conclusion to drop 64-bit champion for Carbon was obviously a hard one to make, but eventually it was made, despite the work already Put into the effort.

    I assume it was a excellent decision. Apple has been hamstrung by the need to champion two entirely different APIs, maintaining feature parity between them, and having to complicated which one developers should choose.

    When it came down to it, Cocoa "won" because it's the more modern API. In the beginning, with Mac OS X 10.0, it wasn't at everysingle lucid that Mac developers would want to learn Objective-C and a entire unique set of APIs. Here in 2007, the developers possess spoken. The only people noiseless doing Carbon progress are those with code bases that predate Mac OS X. Apple has been encouraging these developers to port to Cocoa for years now. Now it's finally time for some tough love.

    Making a spotless break

    Carbon is just one example. Apple has wisely decided to expend the transition to 64-bit as an chance to profile everysingle sorts of backwards-incompatible changes. After all, 64-bit is backwards-incompatible with 32-bit already, so there's nothing to lose.

    In Cocoa, deprecated APIs were simply not ported to 64-bit. The Objective-C runtime is all-new for 64-bit, with a unique ABI, faster dispatching, zero-cost exceptions, and public APIs for introspection built on top of newly opaque internal structures. everysingle over Cocoa, ints possess been replaced with NSIntegers. In everysingle of the graphics APIs, floats possess been replaced with CGFloats.

    QuickTime likewise got the "Carbon treatment." The venerable plain-C API for QuickTime is not available in 64-bit. The Cocoa QTKit library is the only game in town for 64-bit QuickTime.

    And on and on. With Leopard, Mac OS X's API future is clearer than it's ever been. The future is Objective-C, Cocoa, 64-bit. plenary stop, no waffling, everyone score on board the train.

    There's an inherent tension between developers with existing applications and skillsets and the OS vendor's desire to attract unique blood and profile excellent long-term decisions for the platform. The late convene on the 64-bit Carbon conclusion is lucid evidence that Apple struggled mightily with these issues internally.

    In the end, Apple made the hard election instead of the facile one. I assume it will pay off, though the short-term consequences could subsist pretty grim. After all, just learn at how long it's taking to score an Intel-native version of Microsoft Office for the Mac. Should they await a 64-bit Cocoa version in, say, 2012? And I possess no thought what Adobe's going to finish about 64-bit versions of its products. That's many millions of lines of Carbon code between those two companies alone. They may subsist in for a harsh patch, so buckle up.


    Once upon a time there was an operating system called BeOS with a daring and innovative design. Not everysingle of its audacious unique ideas worked out as well as expected, however, and those that did were not enough to save the product from other, nontechnical forces that led to its demise. Nevertheless, BeOS made quite an imprint on the OS community. In particular, the file system and related interfaces in BeOS included four noteworthy features.

  • Journaling
  • Arbitrarily extensible file system metadata
  • Asynchronous file system notifications
  • Automatic metadata indexing and integrated query engine
  • These features combined to provide a user suffer unlike any other coincident PC operating system. Mac users, in particular, saw these features, understood their value, and wanted them in their favorite OS—assuming they hadn't already jumped ship for BeOS.

    (The book Practical File System Design with the subsist File System describes the history and implementation of these features. A free PDF is likewise available.)

    In 1997, Apple purchased NeXT instead of subsist and based Mac OS X on the NEXTSTEP OS. Initially, Mac OS X had notasoul of the BeOS file system features listed above. The push to add them to Mac OS X, both external and from within Apple, met with significant resistance from engineers aligned with the NeXT/Unix philosophy. And so began a multiyear struggle for the future of Mac OS X file system technologies: the Mac guys versus the NeXTies.

    At some point (so the legend goes) the Mac guys inside Apple "won," and Apple started down a unique path. But it takes a long time to eddy a ship as commodious as Mac OS X. From the perspective of an outside observer, the history of file system technology in Mac OS X resembles a six-year-long struggle to implement each and every BeOS file system feature listed above, everysingle of which were decried by the NeXTies at one point or another as inefficient and unnecessary.

    Journaling was added to HFS+; Spotlight brought automatic metadata indexing and an integrated query engine; the unique extended attributes APIs brought arbitrarily extensible metadata. Now, in Leopard, the final piece has arrived: an asynchronous file system notification API in the profile of the FSEvents framework.

    File system events déjà vu

    Tech-savvy Mac users will note that such an API existed in Tiger; it was what made Spotlight possible. The /dev/fsevents facility tracked everysingle file i/o as it went through the Mac OS X kernel, providing notifications to interested clients. This allowed the Spotlight engine to index (or reindex) each unique or changed file without resorting to polling. (Polling is the act of repeatedly asking if something has changed. It's massively inefficient and totally unfeasible as a pass to detect changes across an entire file system.)

    The /dev/fsevents API was private—though that didn't desist industrious hackers from playing with it. But it was private for a very excellent reason. It has to finish with the mechanics of file system notifications.

    To subsist cognizant of everysingle germane file system changes, the notification mechanism must exist at the choke point for everysingle local i/o: the kernel. But the kernel is a harsh mistress, filled with draconian latency and recollection restrictions. Ideally, the /dev/fsevents kernel code should profile each event available to interested clients and then wobble on as quickly as possible.

    Back in userspace, things are much more leisurely. Processes that signed up to received file system notifications via /dev/fsevents may subsist off doing something else when an event arrives. This is everysingle par for the course in userspace, but it's extremely incompatible with the kernel's need to score things done prerogative now, with minimal recollection and CPU overhead.

    What's the kernel to finish when 10,000 file system changes occur in two seconds (say, as allotment of some software installation) and the stupid, slothful userspace process that registered for file system notifications is now too preoccupied with other things and hasn't pulled any notification events off its queue in the past three seconds?

    Well, the kernel has to buffer those events, of course. That is, it has to save the events and wait for everysingle interested clients to finally score around to receiving them. But buffers are not unlimited. This is especially True in the kernel. What happens when the buffers fill up?

    Well, the kernel could block waiting for some buffer space to become available. However, reckon what happens when a client gets blocked on a file system operation because there's no room in the queue for the corresponding event, but space never becomes available because the other client that needs to read events to free up buffer space is blocked on the client that blocked waiting for space in the first place! Hello, deadlock.

    The only other option is to dynamically appropriate memory, but that just postpones the problem. Put simply, either you confine the number of events you can buffer, accepting that sometimes the buffer will fill up and you'll possess to drop events, or you can consign to potentially using an unlimited amount of memory.

    Apple has chosen the former. The kernel buffers are a fixed size, and if they fill up because of a leisurely client, events score dropped. This means that one badly behaved client can ruin it for everyone.

    So, no, /dev/fsevents is not a excellent candidate for a public API. But the exact for efficient, asynchronous file system notifications remains. What to do? Enter Leopard's FSEvents framework. It takes a pragmatic approach to providing these features.

    This is a theme that recurs throughout Leopard's unique technologies. Given a thorny technical problem, FSEvents does not attempt to subsist everysingle things to everysingle people. Instead, it shrewdly narrows its focus, concentrating on the possible and the probable. FSEvents provides an "80 percent solution" with (near) 100 percent reliability, rather than attempting to subsist an all-encompassing, "perfect" solution.

    FSEvents design and implementation

    It seems to me that the key breakthrough in the design of FSEvents was arrived at by considering yet another weakness of /dev/fsevents. The private /dev/fsevents API doles out notifications in actual time to everysingle interested clients. This appears to subsist the best feature of the API, but it's actually quite a ordeal for clients. Any events that occur when a client program is not running will never subsist seen by that client. This is why the Spotlight indexing process is launched when the system boots and remains running as long as the computer is on. It must finish this in order to ensnare and process everysingle file system events.

    If any other program wanted to keep everysingle file system events, it would possess to finish the selfsame thing: launch at boot time and wait running forever. Oh, and never crash, because even a process that immediately relaunches itself after a crash may miss some events during the time that it's down; /dev/fsevents waits for no process.

    So how does this realization lead to a design for FSEvents? The reply is that solving the problem of the constantly running client likewise makes many other problems disappear. Here's how FSEvents does it.

    The /dev/fsevents API can only champion a few extremely well-behaved clients. Spotlight is one. In Leopard, FSEvents is another. The FSEvents framework relies on a single, constantly running daemon process called fseventsd that reads from /dev/fsevents and writes the events to log files on disk (stored in a .fseventsd directory at the root of the volume the events are for). That's it. That's the super-high-tech solution: just write the events to a log file. Boring, pragmatic, but quite effective.

    Programs wishing to expend the FSEvents API finish not need to subsist running constantly. They can subsist launched at any time and can ask, "Okay, what's changed since the ultimate time I was running?" As long as they know where they left off in the log file, the FSEvents framework can (effectively) "play back" every event that's occurred since then and reply the question accurately.

    Pragmatic? Isn't it likewise dispassionate to convene this solution "fraught with its own intractable problems"? How commodious are these log files? Are they going to fill my disk if I constantly create, modify, and delete files? Will the log files subsist trimmed? What if a process doesn't sprint for a year and then wants to know what's changed since then?

    Pragmatism means compromise. Yes, if fseventsd drank from the /dev/fsevents fire hose and wrote every separate event to disk, you'd sprint out of disk space pretty quickly. To avoid this, fseventsd only writes out changes at the much less granular directory level. The FSEvents framework, in turn, can only bid its clients, "Something has changed in directory /foo/bar/baz."

    Clients of FSEvents are expected to then scan the directory that has changed in order to determine what, exactly, happened (assuming they're interested in that flat of detail). The common pattern is to register for notifications for some subset of the file system tree, finish an initial scan of that tree, wait for an event about a particular directory, then compare the unique state of the directory to the state seen during the initial scan.

    That confident seems fancy a lot of tedious work: register, scan, score event, scan again, compare. This selfsame code has to subsist written by each FSEvents client program, and there are race conditions lurking if programmers are not careful. Pragmatism has its price.

    But the payoffs are likewise quite substantial. No more daemon processes; launch any time to find out what's changed since you ultimate checked. No risk of badly behaved clients causing dropped events. Read the events as slowly as you'd like. Hang, crash, relaunch: it's okay, you won't miss any events. You can even recede backwards in time to revisit customary events.

    As with everysingle kernel-based file system notification mechanisms, including /dev/fsevents, there's noiseless the possibility of file system changes occurring without going through the kernel. For example, a removable disk may subsist mounted on another non-Leopard computer and modified there. When it returns, the local kernel has no thought what's changed.

    The FSEvents API includes callbacks for these situations, effectively telling the client, "Unknown changes possess occurred. You'll possess to finish a plenary rescan yourself, then pick up on the unique event stream going forward." That's certainly not what a program wants to hear, but it's the unavoidable truth. and FSEvents is upfront about it. In effect, it's a profile of reliability. FSEvents will not lie to you.

    The fseventsd log files are written in a compressed binary format. Since only per-directory changes are kept, multiple changes to the selfsame directory occurring within 30 seconds of each other are coalesced into a separate event in the log file. The upshot is that, even when running a disk-thrashing server-type workload for 24 hours straight, the fseventsd log files will only grow by a megabyte or two per day. average usage will yield a little fraction of that.

    That's good, because these log files are kept forever. Well, as nearby as possible, anyway. FSEvents uses a monotonically increasing 64-bit counter for events. Barring any malicious number-skipping hackery, this counter won't wrap around in your lifetime. But if it does, or if you sprint out of disk space, or if the logs are explicitly purged (there's a public API for this), FSEvents will dutifully spread the heinous tidings to its clients: "Sorry, it's plenary rescan time."

    Events are identified by their 64-bit event id, which does not necessarily possess any particular relationship with date and time. Nevertheless, FSEvents does embrace the ability to interrogate for the approximate event id that corresponds to a particular date and time.

    To prevent events from being logged at everysingle for changes to a particular volume, simply create a file named no_log in the .fseventsd directory on that volume. And in case it doesn't recede without saying, FSEvents honors the Mac OS X access control rules; you cannot receive events about directories that you don't possess permission to read.

    Spotlight sidebar

    Spotlight has been substantially rewritten in Leopard, and is noticeably more responsive. It does not, however, expend FSEvents. Instead, it continues to drink from the /dev/fsevents fire hose, grabbing each individual event as it happens. This may look fancy a failing of the FSEvents framework, but it's really more of an acknowledgment of the nature of Spotlight as a system-level facility.

    After all, in BeOS, metadata indexing was actually done at the file system level, within the BFS file system code. This, of course, only worked for BFS-formatted volumes, and was even further removed from anything possible in userspace, third-party code. For better or worse, system-wide file system indexing is something that the OS is best suited to exploit itself, with private APIs if needed.

    The future of the file system

    With the addition of a public API for asynchronous file system notifications, Mac OS X has finally achieved feature parity with BeOS in everysingle major areas of file system technology. There were compromises along the way, but likewise many advances. BeOS never had a persistent log of file system events, nor did it provide metadata indexing on non-BFS volumes. Leopard provides that and more (Spotlight can actually search across servers now too), everysingle with a collection of extremely conventional userspace libraries and daemons running on top of only the barest few kernel hooks.

    It's often seemed as if Apple has had to subsist dragged kicking and screaming into the future of file system technology, but at least it has finally foster around. Yes, there possess been bumps in the road, and things surely possess not turned out exactly the pass I expected them to. But in the end, it's the results that count.

    Mac OS X developers now possess everysingle the tools they need to finish some very Interesting things with the file system—and this includes Apple itself. As we'll see, they've really gone to town in Leopard, finally using everysingle the features they so grudgingly added to the OS over the ultimate six years. In fact, Leopard's signature feature would not subsist possible without FSEvents.

    As for the file system itself, can you believe we're noiseless using HFS+? That's right, rumors of ZFS's ascendance as the default file system in Leopard possess not foster to fruition.

    The trouble to port ZFS to Mac OS X is ongoing, and Leopard ships with a read-only ZFS file system driver, but that's about it for now. A read/write ZFS driver appeared in a few earlier Leopard builds and will no doubt profile its official appearance in some future version of Mac OS X. (A beta is available to ADC members.)

    Will ZFS ever replace HFS+ as the default file system in Mac OS X? Time will tell, but it's lucid that, eventually, something has to replace HFS+. Will it subsist ZFS, a unique Apple-developed file system, or something else entirely? As I wrote ultimate summer:

    Although I would subsist satisfied with ZFS, I assume Apple has a unique perspective on computing that might lead to a home-grown file system with some Interesting attributes. When might such a thing appear? Not in Leopard, it seems—or at least not in 10.5.0.

    It's credible that the completed ZFS port will subsist available in the 10.5.x time frame, but I fully await to possess to wait for Mac OS X 10.6 or later for anything to replace HFS+ as the default file system in Mac OS X. The excellent tidings is that, when it does finally arrive, everysingle these much file system APIs will subsist there waiting for it.

    Core Animation

    In the post-Mac OS X era, Apple has been a commodious fan of adding animation to its applications and the OS itself. Examples are everywhere: items in the iChat buddy list fade in and out and visually reshuffle themselves as unique items appear; switching preference panes triggers a cross-fade and an animated window resize; items in the Dock shuffle and squirm around when a unique item is dragged towards it.

    Too much animation can subsist harmful and grating. But in the best cases, these animations actually capitalize usability by providing an specific visual explanation of state changes while likewise adding an undeniable sense of pizzazz.

    Understandably, third-party developers possess long tried to ape these effects. Historically, that's been a tall order. bewitch something as simple as the cross-fade between preference panes in the System Preferences application. A developer creating, say, a text editor may want to expend that cross-fade in his preferences dialog.

    But doing so takes him far from his solace zone, into the world of graphics APIs, perhaps even OpenGL. What does everysingle that possess to finish with editing text? Sure, Apple can afford to possess one of its graphics gurus add whizzy effects, but it's another thing for little developers to bewitch the time to learn a bunch of unique APIs unrelated to the actual functionality of their applications. And for what? Pizzazz?

    But try they did, rapidly increasing the number of Mac applications containing Core Graphics and/or OpenGL code of questionable quality, for dubious purposes. What's Apple to do?

    The motivation seems admirable: third-party developers want their applications to learn as frigid as Apple's. Broadly speaking, this is not something that should subsist discouraged. But it really is inefficient to possess everysingle these developers trying to write custom code far outside their areas of expertise.

    And for that matter, it's not such a much thought for Apple to subsist doing the selfsame thing. Though it may possess the talent on staff, Apple would subsist much better served by having its graphics experts work on APIs that everyone can use, rather than adding custom cross-fade code to yet another first-party application.

    And so, in Leopard, Apple has introduced Core Animation. It gets a snazzy purple sphere icon to recede with its friends.

    Core Image logo Core Image Core Audio logo Core Audio Core Video logo Core Video Core Animation logo Core Animation

    Animation frameworks can easily blossom into full-blown redesigns of the entire GUI API. After all, isn't a static interface component simply the degenerate profile of an animation? Let's reimplement everything in terms of their unique animation framework! It'll subsist awesome!

    It'll probably likewise subsist late, incompatible, buggy, and slow—not to mention being met with resistance by developers who are not keen to rewrite their GUI code from scratch using the unique animation-based APIs.

    Thankfully, Apple's taken a different route with Core Animation. fancy FSEvents, Core Animation is a pragmatic API. It does a few well-chosen things and does them very well. It likewise goes to much pains to profile this functionality available to existing applications with extremely minimal changes to the code.

    Core Animation's original name, Layer Kit, reveals a lot about its design. At its heart, Core Animation manages a collection of 2D layers. Though layers are sorted by depth and can possess perspective transforms applied to them, Core Animation is not a 3D engine. That is, layers can overlap, but they cannot intersect (in the 3D sense).

    The 2D/3D distinction is further confused by the fact that Core Animation, fancy everysingle graphics in Mac OS X, runs (albeit indirectly) on top of OpenGL. Apple's "3D" Core Animation demos (e.g., about 52 minutes into the WWDC 2006 keynote) likewise haven't helped. But leisure assured that you will not subsist constructing any teapots in Core Animation. There are no vertexes, triangles, or lights in the Core Animation API. It's a layer kit, remember? assume "non-intersecting 2D planes in space."

    But what planes they are. To start, each layer has the following properties: geometry, background, contents, border, filters, shadow, opacity, and mask. Each layer can possess zero or more sub-layers, and the filters are Core Image filters, of course. But the layer contents are the really Interesting part.

    At some point during pretty much every WWDC since the introduction of Mac OS X, an Apple engineer has explained how to mix content produced by different APIs: drawing styled text on top of an OpenGL scene, putting a yardstick button or checkbox over a QuickTime movie, applying a Core Image filter to allotment of a dialog box, and so on. These demonstrations were complicated, often involving special overlay windows, manual color space conversions, and wasteful data duplication. Inevitably, the Apple engineer would apologize as he demonstrated, acknowledging that this kindhearted of thing really shouldn't subsist as hard as it is. Well, in Leopard, thanks to Core Animation (of everysingle things), it's now nearly trivial.

    Core Animation layers provide, for the first time in Mac OS X, an facile pass to mix everysingle supported content types without restrictions: QuickTime video, OpenGL, Core Graphics drawing, Quartz Composer scenes, yardstick GUI controls fancy buttons, checkboxes, and pop-up menus, styled text, you denomination it. Composite them, layer them, animate them; it everysingle just works. In effect, Core Animation is the unification of everysingle things graphical in Mac OS X.

    Layers are animated declaratively, rather than procedurally. For example, to profile a layer fade out, simply set its opacity to zero. Rather than instantly becoming invisible, the layer will fade out over a era of time (0.25 seconds, by default). In other words, bid each layer its goal state and (optionally) a few more pieces of information about the transition, and the Core Animation engine handles the actual process of changing the layer from its current state to the goal state. Though everysingle of the animation settings are optional and possess sane defaults, animations possess configurable durations, timing curves, keyframes, and transition types. Also, multiple property changes can subsist batched into a separate atomic change.

    Under the covers, each Core Animation layer is handled by OpenGL and ends up in VRAM on the video card. (For layers that are beyond the maximum texture size of the video card, Core Animation provides a "tiled layer" API, with callbacks to retrieve each portion of the larger image as needed.) Core Animation layers are extremely lightweight; modern Macs can animate many thousands of layers simultaneously. The unification of content types in Core Animation layers provides an chance to consolidate many previously part GPU acceleration mechanisms for video, 2D drawing, and animation into a separate context.

    The underlying technology really is impressive, but the commodious win comes on the more prosaic end: the pass this functionality is exposed to the developer.

    Core Animation in Cocoa

    Unsurprisingly, Core Animation is a Cocoa API. Politics aside, it's a excellent fit. Cocoa has existing conventions for observing changes to kick properties, and Core Animation ties prerogative into that. But the actual genius is in the how runt work is required to start using Core Animation in an existing application.

    The process for developers is simple. To enable animation of a view, check off the appropriate checkbox in Interface Builder, or profile the corresponding [view setWantsLayer:YES] convene at runtime. Doing so creates a Core Animation layer for the view and everysingle subviews it contains. The result is two view trees: the collection of "normal" views and subviews that possess always existed in your Cocoa application (windows, buttons, etc.) and another, parallel hierarchy of Core Animation layers representing the subset of average views that possess their "wants layer" property turned on.

    Each layer-backed view has an animator attribute. method calls that affect animatable properties are animated when made through this kick and are not animated when made through the view itself. For example, let's yell you possess some existing code to set the size of a window in your application:

    [view setFrame:rect];

    To animate that using Core Animation in Leopard, causing the window to smoothly scale from its current size to the unique size using a GPU-accelerated, OpenGL-based compositing animation engine running on a part thread, you must ilk eleven more characters, changing the line above to this:

    [[view animator] setFrame:rect];

    This is usually the point in the WWDC presentation where Cocoa programmers unfamiliar with Core Animation inaugurate to drool and moan.

    Yes, obviously it gets more complicated if you want to customize the animation, but only slightly. In the common case, adding animation to your existing Cocoa application really is as simple as the specimen above implies. As a first pass, just ship everysingle the method calls you want to animate through the animator property. As an optional second pass, customize the few animations you want to recede faster or slower or finish something else fancy. There is no step three, as they say. No OpenGL code, no custom drawing, no GPU programming. Ahh.

    Apple has gone hog wild with Core Animation, both in its own applications and in Cocoa itself. everysingle the basic visual properties of views can subsist animated—plus some esoteric ones fancy rotation. Yes, if you possess the exhort to create spinning buttons or slanted windows, Core Animation is there for you. You can even add unique animatable properties to your custom views.

    Apple's likewise created several unique Cocoa views and controls that provide functionality that would possess required many thousands of lines of involved code before the advent of Core Animation. The best specimen is the extremely supple NSGridView. This one view can subsist used to create something that looks and behaves fancy the iChat buddy list or the Dock, everysingle with extremely minimal code. Items fading in and out as they're removed, squirming out of the pass to accept a drag, flying everysingle over to re-sort themselves, even text-base searching and visual filtering—it's everysingle basically "free" with NSGridView and Core Animation.

    Separation of concerns

    As alluded to earlier, the animation allotment of Core Animation runs on its own thread and has its own sprint loop independent of the application itself. These two parallel worlds—the application view hierarchy and the Core Animation view hierarchy that backs some portion of it—are largely divorced. Communication happens implicitly when the application changes some allotment of its visual state.

    For example, let's yell an application moves an component in a window from position A to position B. From the perspective of the application code, the change happens instantly. The item that was in position A moves immediately to position B as soon as its coordinates are changed.

    In the parallel world of the Core Animation engine, however, the wobble from A to B happens over several frames of animation and takes some time. This means that there's a transitory mismatch between where the application thinks the component is, and where it actually appears on the screen. This usually isn't a problem, but developers are encouraged to bewitch precautions to prevent any bizarre effects (e.g., by disabling controls while they're in motion, reenabling them when the animation completes).

    But that's about the only ill sequel of this arrangement. The benefits are much more substantial. For starters, with today's multicore CPUs, putting Core Animation on its own thread is a lucid win in terms of CPU utilization. It likewise means that the application can blindly profile changes any customary time it wants, without concern for the state of any outstanding animations. For example, an application can wobble an item from A to B, then wobble it again to C before the A-to-B animation completes. The Core Animation engine will bewitch it everysingle in stride, smoothly animating the item towards C from whatever position between A and B it was in when the application initiated the wobble to C.

    The application's total want of (mandatory) involvement in the animation itself is incredibly freeing. It prevents applications from becoming filled with animation-centric code. Gone are the days of preference dialogs with 50 lines of code for getting and setting preferences and 200 lines of code for creating cross-fades and autoresizing panes. Less application code means fewer bugs and more license for Apple to optimize the actual drawing and animation process.

    The animation age begins

    Yes, the advent of Core Animation probably means that we'll possess to endure some amount of gratuitously animated software created by "overly enthusiastic" developers. But the selfsame was True during the introduction of styled text and color graphics. Mac developers learn quickly, and Mac users are excellent at rewarding restraint and punishing excess.

    The minimal, almost humble pass Core Animation integrates with Cocoa belies its incredible sophistication. More so than any other unique framework in Leopard, Core Animation provides functionality and performance that was previously difficult or impossible for the average Cocoa programmer to create on his own. Now, finally, third-party applications can learn as impressive as Apple's, and they can finish so by using exactly the selfsame code that Apple's using—code written by expert graphics programmers and continually revised and improved by Apple to bewitch edge of the latest hardware. Excellent.

    Quartz GL

    I spent several pages of my Tiger review exploring how Mac OS X's Quartz panoply layer has evolved over the years, specifically how functionality has been migrating from the CPU and main recollection to the GPU and VRAM. Tiger was to bring the latest step in that evolution, Quartz 2D Extreme, which would finally wobble execution of the drawing commands themselves to the GPU, writing the results directly to VRAM.

    I dedicated so much time (and so many sweet OmniGraffle charts) to Quartz 2D Extreme because it was one of the Tiger technologies that I was most excited about. I'd waited a long time for it, slogging through Mac OS X 10.0 where every allotment of the drawing and compositing process happened on my impoverished 400MHz G3 CPU, with the expectation that, someday, it'd everysingle occur in dedicated hardware.

    Sadly, though the Quartz 2D Extreme code was indeed included in Tiger, it was disabled by default. At the time, I speculated that it might subsist enabled in a subsequent update, "perhaps as early as version 10.4.1." Ha! Over two years later, Tiger has reached version 10.4.11 and Quartz 2D Extreme is noiseless disabled by default.

    But surely—surely—Quartz 2D Extreme will subsist enabled in the mighty Leopard, right? When it comes to affecting drawing code to the GPU, maybe they should everysingle score used to disappointment.

    First things first. Quartz 2D Extreme, always quite a mouthful, has been renamed Quartz GL in Leopard. I'm heavily in favor of the evisceration of "Extreme" from everysingle Apple product names, so yay. Second, it's significant to understand why Quartz GL was disabled in Tiger for everysingle those years. Apple's never made any public statements about this, but developers who've asked possess gotten a pretty consistent message. What it boils down to is differences between Quartz GL and the "old" more CPU-centric implementations of Quartz—differences that actually affect existing applications.

    Bugs are the most obvious issue. Quartz GL was brand unique in 10.4.0, a release that had enough of its own problems without globally applying a unique drawing engine to everysingle applications. The other significant issue was explored in the Tiger review: Quartz GL can actually profile some applications slower because the "best practices" when writing for a CPU/RAM-centric Quartz implementation are often exactly the opposite of those for Quartz GL.

    So what's changed in Leopard? Presumably, most Quartz GL bugs possess been squashed, but the performance issues are really up to application developers to address by changing their code. But why would they subsist motivated to change their code? After all, Quartz GL is disabled in Tiger. This chicken/egg situation explains why Quartz GL is not globally enabled in Leopard either.

    Unlike in Tiger, however, applications in Leopard can explicitly enable Quartz GL, either for the entire application or just for specific windows. This allows each developer to choose when and where to expend Quartz GL. It's a excellent compromise; there's actually nothing to subsist disappointed about. Quartz GL, fancy many Leopard technologies, will surely inaugurate to seep into the applications they expend every day. It may not subsist as obvious as something fancy Core Animation, but in the long sprint it's just as important.

    Resolution Independence

    Speaking of technologies present in Tiger but never enabled, resolution independence takes a few more steps forward in Leopard. A brief refresher: simply stated, resolution independence, likewise sometimes called "scalable user interface" or "high DPI support," is the ability to draw user interface elements using more pixels.

    For example, the runt red "close" widget in the window title bar uses about 16x16 pixels at the default ("1.0") scale factor. This is okay for screens that expend around 100 pixels per inch (PPI), but on a 200ppi monitor it would subsist quite a little click target. Using a scale factor of 2.0, this selfsame widget would subsist drawn using 32x32 pixels—four times as many. That would profile the click target exactly the selfsame size as the 16x16, 1.0 scale factor version on a 100ppi screen. The 2.0 scale factor version would likewise subsist more detailed, since it uses more pixels.

    Scale factor: 1.0

    Scale factor: 1.0

    Scale factor: 2.0

    Scale factor: 2.0

    The benefits of resolution independence are twofold. On the tall end, displays with much greater pixel density become feasible now that there's a pass to prevent the widgets that profile up the UI from shrinking to unclickably little proportions. In particular, text will learn a lot sharper as the display's PPI rating begins to approach the DPI rating of modern printers.

    On the low end, resolution independence allows users with impoverished vision to profile everything on their existing low PPI displays larger, while actually increasing the amount of detail (as opposed to current "screen zooming" feature that magnifies the existing pixels into an increasingly blurry mess).

    In Tiger, the user interface scale factor control existed only in the Quartz Debug application (part of Apple's free developer tools). In Leopard, the user interface scale factor control... exists only in the Quartz Debug application. Sorry.

    Actually increasing the scale factor provides a pretty convincing demonstration of why this is so. bewitch a learn at the nonuniform gaps in the segmented control in this screenshot of TextEdit at a 2.0 scale factor.

    TextEdit at scale factor 2.0: uneven spacing on segmented controlTextEdit at scale factor 2.0: uneven spacing on segmented control

    As you can see, there are noiseless plenty of harsh edges even for the simplest of applications. Since interface scaling has a global effect, it can't subsist enabled piecemeal fancy Quartz GL.

    Unlike Quartz GL, Apple has actually provided a pretty lucid message to developers about resolution independence. There possess been sessions at the past few WWDCs about how to prepare applications to sprint properly at scale factors above 1.0. The actual hold-up has been Apple itself, however, which doesn't quite possess resolution independence working correctly across everysingle of Mac OS X's GUI frameworks. Also, the exact details of how resolution independence will interact with the various APIs possess changed as recently as WWDC 2007.

    Nevertheless, the rumored date for resolution independence to emerge as a user-visible feature in Leopard is 2008. Early 2008? Late 2008? If Apple knows, it's not saying. And so the question posed two years ago noiseless stands. Which will foster first, affordable high-PPI panoply hardware or a resolution-independent version of Mac OS X? The wait continues.

    But that's not everysingle there is to yell about resolution independence in Leopard. In fact, you might yell there's one more thing...

    Core UI

    Resolution independence is a fine idea, but there's the pesky issue of exactly how to draw everysingle those user interface widgets using more pixels. When resolution independence finally arrives in 2008 (or whenever), will the Mac OS X UI subsist drawn entirely using infinitely scalable vector art? That'd confident resolve the problem of where to score everysingle those extra pixels, but I'm not a fan of this approach. How about simply including huge bitmaps for each interface element, relying on the traditional bitmap scaling mechanisms to draw them at the smaller sizes? That'd work fine, but it does look kindhearted of wasteful to expend giant bitmaps for thing fancy line art and basic shapes which are oh-so-compactly represented by vectors.

    Hey, what finish they possess here lurking under /System/Library/PrivateFrameworks in Leopard? Why, it appears to subsist a unique framework: CoreUI.framework. Whatever could that subsist for? Surprise! Every piece of the user interface in Leopard is being drawn in an entirely unique pass that incorporates the best of the bitmapped and vector styles.

    Let's bewitch a learn at the affecting parts. Core UI draws each piece of the user interface based on a succession of XML "recipes" that portray the structure and features of each element, referencing pieces of art stored as part resources files within the framework bundle. Here are just a few specimen recipes:

    /System/Library/PrivateFrameworks/ CoreUI.framework/Resources/AquaUI.bundle/Contents/Recipes/ checkbox.xml disclosurebutton.xml disclosuretriangle.xml menu.xml menubar.xml progressindicator.xml pushbutton.xml radiobutton.xml roundbutton.xml scrollbars.xml splitter.xml syncarrow.xml ...

    Note the storage location: the Core UI framework contains other bundles which in eddy contain the recipes and resources. It's hard not to learn at this arrangement as a kindhearted of theming engine in the tradition of Kaleidoscope, ShapeShifter, and of course Apple's own Appearance Manager... albeit an engine that's closed to outsiders and likely to change in the future. But still, it's quite a departure from the comparatively inflexible approach to drawing the UI used in Tiger and earlier. At the very least, the unique recipe/resource structure lays bare the components that profile up what's shown on the screen.

    Take the humble checkbox, for example. The checkbox.xml file is a dizzying 2,800+ lines long, most likely created by Apple's long-rumored (to those paying attention) in-house Core UI theming tools. It references a motif named checkmark, represented in the Resources directory by the checkmark.pdf file.


    In that selfsame directory you'll likewise find various "material" bitmaps. Here are two examples (scaled down from their actual 398x398 pixel sizes):



    The Finder sidebar

    The Finder sidebar

    Keep in intellect that these are not giant radio buttons; bitmaps fancy these are used as texture sources for widgets of everysingle shapes and sizes.

    Finally, here's what a checkbox looks fancy in Leopard at various scale factors.

    Checkboxes at 1.0, 2.0, and 3.0 scaleCheckboxes at 1.0, 2.0, and 3.0 scale

    You can see how this everysingle starts to foster together. Browsing through the plenary set of resources reveals an unsurprising division of labor between commodious bitmaps (PNGs) and vector graphics (PDFs). Anything that looks fancy line art or is a basic shape is done with vectors. The "lickable" bits, on the other hand, are noiseless represented by (presumably hand-tweaked) bitmaps, usually in very big sizes. In particular, the pass Core UI constructs the various shiny Aqua widgets using a suite of "materials" bitmaps—some for highlights, some for backgrounds, and so on—is a nice pass to conserve recollection while noiseless using hand-drawn art.

    So what does this everysingle involve for Mac OS X? Well first, it means that Apple is ramping up for resolution independence. They knew that already, but it's noiseless nice to see how far along things are. Remember, even at the default (1.0) scale factor that Leopard will ship with, everysingle the UI widgets you see are being drawn by Core UI. This wasn't always the case. Earlier Leopard seeds only used Core UI at scale factors greater than 1.0, falling back to the customary pass for 1.0. The wobble to using Core UI everywhere shows some self-confidence in the technology.

    Core UI likewise means that Apple is well-positioned to deliver the radical change to Mac OS X's appearance that I longed for in Leopard. Core UI is certainly not a general-purpose engine capable of creating any appearance an artist can dream of. It's clearly focused on creating Aqua-like appearances, with baked-in champion for things fancy drop shadows and highlights. But the generic approach of using XML recipes to compose vector and bitmap resources is a sound one that will ultimate Apple a very long time, well into the coming age of resolution independence.

    Internals grab bag

    These "grab bag" sections give me a haphazard to briefly finger on Interesting features that don't warrant their own sections—or, quite often, that time constraints possess prevented me from expanding into entire sections. For the first time, I'm giving the internals their own grab bag, to part the more technical bits from the later grab bag that covers more user-visible features. Put another way, this is the grab bag without screenshots. Here they go.

    Metadata in action

    Leopard is the first Mac OS X release to really bewitch edge of the extended attributes APIs added in Tiger. When faced with a problem that requires the storage of some information about a particular file or directory, Apple is finally using (gasp!) file system metadata to implement this. It's everywhere in Leopard. Just learn at these extended attribute names:

  •—Finder comments in actual metadata. (They're likewise noiseless stored in the .DS_Store files, presumably for compatibility with pre-Leopard systems).
  •—Tagging files downloaded from the Internet as possibly untrustworthy, storing the application used to download them, among other things.
  •—One of a entire suite of extended attributes used by a inevitable backup feature to subsist described later.
  • It's enough to profile me roar "Hallelujah!" Apple finally gets it! see how useful this stuff is? Just imagine the insane contortions the pre-metadata-enlightenment Apple would possess gone through to store and track everysingle this stuff, each application going off in its own direction with a custom implementation. So much wasted effort, so many unique bugs. No more! Extended attributes provide a general-purpose facility for doing the selfsame things, written and debugged in one place.

    Leopard even includes a command-line utility for viewing and modifying extended attributes. Readers may recall a similar utility called xattr, created by Marquis Logan for my Tiger review. Apple's own utility actually has the selfsame name, but slightly different command-line options.

    Other commands in Leopard possess likewise become extended attributes-savvy. For example, the ls command now displays a "@" character after the permissions string for each file that has extended attributes. Wandering around a Leopard system using the ls and xattr commands will betray just how much Apple has taken file system metadata to heart. It's about time.

    Core Text

    Mac OS X finally has a single, official, yardstick text drawing and layout API: Core Text. (As far as I know, this "Core" technology does not score its own lickable sphere icon.) Core Text replaces the confusing alphabet soup of text APIs in Mac OS X Tiger and earlier, mostly inherited from classic Mac OS: ATSUI, MLTE, and QuickDraw text.

    Core Text has a cleaner API, it's faster, it's available in 64-bit, yada yada. I mention it here for two reasons. First, it's Interesting because Core Text actually existed in Tiger as a private API. It was used by Apple's own applications as a sort of test bed for the framework. Leopard is its coming-out party, now that it's been properly refined.

    It's similar to the FSEvents situation, but in that case Apple decided that the private API that was "auditioned" in Tiger (/dev/fsevents) was not suitable for public consumption, and another solution was needed. Perhaps /dev/fsevents, unlike Core Text, was never intended to subsist public, but maybe it just appears that pass in hindsight. Either way, preserve your eye out for private frameworks in Leopard that could subsist up for publication in 10.6.

    Second, Core Text is an indicator of how young, in relative terms, Mac OS X really is as a platform. Here's Leopard, ostensibly a mature product in its sixth major release, just now getting a yardstick text layout API? As mature as Mac OS X may seem, it was quite a mishmash of technologies at its birth: a runt BSD Unix here, some NeXT there, and a bucket of classic Mac OS splashed on top. This is everysingle going to bewitch a long time to sort out. Leopard takes some significant steps towards the future by deprecating several customary technologies and anointing their successors.

    Code signing

    Leopard supports cryptographically signed applications. This topic rings warning bells for some people. The controversial Microsoft Palladium initiative increased public awareness of the issue several years ago when Microsoft misjudged the market and ended up evoking a bleak future of iron-fisted corporate control rather than the security utopia they were trying to pitch. To this day, it's hard for some people not to see everysingle such efforts as opportunistic power grabs dressed up as "security" features.

    The first thing to understand about code signing in Leopard is that it's not presented as, nor is it capable of anything so grand. It's not going to give Apple (or anyone else) complete control over your system, nor is it going to provide impenetrable security.

    Here's what it actually does. Code signing ties a cryptographically verifiable identity to a collection of code and ensures that any modification to that code is detected. No guarantees are made about the parties involved. For example, if you download an application signed by Acme Inc., you can prove nothing about it except that it came from the selfsame entity claiming to subsist Acme Inc. the ultimate time you downloaded something from their web site.

    This specimen actually highlights the most useful application of the technology from a consumer's perspective. When upgrading a Mac OS X application today, the user is often prompted to re-verify that this application is allowed to access the Keychain to retrieve usernames and passwords. This seems fancy a excellent security feature, but everysingle it really does is train Mac users to blindly click "Always Allow" each time it appears. And really, what is the average user going to do, sprint the executable through a disassembler and manually verify that the code is safe?

    A signed application, on the other hand, can mathematically prove that it is indeed a unique version of the selfsame application from the selfsame vendor that you expressed reliance for in the past. The result is an discontinue to dialog boxes asking you to corroborate a election whose safety you possess no reasonable pass to verify.

    In the end, it noiseless everysingle comes down to trust. Either you reliance software from Acme Inc., or you don't. That's up to you to decide. Signed applications are just as capable of erasing your hard drive and stealing your passwords as unsigned applications.

    But unlike unsigned code, a signed application cannot subsist tampered with after installation. If an application from Acme Inc. does something malicious, you can subsist confident that it's not because it's been hijacked by some other bit of malware. Put another way, well-behaved code will continue to subsist well-behaved. Any attempt to modify it will desist it from running entirely.

    Apple has signed everysingle applications that ship with Leopard. I await most reputable third-party developers to finish the selfsame eventually.

    Code signing likewise means an discontinue to the drill of applications modifying themselves (e.g., saving custom theme files inside the application bundle itself rather than in ~/Library/Application Support/MyApp or another user-specific location). This drill has always been discouraged by Apple, and now there's another judgement avoid it.

    So, to review, code signing does:

  • Provably seal code
  • Verify the identity of the sealer
  • Code signing does not:

  • Impart special privileges
  • Protect against bugs
  • Protect against misplaced trust
  • Provide copy protection
  • Enslave you in The Matrix
  • It may subsist just a little step towards increased security, but it's one that's done right.


    Speaking of security, Leopard likewise supports address space layout randomization, or ASLR. The denomination pretty much explains it: ASLR moves stuff around in recollection to profile it harder for malicious software to predict the address of a particular piece of code. Apple noiseless has a long pass to recede to compass Microsoft's current flat of paranoia about security, but then Mac OS X has not been subjected to the selfsame kinds of malware pressures that Windows has. Still, it's nice to see Apple taking some initiative in this region rather than waiting for disaster to strike and then reacting.


    LLVM stands for low flat virtual machine. It's an open-source project that Apple has taken under its wing, hiring the lead developer and actively improving the code. You can read everysingle about what LLVM can finish at the project's web site. The explanations you'll find there are kindhearted of impenetrable if you're not already close with compiler technology, however. The best pass to assume of LLVM is prerogative there in the name: it's a virtual machine, but one that models something quite low-level, more fancy a CPU than a traditional virtual machine that models an entire PC.

    Why model something so primitive? Who wants to write code that targets a virtual CPU? Well, compilers, for one. The thought is that you yield code in LLVM's platform-neutral intermediary representation (IR) and then LLVM will optimize it and then transfigure it to aboriginal code for the actual CPU of your choice. This conversion can subsist done ahead of time, producing a traditional executable, or you can ship the platform-neutral byte code as-is and let LLVM compile it just in time (JIT).

    Why bother with the LLVM middleman? Why not let the compiler yield aboriginal code on its own? That's what most compilers do. Unfortunately, they finish so with varying degrees of quality. The point of LLVM is to provide a set of modular compiler components that anyone can use, in order to concentrate the optimization efforts currently spread among many different compilers into a separate project, thus the expend of a platform-neutral intermediary representation.

    Think of it as a commodious funnel: every sort of code you can imagine goes in the top, everysingle ending up as LLVM IR. Then LLVM optimizes the hell out of it, using every trick in the book. Finally, LLVM produces aboriginal code from its IR. The concentration of progress trouble is obvious: a separate optimizer that deals with a separate format (LLVM IR) and a separate aboriginal code generator for each target CPU. As LLVM gets faster and smarter, every separate compiler that uses LLVM likewise gets better.

    So, that's the pitch. The reality is that it will bewitch a long time to convince the compiler world of the merit of this approach. Apple, however, is already on board. In Leopard, LLVM is used in what might strike you as an odd place: OpenGL.

    When a video card does not champion a particular feature in hardware (e.g., a particular pixel or vertex shader operation), a software fallback must subsist provided. Modern programmable GPUs provide a particular challenge. OpenGL applications no longer just convene fixed functions, they can likewise pass entire miniature programs to the GPU for execution.

    Prior to LLVM, Apple implemented software fallbacks for everysingle of this using its own custom JIT compiler for programmable GPUs. Apple wrote aboriginal code for each primitive operation (e.g., a dot product). These chunks are then glued together at runtime to yield the CPU equivalent of the mini-program intended to recede to the GPU.

    This approach severely limits the scope of possible optimizations. Any transformation that spans more than one primitive operation is extremely difficult, leaving only the relatively weak and simple optimizations within each primitive.

    Still, Apple was content with its custom JIT when it only had to target 32-bit PowerPC CPUs. But as 64-bit PowerPC and later 32-bit and 64-bit Intel CPUs joined the platform, updating that JIT for everysingle the unique architectures (and features fancy SSE, SSE2, SSE3... ) started to score a bit hairy.

    A custom compiler with weak optimization abilities and an ever-increasing number of target CPUs? LLVM to the rescue! In Leopard, each primitive is contained in an LLVM byte code library file (search for files with a .bc extension). Mixing calls into those byte code libraries and just-in-time compiling them into a single, comprehensively optimized chunk of aboriginal code? No problem; that's what LLVM is designed to do.

    Predictably, LLVM rocks the house in this application, performing up to several hundreds of times faster than Apple's customary custom JIT for inevitable operations that the customary system couldn't even JIT, but had to interpret instead. Perhaps the biggest win is that Apple's OpenGL group no longer has to maintain its own JIT compiler. The best kindhearted of code is no code at all.

    Don't subsist misled by its humble expend in Leopard; Apple has majestic plans for LLVM. How grand? How about swapping out the guts of the gcc compiler Mac OS X uses now and replacing them with the LLVM equivalents? That project is well underway. Not ambitious enough? How about ditching gcc entirely, replacing it with a completely unique LLVM-based (but gcc-compatible) compiler system? That project is called Clang, and it's already yielded some impressive performance results. In particular, its ability to finish fleet incremental compilation and provide a much richer collection of metadata is a huge boon to GUI IDEs fancy Xcode.

    I know this LLVM subsection is quite a digression, but even if it's only used in a limited capacity in Leopard, LLVM is quite significant to the future of Mac OS X. Indeed, it could likewise subsist significant to the present of the iPhone and other OS X platforms.

    I'm not confident how the iPhone supports everysingle the visual effects used in its interface, but it's not unreasonable to imagine that Core Animation, OpenGL, and an LLVM-based software fallback are crucial to getting this everysingle to hum on a platform with a relatively weak GPU and CPU. And did I mention that Apple recently did some extensive work on the LLVM ARM backend? You know, ARM, the CPU used by the iPhone. Yeah, the pieces confident look to fit.

    Anyway, thanks for the indulgence. If you want to learn more about the latest LLVM developments, check out the video of an LLVM presentation at Google given by Chris Lattner, LLVM lead developer and Apple employee.

    Objective-C 2.0

    I briefly mentioned the unique Objective-C runtime in the 64-bit section. This is allotment of the larger revision to the Objective-C language known as Objective-C 2.0. The version-based branding is apt because Objective-C's abilities hinge so heavily on the runtime library at its core. This library handles class introspection and extension, method dispatch, and in the 2.0 version, recollection management as well.

    That's right, the biggest tidings in Objective-C 2.0 is that it supports garbage collection. This is an opt-in feature, and a separate code ground can subsist compiled both with and without champion for it. When garbage collection is enabled, everysingle manual recollection management calls are simply ignored. This is how everysingle of Apple's Objective-C libraries in Leopard are written; they work with garbage collection enabled or disabled.

    For developers, Objective-C 2.0 includes several features that formalize common idioms. For example, there's now built-in champion for simple accessor and mutator methods for kick properties. Writing many such methods is tedious and prone to mistakes. Since the best practices are, by now, well defined, Apple simply added properties as a "native" feature of the language. I Put aboriginal in quotes because it really boils down to a profile of syntactic sugar, but a runt sugar is a excellent thing.

    Objective-C 2.0 is a commodious step forward for a language that has not changed much in the past decade or so. Though Objective-C is open-source and is supported by the GNU C compiler, Apple effectively "owns" Objective-C in the selfsame pass that Microsoft owns C#. Apple is, by far, the heaviest user of the language and has the most stake in improving it. Objective-C 2.0 is a declaration of this ownership, and it appears uncontested. Mac developers, meanwhile, are lapping it up. But my eyes are on the future.

    During the introduction of Objective-C 2.0, Apple was watchful to Put the change in context, declaring that Objective-C 2.0 is "not focused on revolutionary changes to your progress world to achieve the next generation progress environment" (emphasis added). That's everysingle well and good, but then what is going to bring that "next generation progress environment"?

    I've been flipping out about this for years now, and the pressure just keeps mounting. What's Apple's blueprint to transition to a dynamic, fully memory-managed progress environment? I did a three-part blog succession on the topic (1, 2, 3) back in 2005 with the intentionally provocative title, "Avoiding Copland 2010." (The year 2010 is actually probably a few years before the crossroad point.) In it, I pooh-poohed Objective-C with garbage collection as an unsuitable long-term solution. It appears that Apple agrees with me, but that noiseless leaves the problem unsolved.

    I'm confident there are Mac developers reading this that don't see any problem at all, in 2010 or otherwise. I could recede off on another tangent about how programmers always look to assume the language they're currently using provides exactly the prerogative amount of abstraction for the task at hand, with anything less dynamic being considered barbaric, and anything more dynamic seen as crazy and unsafe, but I'll spare you and save it for a blog post.

    In the meantime, the take-home point related to Leopard is that Objective-C 2.0 is a excellent thing. The additions to the language profile Objective-C much more pleasant to expend and easier to learn. The unique runtime is cleaner, faster, and more capable. Garbage collection, if it becomes as pervasive as it ought to, will capitalize train a unique generation of Mac developers to submission one more bookkeeping function to the computer. If there's a cliff up ahead, at least Apple's picking up accelerate and starting to build a ramp. I just hope there's something on the other side to land on by the time they hit the edge.

    The Finder

    Here's what I had to yell about the Mac OS X Finder two years ago.

    Over the years, the Mac OS X Finder has gained a well-deserved reputation as the least pleasing bundled Mac OS X application. [...] While some people fancy it, few infatuation it, and many loathe it.

    To a casual observer, this might emerge a bit extreme. The Mac OS X Finder seems, if not glamorous, then at least benign. What's the commodious deal? The heinous feelings about the Finder don't spring from a separate source. There are at least three part threads of Finder dissatisfaction, usually appearing in combinations of two or more in any given Finder malcontent.

    I went on to portray those three threads of dissatisfaction: spatial/browser-mode interaction, performance, and "the runt things." That summary is noiseless worth reading; everysingle three pillars of Finder angst remain germane in Leopard.

    They're germane partly because the Leopard Finder makes an trouble to address each one directly. "Address" does not involve "resolve," however. But first, some excellent news.


    The Leopard Finder seems to possess finally sorted out how to deal with most network resources without locking up its entire user interface. I know there possess been spurious alarms about this in the past, but I assume Apple really did it this time.

    Case in point: iDisk. Even when .Mac is extremely leisurely to respond, the iDisk window appears instantly. Granted, the window may subsist blank for some time as the Finder waits for .Mac to ship data, but the significant point is that control is immediately returned to the user. Put that iDisk window aside and foster back to it later when it's finished loading; you can continue your work elsewhere. Ah, blessed sanity.

    This applies to local folders too. I can open a folder with over 10,000 items in it and then immediately switch to another Finder window and finish something else while it loads. But I shouldn't really bother because it'll load in only a second or two. Scrolling through 10,000 items noiseless has a few hiccups, but it seems mostly i/o bound now, as it should be. The dreaded beach ball never appears during this exercise.

    Problems noiseless lurk, however. For example, connecting via FTP (sorry, noiseless read-only), putting the server to sleep, then attempting to open a folder on the server will sometimes result in some attribute beach ball time. The timeout seems reduced from Tiger, however. The "Server connection interrupted" dialog appears in about fifteen seconds.

    Other times, it works just fancy the iDisk case: a unique window appears with a spinning progress indicator in its status bar, and control returns to the user immediately. I don't know why the beach ball appears so sporadically, but it's noiseless a refreshing change from the days when it was omnipresent.

    Disk i/o in generic feels snappier in the Leopard Finder. The most prominent specimen is how quickly icon previews are generated. Perhaps it's not so much that they're generated quickly, but that the task is accomplished with so runt fuss. The disk ticks, the generic icons are replaced with previews, and everysingle the while the Finder remains responsive to other actions.

    Overall, I possess to yell this is the most significant performance improvement in the history of the Mac OS X Finder. There's noiseless more work to subsist done on the shadowy corners of network connectivity, but the underlying issues look to possess been addressed.

    The runt things

    The Leopard Finder goes a long pass towards fixing everysingle those niggling runt issues that possess been driving people nuts for years. In fact, several of my own personal peeves possess been addressed. preserve this positive outlook in intellect as I embark on one ultimate rant about how long this has everysingle taken.

    I'll start with two screenshots (highlights added).

    Rename without warnings Adjustable grid spacing

    It's hard for me not to expend profanity at this point, so thoroughly finish these two additions infuriate me. On the one hand, I've been wishing, hoping, and sometimes begging for these features for years, and I'm joyous to finally see them in Leopard. But on the other hand, actually using these features and experiencing how much more pleasant they profile my daily life on the Mac—as I knew they would—only reminds me of how stubbornly Apple refused to add them for the past six years!

    Oh, the agony inflicted for want of such simple features! In the case of the icon grid spacing adjustment, this is something that existed in a lesser profile (only two settings: taut and wide) in classic Mac OS and was dropped during the transition to Mac OS X, fancy so many other features, without explanation or justification. Worse, the spacing between icons was expanded to a comical size in Mac OS X 10.0 and never recovered. It always seemed to me to subsist some sort of punishment for daring to expend icon view. Just learn at this screenshot from Tiger showing the Applications folder with 48x48 pixel icons, scaled to 50 percent of its original size.

    Icon view in TigerIcon view in Tiger

    Apparently the super-secret technology that enables adjustable grid spacing has finally been rediscovered at Apple, presumably in a huge warehouse filled with identical-looking crates of classic Mac OS technology. Here's a screenshot of the selfsame folder with the selfsame 48x48 icons, scaled to the selfsame 50 percent of its original size, when viewed with sane icon spacing in Leopard.

    Icon view in LeopardIcon view in Leopard

    No names are truncated, every separate icon is visible, and the window uses about half the number of pixels. Amazing, this modern world they live in.

    As for the warning when changing file denomination extensions, it's a reasonable thing to finish in a system where (unfortunately) file denomination mangling is the official pass to encode file ilk metadata. It's the inability to disable the warning that's so obnoxious. Again, the changes required to finish this are not complicated. Why did it bewitch so long?

    I'm confident the words "limited resources" and "priorities" would emerge in any explanation Apple would give (as if they'd ever give one, ha), but ironically, I assume that misses the bigger picture. What they possess here is a textbook case of priority inversion: two seemingly insignificant features held back for years, unnecessarily fomenting ill will by needling users on a daily basis, effectively blocking the higher priority task of making a Mac OS X Finder that everyone can relish using—or, Put less charitably, that fewer people loathe.

    Obviously, everyone's pet features can't subsist added, but at a inevitable point the ratio of "ease of implementation" to "annoyance caused by their absence" tips over in favor of features fancy this. There were already enough legitimate reasons for people to loathe the Finder. Leaving runt annoyances fancy this around for so long was just rubbing salt into the wounds.

    Okay, rant over. Adjustable grid spacing and the ability to silence file renaming warnings are finally here in Leopard. These tiny features will profile a disproportionately huge improvement in the lives of many thousands, perhaps millions of users. Apple gets plenary credit for recognizing the worst offenders and fixing them. The fact that it took so long is a shame, but much better late than never.

    New views

    The unique Finder likewise has some Interesting unique features. We'll start with the visual.

    The Leopard window learn suits the Finder well, blessedly excising the chunky borders of its metal ancestors. On the down side, the browser sidebar has adopted the iTunes look, with the obnoxious everysingle CAPS headings and custom highlight style.

    The Finder sidebarThe Finder sidebar

    As you can see above, list view items now possess alternating background colors—a welcome change. Cover flood continues its march through Apple's product line, now appearing in the Finder as well as iTunes, iPhone, and iPod.

    Cover FlowCover Flow

    Smart folders score a set in the sidebar, with the default set shown above. As usual, a excellent selection of defaults goes a long pass towards making a feature more useful. Even for people who possess no thought what a smart folder is, the Today, Yesterday, and Past Week items are immediately understandable and useful.

    By default, any smart folder created will initially emerge in the sidebar. Drag it off and watch it recede poof. Drag it back on and it can recede in either the PLACES or SEARCH FOR sections (so obnoxious... ). Smart folders remain unpretentious XML files that are simply treated specially by the Finder.

    Finally, icon previews score even more aggressive in Leopard. The Finder goes to much lengths to provide previews for even the most mundane and inscrutable of file types.

    Text icon previewsText icon previews

    The squinty text seems kindhearted of silly, but believe it or not, you can actually profile out the basic structure of the document (well, the first page, anyway) even at icon sizes smaller than those shown above. And as you'll soon see, a quick preview of the file's contents is only a keystroke away.

    Quick Look

    The unique Quick learn feature, denoted by the stylized eye icon in the toolbar, provides a surprisingly fleet and affluent preview of file contents. Its keyboard shortcut is particularly convenient. Just select any file and hit the space bar to see a preview. Here's an example.

    Quick Look. Enlarge / Quick Look.

    Most of the time, the black-tinted Quick learn pane pops up instantly. This responsiveness makes the feature much more likely to subsist used. The accelerate extends even to more involved document types, such as PDFs, in which the "preview" isn't far removed from actually opening the file.

    Quick Look: PDFQuick Look: PDF

    That's a resizable, page-able view of the entire PDF. The dual arrows at the bottom expand it to full-screen, providing a nice pass to finish a quick presentation.

    Quick learn has a plug-in architecture similar to Spotlight. Developers must create plug-ins that can read their own proprietary document types and generate previews. Leopard ships with plug-ins for most yardstick file formats.


    Spotlight's crazy orphan search windows are gone in Leopard, leaving only its incarnation in the Finder—and a greatly improved incarnation, at that. Check it out.

    Spotlight searchSpotlight search: nested boolean logic!

    Yes, that's right, nested boolean logic is finally supported! Just option-click on one of the circular "+" widgets to create a unique nested clause. Combined with the aforementioned rewrite of the Spotlight indexing system, the unique file search interface is now what it should possess been everysingle along: powerful, understandable, and fast.

    Access control lists

    Access control lists, introduced in Tiger but disabled by default, are now enabled by default in Leopard. The Finder's "Get Info" window includes a unique pane for adjusting them.

    Access Control ListsAccess Control Lists

    Changes made to this pane that Fall within the realm of yardstick Unix permissions are handled as such. Any rules that recede beyond that will trigger the creation of an ACL. It's a nice unified GUI for concepts that are only part internally for historical reasons.

    (Note that the GUI provides only the basic options: read only, write only, and read/write. You noiseless possess to turn to the chmod command for more fine-grained control.)

    Screen sharing

    Leopard has extensive champion for screen sharing—that is, the ability to see another computer's screen in a window on your Mac and (optionally) control that computer with your mouse and keyboard—using the VNC yardstick as well as Apple's own Remote Desktop protocol. Both the client and server are included in Leopard, and the Finder is the gateway to the client. Browsing a networked computer that has a server for one of the supported protocols enabled will betray a "Share Screen" button.

    Screen sharingScreen sharing

    Clicking it will launch the Screen Sharing application which is surprisingly capable, including many features absent from the pre-Leopard versions of the commercial Apple Remote Desktop product. In particular, scaling and adaptive attribute control profile this client noticeably faster.

    Screen sharing applicationScreen sharing application

    In the screenshot above, I've scaled the remote computer (a Mac running Tiger and Apple Remote Desktop) to an extreme degree, but it's noiseless fully functional and surprisingly usable even at this tiny size. The preferences dialog in the front belongs to the Screen Sharing application, as does the toolbar with handy "Send to/from Clipboard" buttons on it.

    The Screen Sharing application is hidden in /System/Library/CoreServices, but can subsist launched manually and used to connect to another computer if you know the IP address. You'll subsist prompted for a username and password, with the option to explicitly request permission to participate the screen.

    (Screen sharing is likewise built into iChat, though it appears to require both participants to subsist running Leopard. URLs in the profile vnc://... will likewise work in the Finder.)

    If you are your family's "Mac guy," the newfound ubiquitousness of screen sharing lonely is judgement enough to score everyone to upgrade to Leopard.

    An application divided against itself

    The Finder noiseless can't quite settle what it wants to subsist when it grows up, a file browser or a spatial file manager. A spotless separation of concerns would allow it to subsist both, but this is a solution that Apple has thus far avoided.

    In Leopard, the two window types remain: the sidebar/toolbar-sporting "browser" window style, and the style that lacks both the sidebar and toolbar. Opening a folder from within a browser-style Finder window replaces the contents of that window, whereas the selfsame action in a non-browser window causes a unique window to subsist opened.

    The latter style is often called "spatial" because the creation of a unique window for each folder is a prominent conduct of the classic Mac OS Finder and other file browsers that link spatial window state (size, position, etc.) to individual folders. But there's more to being a spatial file manager than opening a unique window for each folder. The basic requirements for a spatial file manager are:

  • Each folder is represented by a separate window.
  • Each window is unambiguously and irrevocably tied to a particular folder.
  • All changes to the spatial state of a window are preserved (e.g. size, position, color, view style, etc.)
  • Sorry for the review, but it's been a few years since I've covered this ground. I'm not, however, going to present an dispute in favor of spatial file management in this review. (I wrote one four years ago, if you're interested.) I'm just trying to define the terms of the debate.

    Historically, the Mac OS X Finder has not fulfilled the requirements described above and therefore could not subsist considered to possess a proper "spatial mode." In particular, requirement number two is violated ten ways to Sunday by the oblong toolbar button that transforms any Finder window into a browser (i.e., a portal through which the contents of any folder can subsist viewed).

    Of course, the mere presence of this ability isn't the selfsame thing as it actually happening. For a simulated spatial Finder, why can't a user simply choose not to transform Finder windows in this way? The converse goes for those that want a purely browser-style Finder.

    Sadly, working around the Finder's identity crossroad has not been so easy. In everysingle past releases of the Mac OS X Finder, it was impossible to work with one kindhearted of window without the other kindhearted popping up in your kisser periodically, unrequested and unwanted. This annoyed browser and spatial aficionados alike.

    Upon first using the Leopard Finder, you will subsist forgiven for thinking that things are looking up on the spatial/browser front. Windows are much less likely to sprout (or un-sprout) sidebars and toolbars without being explicitly asked to finish so. Sure, unique folders created on the desktop noiseless look to unconditionally open in browser mode, but overall there's been an improvement over past releases.

    Unfortunately, things are much more grim than they first emerge for fans of spatial file management—or anyone else that cares about view style retention in the Finder.

    The Leopard Finder makes its usual, halfhearted, buggy attempt to retain window size and position for each folder. It noiseless does so using .DS_Store files in each directory, and those files are noiseless written in an undocumented binary format. What the Leopard Finder no longer even attempts to do, however, is recall the view style for each folder (e.g., list view, icon view) unless explicitly asked to finish so by the user. Here are the steps required to finish that.

  • Open the folder.
  • Set its view style to the desired state.
  • Open the View Options panel (type command-j or select the item in the View menu).
  • Check the "Always open in ... " checkbox, where "... " will subsist the view style set in step 2.
  • This process must subsist repeated for every separate folder that you want to retain its view style. If you finish not finish this, the view style of any given folder will subsist the selfsame as the ultimate view style that you explicitly selected for any folder.

    In other words, while window size and position remain attributes of individual folders, view style is now a global attribute of the Finder application itself (optionally overridden by a per-folder setting that must subsist manually applied as described above). Here's a demonstration.

    Finder global view style.

    Note how Folder B's view style appears to mimic the view style set for Folder A. What's really happening is that the global Finder view style setting is being changed. Changing the view style anywhere—whether it's in Folder A, Folder B, or somewhere else—determines the view style that every newly opened Finder window will use. The only exceptions are those folders that possess had their view styles manually pinned to a particular value using the "Always open in ... " checkbox.

    And by the way, checking that checkbox does not involve that future changes to the view style of that folder will subsist retained. If you want to retain a view style change to such a folder, you must finish the following.

  • Open the folder.
  • Set its view style to the desired state.
  • Open the View Options panel.
  • Uncheck the "Always open in ... " checkbox, where "... " will subsist the view style as it appeared in step 1.
  • Check the "Always open in ... " checkbox, where "... " will now subsist the style set in step 2.
  • Again, repeat this process for every every separate folder that you want to retain the unique view style that you've set for it.

    This avalanche of mandatory specific action effectively represents a denial of service assail on the spatial style of file management. It overloads the user with a never-ending stream of mundane tasks, making the formerly transparent process of view style retention so inefficient that it will likely subsist abandoned entirely.

    If the Mac OS X Finder wants to subsist a absolute browser, then fine, recede for it. But in a proper browser, everysingle view state—not just view style—is rightfully an attribute of the browser itself rather than the thing being viewed. For example, when opening a URL in Safari, the Safari application determines the size, position, and adornment (toolbars, etc.) of the resulting window, not the web site being viewed.

    So why has the Leopard Finder chosen to profile view style lonely an attribute of the application, leaving window size and position as implicitly belonging to each folder? Why the continued charade of the two different window styles? Hell, what explains the continued actuality of the global "Always open folders in a unique window" preference that effectively stops any window from being a proper browser?

    The Finder remains a truly conflicted application. On the one hand, the equipoise has shifted heavily in favor of browser-style file management in Leopard. On the other hand, many features related to spatial file management remain. It's a mess, and shifting the mess to one side or the other is not going to capitalize much. It's particularly painful to watch Apple continue to flounder in this region when there's a blindingly obvious solution.

    Of course, Apple could recede all-browser or all-spatial, but presumably neither of those extremes is attractive or we'd possess seen one already. No, the Finder has to finish both. I've often gone into much detail about the particulars of such a Finder, but apparently there's too much gradation in that approach. Let me yell it more plainly: for the infatuation of God, Apple, just freaking part the two modes! Let each subsist True to itself, free to wave and expand in the appropriate ways. I can simmer it down to three bullet points.

  • Two window styles: browser and spatial.
  • No ability to transform a window from one style to another.
  • The "New Finder Window" command becomes "New Browser Window."
  • Then just profile the browser and spatial windows behave according to the rules of their respective well-established conventions. That's it! Oh, sure, there are details to subsist sorted out, like, say, coming up with a reliable, efficient, user-specific mechanism for storing view state information, eliminating the scourge of .DS_Store files. But these are details; score the two modes sorted and everything else will Fall into set eventually.

    The Finder on the couch

    I first noticed the unique view style conduct in Leopard when I logged in one day and saw that everysingle my open Finder windows had reverted to icon view. That's obviously a bug, I thought, and I filed one with Apple. As I investigated further and came to understand the underlying cause, I replaced the previous bug with a unique one that reported the bizarre "global view state" phenomenon. Needless to say, the bug was closed with the status "Behaves Correctly."

    Uncharacteristically for Apple, a brief explanation of the rationale for the change accompanied the closure. The boilerplate-esque text said, in part, "To appeal to most users, the view style mechanism has changed in Leopard. [... ] To view everysingle folders in your favorite view style you need only click on the view style button once, and you will remain in that view style."

    Rarely are they given any insight into Apple's reasoning when it comes to user interface changes, so I'm inclined to mine this tiny nugget for everysingle its worth. It seems lucid to me that the unique conduct is intended to meet a exact for more browser-like behavior, something that "most users" possess told Apple they want. I don't find that surprising; ever since the sidebar appeared, the Finder has certainly looked the allotment of a browser. Its behavior, however, has remained schizophrenic. The common user response: "It looks fancy a browser, but doesn't behave fancy one. gratify redress this."

    On the other hand, apparently some people at Apple believe that going to a full-on browser would subsist too much. Perhaps they panic it will result in a flood of complaints about "windows not remembering their settings."

    This is the ilk of feedback you can await from regular users: expressions of particular twinge points. It's not their job to resolve the Finder's problems or even to understand the underlying causes. But being reactive to this kindhearted of feedback at this flat of granularity will only lead to feature churn.

    And so you score changes fancy those made to the Leopard Finder. A change here to address a situation where the Finder isn't browser-like enough, implemented in such a pass that it (further) breaks spatial mode. Oops, now let's sling in an "Always open in ... " view option to profile those other people happy. And round and round it goes. push something in over here, something else pops out over there. No one is thinking about the commodious picture.

    As a sop for spatial file management fans, the "Always open in ... " view option fails spectacularly. It's more fancy a giant middle finger from Apple. At the very least, an option to restore the pre-Leopard conduct of automatically retaining view style on a per-folder basis (radar 5543643) is necessary to restore some semblance of balance. But in the long run, it's everysingle unavailing unless the larger issues are addressed.

    Finder summary

    The Finder was one of the biggest surprises for me in Leopard. It was not clear-cut at everysingle from the brief Leopard Finder demos shown at the various Macworld Expo and WWDC keynotes that such significant changes had been made. Certainly, there's wasn't even a whiff of the unique policy on view style retention.

    After many years of bugs, impoverished performance, a feeble browser, and a pseudo-spatial mode, it'll subsist Interesting to see what kindhearted of reaction this change gets in the wider Mac community. You don't need to know or supervision about any of the high-concept user interface theories to score annoyed when the results of your actions are not respected enough to subsist preserved. On the other hand, the Finder has been flaky about state preservation for years. How many Mac users possess simply given up trying to profile the Finder a familiar, hospitable place? Maybe no one will even notice that view style changes are no longer preserved automatically.

    Well I confident as hell noticed, and it pisses me off. I'll subsist gritting my teeth as I ramble my hard drives, manually pinning down the view style of each folder I supervision about. I'll grimace every time I naively change a view style only to subsist surprised later when I realize that my change was ignored because I forgot to (re)pin it manually. I'll curse as I spend time and energy finding a pass to automate the entire tedious process. (I've gotten as far as figuring out how to set the "Always open in ... " checkbox using a hex editor on the appropriate .DS_Store file. Sad, but true.)

    The Leopard Finder's saving grace may subsist that the increased responsiveness and unique features are likely to overshadow everysingle other issues, and will recede a long pass towards damping the flames of hatred burning in inevitable corners of the Mac world (even as the view style changes ignite more).

    Way back in 2002, I wrote that "the changes being made to the Mac OS X Finder betray a fundamental want of vision." This continues to subsist the case. Not only does the Leopard Finder bewitch no bold steps towards a valorous unique world of file management, it even further distances itself from a coherent incarnation of established file management paradigms. The changes in Leopard finish bespeak that Apple has taken a renewed interest in improving the Finder, but motion is not the selfsame thing as progress. For where I'm sitting, it looks fancy one step forward, two steps back.

    The Dock

    If the Finder looks fancy a starlet headed for rehab, then the Dock is out on a bender in Leopard. We've already seen the aesthetic damage. Now it's time to bewitch stock of the functional vandalism.

    The left side of the Dock remains mostly unchanged. It noiseless holds only applications, running or otherwise. everysingle of the unique features are on the prerogative half of the Dock, where "everything else" lives. Files, minimized windows, and the trash everysingle pass into Leopard unscathed. It's docked folders that received the most attention from Apple, for better or for worse. (Mostly worse.)

    First off, I cheated a bit earlier with the screenshot of special folders. Docked folders in Leopard exhibit their actual folder icons only when they are empty. Docked folders containing one or more items exhibit the icons of those items stacked on top of each other, sorted by denomination (the default), kind, or date. In a fresh Leopard install, here's what the Applications folder will learn fancy in the dock.

    The Applications folder in the DockThe Applications folder in the Dock

    Seriously. It gets worse. Let's add the unique Downloads folder next to the Application folder. Here's what it looks fancy in the Dock after downloading your first disk image.

    The Downloads folder(!) in the DockThe Downloads folder(!) in the Dock

    Yep, that's it prerogative next to the trash. I kid you not. Let's add an actual disk image file to the Dock.

    The Downloads folder and a disk image in the DockThe Downloads folder and a disk image in the Dock

    That's the Downloads folder on the left, and the disk image file on the right. It's slightly bigger.

    If you are not shaking your head, uttering something profane, or taking some deity's denomination in hollow prerogative about now, congratulations, Apple may possess a position for you in their user interface design group.

    Do I need to further complicated my objection to this insanity? I hope not, but if so, let's continue by looking at a more typical Dock with several folders containing multiple items. First, the Tiger version.

    Docked folders in TigerDocked folders in Tiger

    Now Leopard.

    Docked folders in LeopardDocked folders in Leopard

    Just try and freaking guess what those icons are in the Leopard Dock, I dare you. Sure, two of them are probably easy: the Applications folder that you've already seen, and maybe the Downloads folder which just has two additional items in it. But the others? Forget it. Here's the actual list, from left to right: Home, Applications, Downloads, Documents, Pictures, Movies. And yes, I had to scrub my mouse over the icons to score that list right.

    When it comes to ease of identification, the Tiger version wins, hands down. And recall that the icons in the Leopard Dock will change their appearance as the contents of those folders change over time.

    In the Leopard Dock, my home folder appears as a bunch of stacked folder icons because that's mostly what it contains: other folders. There's actually one document peeking out in the middle of the stack as a sliver of white. The icon on the top is the Desktop folder icon. So, out of the box, your home folder, when docked, appears to subsist the Desktop folder.

    We already talked about Applications. It's basically Address Book, the head of the Automator robot icon, then a bit of folder peeking out the sides. My Documents, Pictures, and Movies folders everysingle contain mostly other folders as the first few items, alphabetically.

    Changing the sorting doesn't capitalize much. The problem is that this is fundamentally a heinous idea. There's just not enough room in a separate Dock tile for a stack of icons to convey any meaningful information. Only the top one, two, maybe three items possess any visual impact. And those few items may subsist delusory (e.g., the home folder appearing to subsist the Desktop folder) or completely generic (e.g., the Pictures and Movies folders showing up as unpretentious folder icons.) Seriously, Apple, this is a heinous idea. And finish I need to bid you that there's no pass to disable this behavior? Sigh. And we're not done yet.

    Clicking a non-empty docked folder that contains other items no longer opens the folder in the Finder. Before I score into what does occur when you click on a docked folder, let me further point out that (surprise!) there is apparently no pass to score the customary conduct back. I modifier-clicked my fingers off with no luck. Yes, there's noiseless the "Show in Finder" context menu item, and as we'll see, at least one other alternative that requires two clicks (possibly quite distantly separated), but nothing as succinct as the conduct that existed in Mac OS X 10.0 through 10.4. Leopard just takes this feature away.

    Here's what does occur when you click a docked folder. If the folder is empty, it opens in the Finder. If it is not blank but contains less than a dozen or so items, it sprouts a curving stack of icons, topped by a "Show in Finder" button. Clicking on an icon is the selfsame as opening it in the Finder: folders open in a unique Finder window, documents open in the appropriate application, and applications launch. A command-click reveals an item in the Finder.

    Docked folder stackDocked folder stack

    Apple calls this view "Fan." The curve is jaunty, but it likewise makes it a bit more difficult to click items tall in the stack, requiring a varying amount of lateral motion rather than a straight shot upwards. Putting the "Show in Finder" icon is at the top seems particularly cruel. If it were at the bottom, the two clicks required to open a docked folder in the Finder would subsist tolerably nearby together.

    If there are many items in a folder, clicking on its dock icon reveals an icon grid on a tinted background.

    Docked folder gridDocked folder grid

    Items in the grid respond to clicks in the selfsame ways as items in the fan view. Each docked folder can subsist viewed as a fan or a grid or can subsist set to "automatic" (the default), which uses a fan when there are few items and switches to grid to exploit many items.

    Both of these unique features are actually pretty nice. It's too heinous Apple decided to completely replace the customary behavior. It would possess been so facile to possess it all: just add a "Window" menu item alongside Fan and Grid in the "View as" submenu.

    Docked folder views: a suggestionDocked folder views: a suggestion

    Finally, the Leopard Dock is spring-loaded, at long last. That is, when dragging an item onto a docked folder and holding it over the folder for a few moments, the docked folder springs open to betray its contents, allowing further nesting of the dragged item.

    Taking stock of the Dock

    Put simply, there are few positive changes to the Dock in Leopard. Fans and grids are nice, but even those unique features are hampered by the needless abandonment of customary behaviors. The "stacked contents" docked folder panoply method is a total loss. char it with fire, or at least provide some pass to eddy it off.

    And lest they forget, despite these unique Leopard feature, the Dock is noiseless quite anemic. This isn't talked about much these days, but everysingle the customary power-user complaints about the Dock noiseless possess merit: the need for icon scrubbing, the affecting targets, the capricious division of items, the pass each function affects the others (e.g., minimizing many windows makes the Dock a less effectual launcher by shrinking and affecting everysingle items), etc.

    The benefits of the Dock are obvious and well established. Many of its weaknesses are actually strengths for beginners and users with less involved needs. But as the boneheaded changes to the Leopard Dock amply illustrate, there's one persistent fact that makes the Dock's failings stand out: you possess to expend it.

    Mac OS X forces you to expend the Dock by making it the exclusive home for some essential functionality. The three biggies are window minimization, application notifications (i.e., bouncing icons and icon badges), and application Dock menus. Maybe you could give up one of those, but it's pretty much impossible to live without having any of them.

    Replacing or even just replicating any of these features elsewhere can only subsist done using scary, unsupported hacks (and thank God that's even possible) or inefficient, application-specific work-arounds (e.g., polling via Apple Events to simulate Dock icon badges for unread message counts and so on).

    If Apple's going to not only reject to profile the Dock better suited to more involved or demanding usage scenarios, but likewise periodically hose existing functionality and add really terrible unique behaviors, it needs to bewitch away the Dock's exclusive ownership of essential features. Let me screen the Dock entirely and expend a third-party replacement without sacrificing basic functionality and without compromising the stability of my system. I know it's always a twinge to add unique public APIs, but these changes are long overdue, and they'd capitalize Apple in the long sprint as well. Mr. Serlet, rip down this wall! Don't obligate me to expend the Dock, and I plight I'll desist actively hating it.

    Time Machine

    Time Machine is the best unique feature in Leopard, perhaps the best feature ever added to Mac OS X. Put simply, Time Machine is a backup and recovery system that people will actually use. It effectively cuts the Gordian Knot of the age-old backup scrape for average users: "I know I should back up, but I never do. I wouldn't even know how to finish something fancy that anyway." Well, enough of that. If you possess more than one hard disk attached to your Mac, it's more difficult not to expend Time Machine than to expend it.

    Backup disk selection dialogBackup disk selection dialog

    The first time two or more hard disks are connected to a Mac running Leopard, a dialog box will emerge asking the user to select a backup disk. choose one and you're done; no further action is needed. Were you to ramble over to the Time Machine preference pane, you'd see this tidy runt display.

    Time Machine preferencesTime Machine preference pane

    The comically huge on/off button dominates the screen. (Shades of the iPhone "slide to unlock" control, eh?) The only two other controls are the "Change Disk" button and the "Options" button which leads to this dialog.

    Backup optionsBackup options

    It's everysingle pretty self-explanatory, and the defaults are sensible enough that no one ever even needs to know these screens exist.

    The benefits of Time Machine are revealed in two significant ways. First, if your main hard drive dies or is replaced, booting from the Leopard install DVD will provide a one-click pass to restore from your ultimate Time Machine backup. Second, when viewing any window in the Finder, triggering a special mode will exhibit the contents of that window at everysingle points in the past for which backup data exists. Files can subsist recovered from the past, replacing the current incarnations or existing alongside them.

    This everysingle sounds so simple that it's boring, but that's the genius of it. Apple took a survey of its customers' backup habits before creating Time Machine. Eighty percent of Mac users said they knew they should backup their data. (This is scary already. Only 80 percent?) Twenty-six percent said they finish backup their data. That actually doesn't sound too heinous until you score to the next question. Only four percent backup regularly.

    In a nutshell, this means that if you could snap your fingers and profile one Mac user's main hard drive disappear, there's a 96 percent haphazard that you just destroyed files that are completely unrecoverable. With more and more irreplaceable personal data being stored on Macs (e.g., family photos and movies) it'd subsist irresponsible of Apple not to address this issue in some way.

    I harped on this topic a bit a few years ago, coming at it from the hardware side by suggesting that Apple Put at least two hard drives in every Mac. In Leopard, Apple has approached the problem from the other direction, eliminating the software hurdles and relying on Mac users to supply the additional hard drive.

    In hindsight, this is a more practical solution. Mac users are much more likely to purchase and attach a spare hard drive than they are to navigate the complexities of backup software on their own—software that may cost as much as a hard drive, these days.

    And as the icing on the cake, Apple even made file recovery fun. It starts with the icon for the Time Machine, which is in the Dock by default.

    Time Machine iconTime Machine icon

    Click it and everything but the front-most Finder window falls off the screen, revealing a crazy-ass swirling nebula and affecting star field, into which fades a succession of historic incarnations of the lone remaining Finder window.

    Time Machine mode (cropped due to space constraints; see Apple's web site for <a href="">more images</a>)Time Machine mode (cropped due to space constraints; see Apple's web site for more images)

    Cancel "button"

    Cancel "button"

    Time line

    Time line

    Completely non-standard arrows and buttons are used to navigate and restore files. A timeline along the prerogative shows each backup as a tick mark, magnifying the marks on mouse-over much fancy the Dock magnification feature. It's everysingle completely ridiculous, and you know what? I infatuation it!

    I'm willing to indulge Apple when it comes to these flourishes in Time Machine for two reasons. First, notasoul of the silliness renders the features significantly less usable. Yes, those arrow buttons are crazy, but they're likewise huge click targets, and they clearly convey their purposes. Ditto for the buttons at the bottom. Second, and most importantly, Time Machine is designed in such a pass that it's easy—almost trivial, in fact—for third-party developers to create their own interface to manage backed-up data. Which leads us to...

    Time Machine internals

    Backups are stored in a folder named Backups.backupdb at the top flat of the drive selected as the Time Machine backup repository. Within that is a folder with the computer denomination (as set in the Sharing preference pane in System Preferences) which contains a succession of date-stamped folders (YYYY-MM-DD HHMMSS), each of which contains a folder named for each volume being backed up. Here's an example.

    Time Machine backup "database"Time Machine backup "database"

    In this case, the computer denomination is "Leopard" and the hard drive denomination is "Leopard Demo." Each "Leopard Demo" folder contains the complete contents of the volume as it existed at the time indicated by the parent folder's name.

    Wait a second, the complete contents? Let's see, there are ten date-stamped folders, each containing a "Leopard Demo" folder... does that involve that the Time Machine backup drive shown above is at least ten times larger than the Leopard Demo volume? Fortunately, no. Time Machine is a bit more clever than that.

    When creating a unique date-stamped backup, Time Machine does not copy any files that possess not been modified since the ultimate backup. The selfsame goes for entire folders; if everysingle the files in a particular folder possess not been modified, then the entire folder is not copied.

    And yet there they everysingle are. If you navigate into one of the "Leopard Demo" folders, you'll see every separate file. Not aliases, not symlinks, the actual files:

    Complete disk contents in each backupComplete disk contents in each backup

    Well, sort of. In my Tiger review, I included an explanation of Unix file permissions. To understand what Time Machine is doing, you must first know something about another yardstick Unix feature: symbolic links and hard links. This is very basic stuff for anyone with Unix experience, but I got a lot of positive feedback about the Unix permissions tutorial so I hope you'll allow me a brief digression. Feel free to skip this section if you know this stuff already.

    Symbolic links and hard links

    Mac OS has included the ability to create an "alias" of a file since System 7. Aliases are small, unpretentious files whose contents are interpreted by the Finder and other Mac OS APIs, allowing the original file to subsist found. To the core OS in Mac OS X, however, aliases are meaningless. They're literally just small, unpretentious files. (In fact, their size is shown as zero because everysingle the data is in the resource fork.) The first allotment of this lesson is that aliases possess absolutely nothing to finish with symbolic links and hard links.

    For decades, Unix has had two ways to finish something similar to what aliases do: symbolic links and hard links. A symbolic link, likewise called a symlink, is a pointer to another file. The location of this file is specified using an absolute or relative path string. Symbolic links are created with the ln command using the -s flag. Here's an example.

    % ls -l -rw-r--r-- 1 john staff 894 Oct 18 10:04 myfile % ln -s myfile mysymlink % ls -l -rw-r--r-- 1 john staff 894 Oct 18 10:04 myfile lrwxr-xr-x 1 john staff 6 Oct 18 10:06 mysymlink -> myfile

    As indicated by the leading "l" in the Unix permissions string, mysymlink is a symbolic link. It points to myfile, which the ls command shows to the prerogative of the runt ASCII arrow. Note that the symbolic link is tiny: only six bytes. That's not a coincidence. Symbolic links are "dumb" in that they literally contain nothing more than the target file path as a string. In this case, the string is the relative path "myfile" which (surprise) is exactly six characters long.

    If I wobble mysymlink to an entirely different directory that likewise happens to contain a file named myfile, then the symlink will point to that file instead. If I delete myfile, the symlink will remain, noiseless containing that selfsame path string which no longer leads to an actual file. Observe:

    % rm myfile % cat mysymlink cat: mysymlink: No such file or directory

    The error reported is a bit confusing. The mysymlink file noiseless exists. But when the operating system attempts to open that file, it dutifully follows the symbolic link and finds that there is no file at the path specified by the link. The cat command then reports the error it encountered when trying to open the file it was originally told to open.

    This property of symlinks can likewise subsist considered a feature in some circumstances: "simple" rather than "dumb." But sometimes a more robust mechanism is needed. Enter hard links.

    A hard link is simply a reference to some data on disk. assume of a file as a combination of a denomination and a pointer to some data. Deleting a file really means deleting the denomination portion of that duo. When there are no more names pointing to a particular piece of data disk, then that disk space can subsist reused.

    Most files possess just one name. In effect, every unpretentious file is a hard link. bewitch another learn at the myfile listing from before.

    -rw-r--r-- 1 john staff 894 Oct 18 10:04 myfile

    See that number "1" prerogative before the word "john"? That indicates that the data linked to the denomination myfile has only one name. In other words, deleting myfile will drop the count to zero, allowing the disk space previously used by myfile to subsist used for other purposes. Note that creating a symlink does not increment this number.

    % ls -l -rw-r--r-- 1 john staff 894 Oct 18 10:04 myfile lrwxr-xr-x 1 john staff 6 Oct 18 10:06 mysymlink -> myfile

    In fact, the symlink itself has a "1" in that column, indicating that there is only one denomination linked to those the six bytes of data. Now let's profile a hard link, again using the ln command, but this time with no flags.

    % ln myfile myhardlink % ls -l -rw-r--r-- 2 john staff 894 Oct 18 10:04 myfile -rw-r--r-- 2 john staff 894 Oct 18 10:04 myhardlink lrwxr-xr-x 1 john staff 6 Oct 18 10:06 mysymlink -> myfile

    Now the link count for both myfile and myhardlink is two. This indicates that the data linked to by myfile has two names, and the data linked to by myhardlink has two names. In this case, both link to the selfsame data. They possess no pass of knowing that merely by looking at the link counts; they know because they just ran the ln command ourselves.

    Though the size for both myfile and myhardlink is listed as 894 bytes, those 894 bytes exist only once on the disk. Again, it's one chunk of data with two names. As far as the OS is concerned, neither myfile nor myhardlink is the "real" file. They are both equally real, as actual as either one would subsist if the link count was one instead of two.

    Since these two files link to the selfsame data, the results of modifying that data will subsist reflected in each file. For example, let's add five bytes to the chunk of data linked to myfile (the word "test" plus a newline character):

    % cat >> myfile test ^D

    Now let's learn at the result.

    % ls -l total 24 -rw-r--r-- 2 john staff 899 Oct 18 10:38 myfile -rw-r--r-- 2 john staff 899 Oct 18 10:38 myhardlink lrwxr-xr-x 1 john staff 6 Oct 18 10:06 mysymlink -> myfile

    The sizes of myfile and myhardlink are now both reported as 899 (894 + 5). Meanwhile, mysymlink is noiseless the lone denomination linked to its six bytes of data containing the string "myfile".

    Back to Time Machine

    Okay, digression over. Let's revisit the mystery of the ten apparently complete copies of my "Leopard Demo" volume in the Time Machine Backups.backupdb folder. As you might possess guessed by now, Time Machine uses hard links to repeatedly link to the separate instance of a particular chunk of data on disk. Here's an example:

    % cd Backups.backupdb/Leopard/2007-10-18-103601/Leopard Demo % ls -l mach_kernel -rw-r--r--@ 10 root wheel 10235416 Sep 18 23:50 mach_kernel

    And there you possess it: the "10" next to the word "root" indicates that there are ten names linked to the data that mach_kernel links to. That data exists only once on the Time Machine backup volume. This arrangement is repeated for each file that has not been modified since the ultimate backup.

    Time Machine goes one step further. Historically, Unix has only allowed hard links to files. In Leopard, Apple has included the ability to profile hard links to directories. This has not been allowed in Unix because it can lead to everysingle sorts of very nasty eternal loops during file look-ups. Of course, symbolic links can create loops too, but they're a lot easier to detect and prevent since symbolic links are easily distinguished from average files. But as discussed earlier, every file is essentially a hard link, and everysingle hard links possess equal standing in the eyes of the OS, making loop detection a bit trickier.

    Nevertheless, the benefits for Time Machine were substantial enough for Apple to (carefully) add this ability to Leopard. For example, if the entire /System directory has not changed since the ultimate backup, Time Machine just has to profile a separate hard link to that directory in the unique backup folder. Without champion for hard links to directories, Time Machine would possess to create 18,744 directories containing a total of 68,839 hard links to files (using numbers from my /System directory).

    Yes, directories are little and hard links only bewitch up the room necessary for their directory entries (at minimum, enough to store the denomination and a pointer to the data on disk), but those bytes add up fleet when you're talking tens of thousands of hard links being created every time you want to finish a backup. hard links to directories profile this everysingle much simpler and more efficient.

    There is one final bit of cleverness in Time Machine. When it comes time to finish a backup, how does Time Machine know which files possess changed since the ultimate backup? If you've been reading along (and not skipping sections fancy a wuss), the reply is obvious: FSEvents.

    Though Apple was kindhearted enough to profile it a public framework, Time Machine is arguably the entire judgement FSEvents was created. Time Machine can wake up whenever it wants—it doesn't need to subsist running constantly—and efficiently find out what's changed since it ultimate checked (that is, since the ultimate file system event id that it saw). Since FSEvents reports changes at a directory level, Time Machine noiseless has to determine which files in that directory possess changed. No problem! It's got the previous backup of that directory to expend as reference. FSEvents and Time Machine are a flawless match for each other.

    Implementation consequences

    It's luckless that Time Machine's cleverness does not extend just a bit further. The smallest unit of data that Time Machine will backup is an individual file. That means that if you change one byte in a 10GB file, that entire 10GB file needs to subsist copied to the backup volume. hard link can't capitalize you here. There's no pass to profile a hard link to "9.99999GB of the customary data, plus this one byte of unique data."

    But how often does that happen? Sure, it's a worst case scenario for a file-level backup system fancy Time Machine, but isn't it rare to repeatedly modify a little portion of a giant file? Well, it depends. I can assume of two instances that will gnaw many thousands of Mac users.

    First, if you expend Microsoft Entourage, your e-mail is kept in a single, big database file. Mine is about 2GB. Most people score unique e-mail every day. Ugh.

    Second, if you expend any sort of virtualization software fancy VMware or Parallels, each virtual machine hard disk image is a multi-gigabyte file that changes pretty much every time you expend the VM. Double ugh.

    So, how many Mac users own some virtualization software or expend Entourage? That number has to subsist in the thousands, and is probably growing.

    Apple has been encouraging developers to expend many little files rather than one commodious one for years now, mostly to profile it easier for Spotlight to index application data. In Tiger, Apple Mail switched to saving individual messages rather than larger, monolithic mailbox files for this reason. Presumably Entourage could finish the same, although I possess no thought if it does so in the upcoming Microsoft Office 2008 release. But for virtual machine files, the problem is intractable. And those mind to subsist the biggest separate files on most disks.

    This problem needs to subsist addressed. The best solution is for Apple to wobble to a unique file system that supports block-level snapshots. ZFS, for example, would fortunate the bill. Sadly, no such transition has happened in Leopard. Time Machine backs up to a unpretentious customary HFS+ volume (though read-only champion for ZFS is included in Leopard, with experimental read/write champion available to developers).

    Reimplementing Time Machine on top of ZFS or some other similarly capable file system would subsist a commodious win in terms of space efficiency. Unfortunately, that's a tall order. Don't hold your breath for anything fancy that until 10.6 at least.

    In the meantime, it is possible to exclude individual files from Time Machine backups by dragging them into the "Do not back up" list available in the Time Machine preference pane. That will exclude the file by path. The selfsame underlying API (CSBackupSetItemExcluded()) can actually subsist used to exclude a file directly, preventing the file from being backed up no matter where it's moved or how it's renamed. (Extended attributes in action yet again.)

    Time Machine's backup format likewise means that it's not possible to boot from a Time Machine backup volume. Instead, you must boot from a Leopard install DVD and restore the Time Machine backup onto a unique volume. If, fancy me, you feel better likewise having a bootable backup around, an application fancy SuperDuper is noiseless necessary. (I reject to add the exclamation point. Sorry, David.)

    On the quick-witted side, the backup format isn't really a "format" at all. It's a bunch of unpretentious files on disk in date-stamped folders. Don't fancy the loony space-motif file restoration interface in the Finder? Don't expend it. You can ramble around the Backups.backupdb folder using the Finder, the command line, or any other file manager. But the biggest win with everysingle these public APIs and simple structures is that the domain is wide open for third-party developers to create applications that complement and build upon Time Machine.

    It's a spotless machine

    Despite a few consequences of Apple's continued inability to domain a successor to the venerable HFS+ file system, Time Machine is a conceptual and technical home run. Okay, so it's an infield home run, but it noiseless scores. Time Machine makes a task that was once so involved and intimidating that almost no one even attempted it, and makes it invisible. fancy everysingle much ideas, it seems obvious after you've seen it, but that in no pass diminishes the achievement.

    Time will bid (ha) if this machine is enough to score to Apple's stated goal of having 100 percent of Mac users backup regularly, but I assume it'll certainly profile a dent. I often score scolded by other mothers via e-mail when I expend my mother as an example, but it's just too apropos to pass up here. Time Machine is literally the only pass I can assume of that I could ever score my mom to back up her Mac. Once she has upgraded to Leopard, I can bid her over the phone to buy an external drive, plug it in, and click a button in a dialog box. No cross-country visit, no Apple Remote Desktop session (although Leopard makes that allotment easier, too), no software installation, no unique application to learn.

    Yep, it's a glimpse into the self-sufficient-mom future they everysingle imagine. The open backup format and APIs are exactly the prerogative pass to add a major feature without the ordeal of being everysingle things to everysingle people. Let third-party developers to add value; they'll infatuation you for it. Time Machine earns its set as the marquee feature of Leopard. excellent show, Apple.


    Each unique version of Mac OS X has been faster on the selfsame hardware than its predecessor. I've said as much in my reviews, but the definition of "faster" is admittedly nebulous when applied to an entire operating system.

    There are at least two significant ways that an OS gets "faster." The first is traditional code optimization, where some subsystem is improved to expend less CPU time or less recollection or finish less disk i/o, thus performing the selfsame task in less time. The second factor is perceived speed. Though a task may actually bewitch longer, it may feel faster due to changes in the pass the OS reacts during the process.

    Application launching is the canonical specimen that combines both. You can time how long it takes for an application to finish launching, giving you a measurement of actual performance. The perceived performance, on the other hand, has more to finish with the number of bounces the Dock icon makes, when the first application window begins to draw itself, and whether there's a beach ball cursor at any time during the process.

    Leopard, fancy its predecessors, gets faster on the selfsame hardware in both areas. Frameworks possess been extensively revised and optimized, yielding actual performance benefits in the areas of screen drawing (2D or 3D), text display, and most of the features that were unique in Tiger.

    In particular, Spotlight's improvement has been revelatory. Maybe it will humiliate with time, but after a few months of usage it's noiseless lightning fast. I've actually been too slothful to install Quicksilver on each unique Leopard seed, relying instead on Spotlight as a quick launcher—something that would subsist inconceivable to me in Tiger. And Leopard is not getting off facile by just indexing a spotless install. No, it's indexing everysingle 2+ million of my files.

    This brings up an Interesting point. Does a faster Spotlight contribute to the "OS" being faster? I yell it does. From a user's perspective, an OS is a collection of features and bundled applications. Only nerds supervision about the "real" definition of an operating system, encompassing only the lowest-level services. Spotlight is noticeable and measurably faster in Leopard, and that makes a commodious inequity to users.

    Speaking of Spotlight, the continued addition of similar "system services" to Mac OS X has caused some concern. Upon booting into Tiger for the first time, for example, users had to endure a long disk-thrashing suffer as Spotlight indexed everysingle their files. Granted, it happened in the background, but it did leisurely things down. Perhaps more importantly, the sound of a hard drive grinding away in the background can subsist quite disconcerting.

    Now Leopard adds Time Machine, which is set to finish even worse: initially read and then write the entire contents of every file on your disk. It doesn't score much heavier than that when it comes to disk i/o. In practice, the upside is that this doesn't possess to occur immediately upon your first login. If you don't allot a drive to Time Machine, it will finish nothing. And you can always eddy Time Machine off temporarily with the commodious honkin' switch, then eddy it back on when you'll subsist away from the computer for a while. This increased control goes a long pass towards making Leopard a more pleasant upgrade.

    Most bundled applications score a boost of accelerate in Leopard, if only in the seemingly universally less disk-intensive launch process. One Dock bounce, a few hard drive clicks, and most applications are ready to go. I feel fancy I'm probably being cheated by yet more "bounce shaving," but the stopwatch bears it out, if only by fractional seconds in most cases.

    Window resizing takes its habitual baby step towards absolute responsiveness, no doubt aided by the faster text drawing and Cocoa framework optimizations. iCal remains the best (or is it the worst) test candidate for this task. It's noiseless laggy, but improved.

    I possess a feeling the actual performance wins will foster as third party developers (and Apple too, I suppose) possess time to optimize for Leopard, using Quartz GL, compiling for 64-bit Intel, using the unique Objective-C 2.0 runtime, and so on.

    In short, it's more of the selfsame for Mac OS X performance in Leopard: uniform improvement, with a few quick-witted spots, and no actual downsides.


    For the longest time, very early in Leopard's progress process, it wouldn't even boot my (PowerPC) Mac successfully. Each newly downloaded developer version would kernel panic before getting to the Finder. This was discouraging, to yell the least. No previous Mac OS X version behaved this badly for this long during its development. Eventually, the kernel panic was fixed, and I could finally boot. But as the release month of October approached, there were noiseless an alarming number of basic things that did not work reliably. I was getting heinous flashbacks of the bug-ridden 10.4.0 release.

    Then, around September, Apple released a build that miraculously seemed to profile everything work, and work well. Now obviously I possess no thought how closely Apple's developer seeds track with the actual state of the OS code in-house. Maybe Apple was holding back, seeding older versions, while the head revision inside Apple was in a temporarily unstable state awaiting the final commodious push. But whatever the case, this melodramatic come-from-behind developer seed victory is unprecedented in the history of Mac OS X development. That September seed was so good, so stable, that I thought it could subsist the GM.

    Well, the actual GM is just as good, probably even better—though I've yet to yield a separate crash of anything even in the September seed. Of course, I only possess a limited set of hardware and software to test on, so I can't yell definitively that 10.5.0 is going to subsist much for everyone. And yes, the Miracle of September does give me some pause. But I'm cautiously optimistic that 10.5.0 won't subsist a repeat of the 10.4.0 experience. That said, a 10.5.1 release is almost certainly not too far away. I just assume you won't subsist in desperate need of it when it arrives.

    Grab bag

    It's time for the grab bag section with everysingle the shiny screenshots. This will subsist short, I think, because it certainly can't subsist exhaustive. Also, Apple itself has provided quite an extensive rundown of over 300 unique features in Leopard. Thanks, Apple. Still, I'll possess my say.


    Leopard includes an extremely competent virtual desktop implementation in Leopard, appropriately called Spaces. To some, this is a major unique feature on the flat of Time Machine. To me, it's a grab bag item, albeit the headliner. Your mileage may vary.

    In the continued flavor-of-the-version shuffle, the "Dashboard & Exposé" preference pane from Tiger has been renamed to "Exposé & Spaces" in Leopard. Here's the unique Spaces tab.

    Spaces preference paneSpaces preference pane

    You can add rows and columns of spaces, up to a maximum of 16 in total. Applications can subsist assigned to specific spaces or can emerge in everysingle of them, which is a nice touch. For the next revision, a pass to allot different desktop background to different spaces would subsist nice.

    "Activating" spaces means displaying everysingle the spaces on the screen at once. Once in this view, you can drag windows from one space to another. Dragging a window to a screen edge and holding it there will accomplish the selfsame thing. I only wish that activating spaces did not interrupt the current drag operation. Ideally, I'd fancy to click and hold on a window title bar, then activate spaces and continue my drag of that window into a unique space. (I finish something similar on a daily basis when dragging files, using the command-tab application switcher as an circuitous pass to score the drag destination to foster to the front without releasing the item that I'm dragging.)

    Spaces's keyboard and mouse bindings are extremely flexible, allowing most sane combinations of keys, screen corners, and mouse buttons to subsist used as triggers. And above all, Spaces is fast. Space-switching happens instantly, accompanied by minimalist but pleasing sliding animations and a nice HUD (which I've been unable to score a screenshot of, but you can see it at Apple's web site).

    After many years of heroic hacks by third parties, it's nice to finally possess a supported implementation of this feature, and a excellent one at that.

    New icons

    From Spaces to icons? Yes indeed. A bunch of existing applications score unique icons in Leopard.

    New iconsNew icons

    I'm not confident how I feel about System Preferences adopting the iPhone settings icon, but overall, the unique icons learn nice. Most icons possess been updated, in fact, if only to embrace larger sizes. Many possess been entirely redrawn but learn almost exactly fancy their predecessors. It everysingle combines to gives a nice additional sheen to the OS.

    Leopard likewise includes a nice set of icons representing most Macs made in the past few years, presumably meant to more accurately limn networked machines, though for some reason, the Finder thinks my PowerBook is a Cinema Display. Anyway, the icons are extremely nice looking. But at what point finish these things desist being "icons?" At 512x512 pixels, they're more fancy "idealized photos." settle for yourself.

    This is an icon?This is an icon?

    Apple was even nice enough to embrace an icon for (to quote the file name) a "generic PC."



    (I actually assume the worst allotment is the monitor itself, not what's on it.)


    The unique Network preference pane is awesome. Strike that, maybe it's just that the customary one sucked so badly. Anyway, here it is.

    Network preference paneNetwork preference pane

    It includes a entire bunch of features that were either well hidden (often in other preference panes) or only available from the command line: duplicating services, importing and exporting configurations, managing virtual interfaces, the entire nine yards. everysingle of the esoteric stuff is behind that "Advanced" button, but at least it's finally everysingle in one place.

    Network: advanced settingsNetwork: advanced settings Sharing

    The Sharing preference pane is is similarly refined and expanded. The screen I've chosen to exhibit below reveals the long-overdue addition of a GUI for sharing specific folders.

    File sharingFile sharing

    Nearly every service has some little unique feature, usually in the profile of more flexibility about who gets to expend the service.

    Guest account

    The unique guest account feature allows anyone to login without a password.

    Guest accountGuest account

    The habitual set of constraints can subsist applied to the guest account, including the so-called "parental controls" that severely restrict access. A temporary home directory is created when a guest user logs in. The user id is always the selfsame (201), and only one guest can subsist logged in at a time. There's no panic of one guest seeing another guest's left-over files because the entire home directory is deleted upon logout. Thankfully, Apple provides a warning.

    Guest logout warningGuest logout warning

    Though I didn't recede looking for it, I suspect it wouldn't subsist too hard to find the template for the guest account, perhaps in the profile of a disk image or property list, and customize it to create a more comfortable environment for guests. (Say, by putting a giant Unreal Tournament 2007 alias in the center of the desktop. Hello, multiplayer gaming terminal.)

    Disk Utility

    The Disk Utility application can now delete and resize partitions without erasing everysingle data on the disk. This is probably a result of the work Apple's done for Boot Camp, whose installer has long had similar capabilities (but really it was long overdue). The warning dialog Disk utility puts up during destructive operations is reassuringly clear.

    Make me feel safe, Disk UtilityMake me feel safe, Disk Utility Slightly less embarrassing text-to-speech

    The unique "Alex" text-to-speech voice is considerably better than the previous voices, which date back to the classic Mac OS days. More modern text-to-speech technology noiseless sounds a lot better to my ears. Apple really needs to significantly update the core engine, not just add unique voices. No screenshot.

    Back to my Mac

    Leopard includes champion for what is essentially dynamic DNS via the unique Back to My Mac feature of the .Mac service.

    Back to My MacBack to My Mac

    Enabling this feature lets any Mac know the IP address of everysingle your other Macs by having each one report its IP address to the .Mac service. The result is that everysingle your Macs are available as servers in the Finder sidebar, without requiring you to enter a server address. It's handy, but not much capitalize if you travel across several draconian firewalls daily.

    Grammar checker

    The system-wide spelling checker now does grammar too. heinous grammar gets a green underline instead of red.

    System-wide grammar checkerSystem-wide grammar checker

    It's not the most robust grammar checker in the world—for example, it thinks "This are good" is perfectly fine—but fancy the spelling checker, its omnipresence makes up for its limited abilities.

    iCal's Dock icon

    Apple has finally submitted to adding what must subsist quite a hack to score the iCal application icon to exhibit the redress date on its Dock icon, even when the application is not running.

    iCal Dock icon: now with redress Date™ technologyiCal Dock icon: now with redress Date™ technology Terminal

    The Terminal application has grown up, proudly sprouting tabs, window groups, and saved window styles, including an appropriate wacky default set.

    Terminal settingsTerminal settings

    And hey, anyone recall that Apple ilk Services bug that prevented my preferred Terminal font (Monaco 9pt forever!) from displaying correctly? You know, the one that lingered for five years after I first reported it?



    Fixed! Can you believe it? A unique look, tabs, and the ability to render bit-mapped fonts as well as a Mac 128k. My cup runneth over.

    Welcome to tomorrow

    I started this review talking about expectations. As I've learned more about Leopard, it's become increasingly lucid where, exactly, those two-and-a-half years of progress time went. Leopard is absolutely packed with improvements. It seems that not a corner of the OS has gone untouched.

    Perhaps that's not as lucid to the casual user who just sees the surface changes and the major unique features in Leopard. But even in that case, there's more than enough to recommend it. If you're wondering whether you should upgrade to Leopard, the answer, as it's been for every major revision of Mac OS X, is yes.

    I yell this despite my profound hatred for many of the user interface changes. But perhaps I'm not representative of the average Mac user. In everysingle likelihood, my hatred will translate into an occasional-to-persistent mild annoyance for most users. And truthfully, people can score used to just about anything (as the history of Mac OS X has shown).

    I'm most excited about Leopard's internals. They're the star of this release, even if they don't score top billing. There's a excellent judgement we've already seen so many prominent Leopard-only software announcements. This is where developers want to be.

    Leopard's tow on developers will translate into better applications for users... eventually. In the meantime, I'm hard pressed to assume of a separate Mac user I know who wouldn't capitalize from Time Machine's hassle-free backup magic. If you're looking for one judgement to upgrade, this is it. Yeah, backups are boring, which is why you're probably not doing them regularly prerogative now. No more excuses.

    In many ways, Leopard feels fancy a unique beginning. While Tiger consolidated the gains made in 10.0 through 10.3, pinning down APIs and dipping its toe into a few possible future directions for the GUI, Leopard charges bravely forward, choosing one particular unique learn and mandating it everywhere, redesigning everysingle of the most prominent visual elements of the interface, and shedding customary technologies fancy cat fur.

    What's emerged is quite a bizarre beast: blooming on the inside and, well, a bit unlovely on the outside. I hope a few years of user feedback will file down some of the sharper edges, even as my dream of a radical unique learn is postponed until 10.6 or later. It'd likewise subsist nice if Apple would finally profile a conclusion about the successor to the HFS+ file system some time this decade.

    What a long, bizarre trip it's been. Leopard turned out very differently than I imagined it would only a year ago. Despite some commodious disappointments near the discontinue of its progress process—the unique Dock, the menu bar, more Finder floundering—the foundation is stronger than it's ever been.

    Though this is not likely to happen, most of Leopard's biggest problems could subsist fixed in a 10.5.x point release. That's something that certainly could not possess been said about any prior version Mac OS X. With Leopard, Apple has managed to snatch, certainly not defeat, but at least partial ignominy from the jaws of absolute victory.

    The stage is set for Mac OS X 10.6 to triumph beyond the bounds of its ancestors. In the meantime, it's the Mac progress community's chance to shine. Whether it reigns for two and a half years, fancy Tiger, or even longer, I'm looking forward to my time aboard starship Leopard.

    (Caution: Dock slippery when wet.)

    Build a Hackintosh Mac for Under $800 | actual questions and Pass4sure dumps

    Update: This post is no longer maintained. For the most up-to-date Hackintosh build, see their always up-to-date sheperd to pile a Hackintosh.

    Article preview thumbnail The Always Up-to-Date sheperd to pile a Hackintosh (macOS Sierra)

    Building a hackintosh—that is, installing macOS on non-Apple hardware—used to require extremely…

    Read more Read

    If the tall cost tag for Apple hardware has kept you from buying a Mac but you're willing to roll up your sleeves and score adventurous, you can build your own "Hackintosh"-a PC that runs a patched version of OS X Leopard. What?!, you say. Apple's wobble to Intel processors in 2006 meant that running OS X on non-Apple hardware is possible, and a community hacking project called OSx86 launched with that goal in mind. Since then, OSx86 has covered major ground, making it possible for civilians-like you and me!-to Put together their own Hackintosh running Mac OS 10.5. Today, I'll exhibit you how to build your own tall discontinue computer running Leopard from start to finish for under $800.

    Right now the cheapest Mac on sale at the Apple store is a $600 Mac Mini sporting a 1.83GHz proc, 1GB of RAM and an 80GB hard drive. For $200 more, your Hackintosh can vaunt a 2.2GHz proc with 4GB of RAM, a 500GB drive, and a completely upgradeable case for expanding your setup in the future.

    Building a DIY Mac requires some work on your part, so subsist ready to dedicate time to this project. To profile things as facile as possible, I'm going to lay out how I built my Hackintosh from start to finish, from the hardware I used to the final patches I applied to the Leopard install. If you can build a Lego set and transcribe text, you've got everysingle the basic skills required.

    The Hardware

    There's no definitive best ante for a Hackintosh hardware configuration, so you may subsist able to experiment and foster up with a better selection of parts than I did. However, I can guarantee that Leopard will (or at least has) sprint successfully on this hardware setup.

    To profile things easy, I've Put together my entire hardware setup as a wish list on Newegg. (You may notice that the total cost is listed at around $850, but I knocked $110 off the cost tag due to a pair of mail-in rebates-so "Under $800" it remains, however fudgingly.)

    The build consists of a 2.2GHz Intel Core 2 Duo processor, a total of 4GB of RAM (four sticks at 1GB each), an ASUS P5W DH Deluxe motherboard, a GeForce 7300GT (the selfsame basic video card that comes installed in the default Mac Pro configuration), a 500GB hard drive, a DVD burner, and an Antec Sonata case (which I've always liked for its looks and soundless fans). The motherboard is the most significant element, since the patches we'll apply later are tailored specifically for this motherboard. You could probably tweak a lot of the other hardware without many complications, but if you stick with this motherboard and ensue the installation instructions, you shouldn't see any major complications.

    The Build

    Now that you've got everysingle the parts, it's time to start putting your Mac together. We've minute every step of the computer pile process at one point or another in the past here on Lifehacker, so rather than cover that ground again, I'll outline the process with links to their previous instructions. As always, subsist confident to read your hardware manuals before you begin-particularly from the motherboard-to score to know your hardware before you start the installation. Also, always recall to subsist watchful of static electricity and always preserve yourself grounded and your board unpowered until you're finished.

  • Install the motherboard and CPU: You can ensue these instructions almost without variation, but the heatsink and fan installation, in particular, is a finger different. Rather than hooking the heatsink to your motherboard, the included Intel heatsink pops into place. For a more minute description of how this works, consult your motherboard's manual and the manual included with your processor.
  • Install your RAM: The only thing you need to preserve in intellect when you're installing the RAM is that you should install the matched pairs-that is, the pairs that foster in the selfsame package-in fancy colored slots. This isn't strictly necessary, but it's a excellent drill and generally means better performance.
  • Install the video card: These instructions actually detail how to install a PCI card, which is just a more generic pass of looking at your video card. The card we're using is a PCI Express card and should subsist installed in the top (orange) PCI slot.
  • Install the hard drive and DVD drive: Your hard drive is an SATA drive, which is not the ilk of drive installed in the instructions (though they finish address SATA drives). Just connect one of the power supply's SATA power cables to the drive and then connect the drive to the red SATA connector on your motherboard (it's labeled on the board as SATA1). ensue the selfsame basic instructions to install your DVD drive but plug the drive into one of the other SATA ports (I used the SATA4 port).
  • When you've finished putting everything together, your open case should learn fancy the nearly completed image below. In that picture, I've yet to install the hard drive and DVD drive and I noiseless need to connect the case power and other connectors to the motherboard. (You may install other features of the motherboard if you prefer, fancy the FireWire connector for the back of the case).

    To profile confident everything's working properly, nearby it up, plug it into a monitor and keyboard and power it up. If the computer boots into the BIOS (by pressing Delete when prompted), you're ready to wobble on. If the computer won't boot, you may possess to open the case back up and double-check your installation. Among other things, subsist confident that your RAM is properly seated.

    Article preview thumbnail Laptop Troubleshooting Tip: Re-seat your RAM

    Only a few hours after I posted about Mac hardware failure the other day, my Powerbook promptly…

    Read more Read

    I should note that at this point of my installation, I ran into a bum power supply unit (PSU) in my case. Unfortunately that meant that I didn't know whether the PSU was bunk or my motherboard was fried, and since I don't own a voltage meter it took an extra trip to Fry's and some troubleshooting to score to the bottom of it. The point is that when you're pile a PC yourself, you can and should subsist prepared to sprint into snags, so if you're not ready to troubleshoot if a problem arises, you may want to assume twice before trying this. That said, I've built several PCs in the past and this was my only major snag in the course of a build, so it's likewise very likely that your build could recede off without a hitch.

    Either way, as soon as you're able to boot into the BIOS, you're ready to score started with the pre-installation.


    There are two things you need to tackle to prepare your computer for installation. First, you'll need to tweak your BIOS settings to properly work with the Leopard install. Second, you need to patch the Leopard DVD to install on your newly built Hackintosh computer.

    Tweak your BIOS: The first thing I did once my build was finished was update my BIOS, since the default BIOS wasn't properly recognizing my processor. Luckily doing so is pretty simple. Just head over to the ASUS download site, narrow down, and then download the latest BIOS for your motherboard. Once downloaded, just stick the file on a USB glitter drive. Then boot up your build and enter the BIOS setup. fancy I said above, power on your computer and hit Delete when prompted to boot into the BIOS.

    Once you're there, arrow to the Tools tab of the BIOS, select EZ Flash2, and then hit Enter. Now choose your glitter drive by tabbing to the appropriate drive, find the BIOS file you downloaded, and install it. When the BIOS has updated, your computer should automatically restart.

    Now that you've updated your BIOS, you're ready to score into some nitty gritty preparation. If you plugged in your drives fancy I suggested during your build, you should see your hard drive and DVD drive listed in the BIOS as Third IDE Master and Fourth IDE Slave. (Don't worry about the fact that your hard drive isn't listed as the Primary IDE Master.) Arrow down to IDE Configuration and hit Enter.

    In the IDE config, you want to set "Configure SATA As" to AHCI. Next hit escape once to recede back to the Main screen. Now hit the prerogative arrow key to wobble to the Advanced tab. In the Advanced section recede to "Onboard Devices Configuration" and set "JMicron SATA / PATA Controller" to Disabled.

    Now you need to arrow over to the Boot tab to configure the boot priority (which tells your computer what order you want to boot off devices in your computer). recede to "Boot Device Priority" and set your DVD drive as priority one and your hard drive as priority two.

    Done? Then you're ready to wobble onto patching your Leopard DVD.

    Patch Leopard for your Hackintosh: There are a pair of different ways one could recede about creating a patched Leopard DVD. The easiest is probably to download an already patched version using BitTorrent (I can attest to having seen the patched version floating around before Demonoid went under, but it's probably available elsewhere as well). The second method requires patching a Leopard DVD yourself, which isn't really as hard as it sounds.

    If you settle to recede the first route and you find a pre-patched version off BitTorrent, you can skip to the next section. Otherwise, let's score down to work. To patch the Leopard install disc, you'll need a Mac and a pre-patched image of the Leopard installer on your desktop. You can score this in two ways: Either by downloading the image-again with BitTorrent-or by buying and then ripping a Leopard DVD to your hard drive. Either pass you choose, when you're finished you should set the ripped installer on your desktop and profile confident that it's named osx-leopard105.dmg.

    Now it's time to score patching. To finish so, you need to grab the patch files (created by the resourceful OSx86 forum member BrazilMac, who bundled the patch files and whose instructions I followed for the installation), which you can download from one of many sources here under the "FILES FOR THIS GUIDE" section at the top of the page. After you've downloaded the zipped patch files, unzip the archive and drag everysingle of the contents of the archive to your desktop (it should contain two files and three folders in total).

    UPDATE: We've removed direct links to the forum post containing the patch files on the OSx86 Scene Forum.

    Now open the shell script in your favorite text editor. At the top of the file, replace XXX with your username on your Mac (so that it reflects the path to your current desktop). For example, mine would learn like:


    While we're at it, let's edit the file as well. This time, edit the fourth and fifth lines at the top of the file to learn fancy this:

    PATCH="/Volumes/LeopardPatch/leopatch/" # path to the patched extensionsLEO="/Volumes/Leopard" # path to Leopard installation

    Save and nearby both files.

    Finally, it's time to patch the DVD. Open up Terminal, ilk sudo -s, then enter your administrative password (your login password). Then ilk cd Desktop and hit Enter. Now you're ready to apply the patch. preserve in intellect that you'll need plenty of space on your hard drive to perform the patch. I had around 20GB of free space when I did it, though I'm confident you could score away with less. To execute the patch, type:


    and hit Enter. The patch will now execute, which means you've got some time on your hands. You've been working your ass off up until this point, though, so kick back and relax for a bit. I didn't possess a clock on it, but I'm pretty confident the patch took at least an hour on my MacBook Pro.

    If you possess distress with the patch and you've got less free space, try freeing up some hard drive space and trying again. When the patch has successfully completed, you should see a unique file on your desktop: Leo_Patched_DVD.iso weighing in somewhere around 4,698,669,056 bytes. Now we've got to char this image to a DVD.

    Luckily the patch removes lots of unnecessary files so we've shrunk the almost 7GB install DVD to 4.38GB, just enough to fortunate on a single-layer DVD. To char the image, insert a blank DVD, open up Disk Utility, select the Leopard_Patched_DVD.iso file in the sidebar, and then click the char button. Once it's finished, you're finally ready to proceed to the installation.

    But just one more thing before you do. Copy the patch files that they just unzipped from your desktop to a USB thumb drive and denomination the drive LeopardPatch. We'll need these files for the post-installation patch that we'll apply later.


    If you've followed everysingle of the steps up to this point, you should now subsist ready to fire up the patched Leopard install DVD. So power on your Hackintosh, insert the DVD, and let the boot process inaugurate (you did recall to set the DVD drive as the first boot device, right?). You'll subsist prompted to press any key to start the installation or hit F8 for options. Hit F8.

    You'll now see the boot: prompt. Enter -v -x and press Enter. (Don't interrogate me why, but this is the only pass the install DVD would boot for me. Not using these options caused the boot to hang indefinitely every time.) You should now see lots of text scrolling over your monitor. You may even see some daunting errors. Don't subsist alarmed; just let it continue. After several minutes, the graphical Leopard installer should subsist staring you in the face.

    Format the install drive: I know that you're raring to install now that you're finally here, but there's one thing they need to finish first: Format their hard drive so that it's prepared to receive the Leopard installation. So recede to Utilities in the menu bar and select Disk Utility (if you don't possess a working mouse yet, you can noiseless access the menu bar from the keyboard). Once Disk Utility fires up, it's time to format the drive. Here's how:

    Article preview thumbnail Access the Dock and Menu Bar from Your Keyboard

    Mac users: Access your menu bar and launch dock items from the solace of your keyboard with the…

    Read more Read
  • Select your hard drive in the left sidebar.
  • Click on the tab labeled Partition.
  • Select a 1 partition Volume Scheme, denomination the volume Leopard, and choose Mac OS Extended (Journaled) as the format.
  • Last, click the Options button and choose Master Boot Record as the partition scheme.
  • Now that your drive is ready, so are you.

    Install Leopard: This really is the easiest part-just ensue the on-screen instructions and choose your newly created Leopard partition as the install destination. Then, before you profile that final click on the Install button, click Customize and de-select Additional Fonts, Language Translations, and X11. These components were removed so they could fortunate everything on the patched DVD, so they won't subsist installing them now.

    Now you're ready. Click install and grab a quick drink. In around 10 minutes, Leopard should possess installed, leaving you with just one more step before you're running with the Leopard.


    After the installation completes, your computer will automatically restart. Unfortunately you're not ready to boot into Leopard just yet-you've got one thing left to do. So insert the thumb drive you copied the patches to and, just fancy ultimate time, hit F8 when prompted by the DVD. Again, enter -v -x at the boot prompt and hit Enter. When the install disc finally loads, recede to Utilities in the menu bar and select Terminal. It's time to apply the post-install patch.

    When terminal loads, ilk cd /Volumes/LeopardPatch at the prompt and hit Enter to navigate to the patch directory. Now, just fancy when you patched the install disc, type:


    ...and hit Enter. The script will wobble and copy files about (answer yes when prompted), and when it's finished, you'll subsist prompted to restart your computer. When your computer reboots this time, you're ready. It's time to boot into Leopard.

    OSx86 on Your Hackintosh

    Let your computer reboot, but subsist confident to leave the install DVD in the drive. When the DVD prompts this time, just let the countdown time out. When it does, your installation of Leopard will automatically boot up. You've done it!

    From this point forward, you're running Leopard on your PC just as though you were running Leopard on a regular Mac. You'll subsist jubilantly welcomed in a handful of languages as if Steve Jobs himself is shaking your hand for a job well done. everysingle of your hardware should work exactly as you'd expect. Your sound, networking, and video will everysingle work off the bat. (I haven't tested the motherboard's built-in wireless yet, but it reportedly works.) Your iPods will sync flawlessly, and CDs and DVDs read and char just as you'd expect.

    On the software front, Mail, Address Book, iTunes, and everything else I've tried so far work flawlessly. Firefox is browsing, Quicksilver is doing its thing, Spaces are rocking, Stacks are stacking, Cover flood is flowing, and Quick learn is previewing. I haven't tried Time Machine yet, but the patch they used reportedly works with Time Machine as well.

    UPDATE: After you complete your install the first recede round, here's how to upgrade to OS X 10.5.1 (the first update to Leopard) in just a few simple steps.

    Article preview thumbnail Upgrade Your Hackintosh to OS X 10.5.1

    Click to viewA pair of weeks ago, I minute how I built a Hackintosh Mac on the cheap from start …

    Read more Read But Really, How Does It Work?

    I'm noiseless stretching my legs in this unique build, and I'm planning on bringing some benchmarks to the table soon so you possess a better thought how this machine matches up to its Mac counterparts, but so far it's running fancy a champ. UPDATE: I benchmarked my Hackintosh against a Mac Pro and MacBook Pro and it stood up very well. Check out the benchmarks here. The only problem with the install at the minute is that it won't boot without the Leopard DVD in the DVD drive at boot-meaning that every time you reboot you'll need to profile confident that the Leopard DVD is sitting in the DVD drive. It's not a dealbreaker for me by any means, but it's an annoyance. I've organize one post suggesting a workaround at the OSx86 forums (near the bottom of the first post in the thread), but I haven't tried it yet. If and when I do, I'll subsist confident to post an update.

    Article preview thumbnail Hackintosh vs. Mac Pro vs. MacBook Pro Benchmarks

    Click to viewOn Tuesday I minute how I built a Hackintosh Mac from start to finish on the cheap,…

    Read more Read

    And that's that. It's a chore to set up, to subsist sure, but it's likewise the most powerful Mac per dollar I've ever used. If you've got any suffer pile a Hackintosh of your own or you've got any questions, let's hear them in the comments.

    Adam Pash is a senior editor for Lifehacker who loves a excellent hack and cherishes his Macintosh, so pile a Hackintosh was a flawless fit. His special feature Hack assail appears every Tuesday on Lifehacker. Subscribe to the Hack assail RSS feed to score unique installments in your newsreader.

    Direct Download of over 5500 Certification Exams

    3COM [8 Certification Exam(s) ]
    AccessData [1 Certification Exam(s) ]
    ACFE [1 Certification Exam(s) ]
    ACI [3 Certification Exam(s) ]
    Acme-Packet [1 Certification Exam(s) ]
    ACSM [4 Certification Exam(s) ]
    ACT [1 Certification Exam(s) ]
    Admission-Tests [13 Certification Exam(s) ]
    ADOBE [93 Certification Exam(s) ]
    AFP [1 Certification Exam(s) ]
    AICPA [2 Certification Exam(s) ]
    AIIM [1 Certification Exam(s) ]
    Alcatel-Lucent [13 Certification Exam(s) ]
    Alfresco [1 Certification Exam(s) ]
    Altiris [3 Certification Exam(s) ]
    Amazon [2 Certification Exam(s) ]
    American-College [2 Certification Exam(s) ]
    Android [4 Certification Exam(s) ]
    APA [1 Certification Exam(s) ]
    APC [2 Certification Exam(s) ]
    APICS [2 Certification Exam(s) ]
    Apple [69 Certification Exam(s) ]
    AppSense [1 Certification Exam(s) ]
    APTUSC [1 Certification Exam(s) ]
    Arizona-Education [1 Certification Exam(s) ]
    ARM [1 Certification Exam(s) ]
    Aruba [6 Certification Exam(s) ]
    ASIS [2 Certification Exam(s) ]
    ASQ [3 Certification Exam(s) ]
    ASTQB [8 Certification Exam(s) ]
    Autodesk [2 Certification Exam(s) ]
    Avaya [96 Certification Exam(s) ]
    AXELOS [1 Certification Exam(s) ]
    Axis [1 Certification Exam(s) ]
    Banking [1 Certification Exam(s) ]
    BEA [5 Certification Exam(s) ]
    BICSI [2 Certification Exam(s) ]
    BlackBerry [17 Certification Exam(s) ]
    BlueCoat [2 Certification Exam(s) ]
    Brocade [4 Certification Exam(s) ]
    Business-Objects [11 Certification Exam(s) ]
    Business-Tests [4 Certification Exam(s) ]
    CA-Technologies [21 Certification Exam(s) ]
    Certification-Board [10 Certification Exam(s) ]
    Certiport [3 Certification Exam(s) ]
    CheckPoint [41 Certification Exam(s) ]
    CIDQ [1 Certification Exam(s) ]
    CIPS [4 Certification Exam(s) ]
    Cisco [318 Certification Exam(s) ]
    Citrix [48 Certification Exam(s) ]
    CIW [18 Certification Exam(s) ]
    Cloudera [10 Certification Exam(s) ]
    Cognos [19 Certification Exam(s) ]
    College-Board [2 Certification Exam(s) ]
    CompTIA [76 Certification Exam(s) ]
    ComputerAssociates [6 Certification Exam(s) ]
    Consultant [2 Certification Exam(s) ]
    Counselor [4 Certification Exam(s) ]
    CPP-Institue [2 Certification Exam(s) ]
    CPP-Institute [1 Certification Exam(s) ]
    CSP [1 Certification Exam(s) ]
    CWNA [1 Certification Exam(s) ]
    CWNP [13 Certification Exam(s) ]
    Dassault [2 Certification Exam(s) ]
    DELL [9 Certification Exam(s) ]
    DMI [1 Certification Exam(s) ]
    DRI [1 Certification Exam(s) ]
    ECCouncil [21 Certification Exam(s) ]
    ECDL [1 Certification Exam(s) ]
    EMC [129 Certification Exam(s) ]
    Enterasys [13 Certification Exam(s) ]
    Ericsson [5 Certification Exam(s) ]
    ESPA [1 Certification Exam(s) ]
    Esri [2 Certification Exam(s) ]
    ExamExpress [15 Certification Exam(s) ]
    Exin [40 Certification Exam(s) ]
    ExtremeNetworks [3 Certification Exam(s) ]
    F5-Networks [20 Certification Exam(s) ]
    FCTC [2 Certification Exam(s) ]
    Filemaker [9 Certification Exam(s) ]
    Financial [36 Certification Exam(s) ]
    Food [4 Certification Exam(s) ]
    Fortinet [13 Certification Exam(s) ]
    Foundry [6 Certification Exam(s) ]
    FSMTB [1 Certification Exam(s) ]
    Fujitsu [2 Certification Exam(s) ]
    GAQM [9 Certification Exam(s) ]
    Genesys [4 Certification Exam(s) ]
    GIAC [15 Certification Exam(s) ]
    Google [4 Certification Exam(s) ]
    GuidanceSoftware [2 Certification Exam(s) ]
    H3C [1 Certification Exam(s) ]
    HDI [9 Certification Exam(s) ]
    Healthcare [3 Certification Exam(s) ]
    HIPAA [2 Certification Exam(s) ]
    Hitachi [30 Certification Exam(s) ]
    Hortonworks [4 Certification Exam(s) ]
    Hospitality [2 Certification Exam(s) ]
    HP [750 Certification Exam(s) ]
    HR [4 Certification Exam(s) ]
    HRCI [1 Certification Exam(s) ]
    Huawei [21 Certification Exam(s) ]
    Hyperion [10 Certification Exam(s) ]
    IAAP [1 Certification Exam(s) ]
    IAHCSMM [1 Certification Exam(s) ]
    IBM [1532 Certification Exam(s) ]
    IBQH [1 Certification Exam(s) ]
    ICAI [1 Certification Exam(s) ]
    ICDL [6 Certification Exam(s) ]
    IEEE [1 Certification Exam(s) ]
    IELTS [1 Certification Exam(s) ]
    IFPUG [1 Certification Exam(s) ]
    IIA [3 Certification Exam(s) ]
    IIBA [2 Certification Exam(s) ]
    IISFA [1 Certification Exam(s) ]
    Intel [2 Certification Exam(s) ]
    IQN [1 Certification Exam(s) ]
    IRS [1 Certification Exam(s) ]
    ISA [1 Certification Exam(s) ]
    ISACA [4 Certification Exam(s) ]
    ISC2 [6 Certification Exam(s) ]
    ISEB [24 Certification Exam(s) ]
    Isilon [4 Certification Exam(s) ]
    ISM [6 Certification Exam(s) ]
    iSQI [7 Certification Exam(s) ]
    ITEC [1 Certification Exam(s) ]
    Juniper [64 Certification Exam(s) ]
    LEED [1 Certification Exam(s) ]
    Legato [5 Certification Exam(s) ]
    Liferay [1 Certification Exam(s) ]
    Logical-Operations [1 Certification Exam(s) ]
    Lotus [66 Certification Exam(s) ]
    LPI [24 Certification Exam(s) ]
    LSI [3 Certification Exam(s) ]
    Magento [3 Certification Exam(s) ]
    Maintenance [2 Certification Exam(s) ]
    McAfee [8 Certification Exam(s) ]
    McData [3 Certification Exam(s) ]
    Medical [69 Certification Exam(s) ]
    Microsoft [374 Certification Exam(s) ]
    Mile2 [3 Certification Exam(s) ]
    Military [1 Certification Exam(s) ]
    Misc [1 Certification Exam(s) ]
    Motorola [7 Certification Exam(s) ]
    mySQL [4 Certification Exam(s) ]
    NBSTSA [1 Certification Exam(s) ]
    NCEES [2 Certification Exam(s) ]
    NCIDQ [1 Certification Exam(s) ]
    NCLEX [2 Certification Exam(s) ]
    Network-General [12 Certification Exam(s) ]
    NetworkAppliance [39 Certification Exam(s) ]
    NI [1 Certification Exam(s) ]
    NIELIT [1 Certification Exam(s) ]
    Nokia [6 Certification Exam(s) ]
    Nortel [130 Certification Exam(s) ]
    Novell [37 Certification Exam(s) ]
    OMG [10 Certification Exam(s) ]
    Oracle [279 Certification Exam(s) ]
    P&C [2 Certification Exam(s) ]
    Palo-Alto [4 Certification Exam(s) ]
    PARCC [1 Certification Exam(s) ]
    PayPal [1 Certification Exam(s) ]
    Pegasystems [12 Certification Exam(s) ]
    PEOPLECERT [4 Certification Exam(s) ]
    PMI [15 Certification Exam(s) ]
    Polycom [2 Certification Exam(s) ]
    PostgreSQL-CE [1 Certification Exam(s) ]
    Prince2 [6 Certification Exam(s) ]
    PRMIA [1 Certification Exam(s) ]
    PsychCorp [1 Certification Exam(s) ]
    PTCB [2 Certification Exam(s) ]
    QAI [1 Certification Exam(s) ]
    QlikView [1 Certification Exam(s) ]
    Quality-Assurance [7 Certification Exam(s) ]
    RACC [1 Certification Exam(s) ]
    Real-Estate [1 Certification Exam(s) ]
    RedHat [8 Certification Exam(s) ]
    RES [5 Certification Exam(s) ]
    Riverbed [8 Certification Exam(s) ]
    RSA [15 Certification Exam(s) ]
    Sair [8 Certification Exam(s) ]
    Salesforce [5 Certification Exam(s) ]
    SANS [1 Certification Exam(s) ]
    SAP [98 Certification Exam(s) ]
    SASInstitute [15 Certification Exam(s) ]
    SAT [1 Certification Exam(s) ]
    SCO [10 Certification Exam(s) ]
    SCP [6 Certification Exam(s) ]
    SDI [3 Certification Exam(s) ]
    See-Beyond [1 Certification Exam(s) ]
    Siemens [1 Certification Exam(s) ]
    Snia [7 Certification Exam(s) ]
    SOA [15 Certification Exam(s) ]
    Social-Work-Board [4 Certification Exam(s) ]
    SpringSource [1 Certification Exam(s) ]
    SUN [63 Certification Exam(s) ]
    SUSE [1 Certification Exam(s) ]
    Sybase [17 Certification Exam(s) ]
    Symantec [134 Certification Exam(s) ]
    Teacher-Certification [4 Certification Exam(s) ]
    The-Open-Group [8 Certification Exam(s) ]
    TIA [3 Certification Exam(s) ]
    Tibco [18 Certification Exam(s) ]
    Trainers [3 Certification Exam(s) ]
    Trend [1 Certification Exam(s) ]
    TruSecure [1 Certification Exam(s) ]
    USMLE [1 Certification Exam(s) ]
    VCE [6 Certification Exam(s) ]
    Veeam [2 Certification Exam(s) ]
    Veritas [33 Certification Exam(s) ]
    Vmware [58 Certification Exam(s) ]
    Wonderlic [2 Certification Exam(s) ]
    Worldatwork [2 Certification Exam(s) ]
    XML-Master [3 Certification Exam(s) ]
    Zend [6 Certification Exam(s) ]

    References :

    Dropmark :
    Wordpress :
    Issu :
    Dropmark-Text :
    Blogspot :
    RSS Feed : : :

    Back to Main Page
    About Killexams exam dumps | |