Pass4sure Real Questions and study guide and dumps | braindumps | ROMULUS

Pass4sure 9L0-061 prep pack is designed to pass 9L0-061 certification exam There is no match of on internet - braindumps - ROMULUS

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

9L0-061 MAC OS X 10.5 Troubleshooting

Study pilot Prepared by Apple Dumps Experts

Exam Questions Updated On : 9L0-061 Dumps and true Questions

100% true 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
: 71 true Questions

need updated reason dumps for 9L0-061 exam? here it's miles.
I necessity to confess, deciding on was the subsequent sapient election I took after deciding on the 9L0-061 exam. The patterns and questions are so well unfold which permits man or woman augment their bar by the point they achieve the remaining simulation exam. treasure the efforts and honest thanks for assisting pass the exam. back up the first-class artwork. Thank you killexams.

Pleased to hear that Latest dumps of 9L0-061 exam are available here.
I had bought your on line mock test of 9L0-061 exam and feature passed it inside the first strive. I am very lots thankful to you in your guide. Its a satisfaction to inform that i occupy passed the 9L0-061 exam with seventy nine% marks..Thank you for the all thing. You men are clearly wondeful. please preserve up the obliging craft labor and preserve updating the modern-day questions.

Got maximum 9L0-061 Quiz in true test that I prepared.
My brother saden me telling me that I wasnt going to evanesce through the 9L0-061 exam. I word after I notice out of doors the window, such a lot of specific humans want to exist seen and heard from and that they simply want the eye folks but I can inform you that they college students can acquire this attention while they pass their 9L0-061 check and I can inform you how I cleared my 9L0-061 check it changed into only once I got my examine questions from which gave me the want in my eyes together forever.

How an entire lot 9L0-061 examination and prep manual price?
The trendy of is tall enough to cheer the applicants in 9L0-061 exam schooling. outright the goods that I had used for 9L0-061 exam instruction occupy been of the top class best so that they assisted me to pellucid the 9L0-061 exam shortly.

It became extremely obliging to occupy true exam questions today's 9L0-061 examination.
I am penning this due to the fact I want yo snort thanks to you. I even occupy effectively cleared 9L0-061 exam with 96%. The test bank chain made by means of your team is extraordinary. It now not best offers a actual flavor of an online exam but every offers each question with detailed explananation in a effortless language which is effortless to understand. I am extra than satisfied that I made the right preference by using shopping for your test series.

No source is more effectual than this 9L0-061 source.
I passed each the 9L0-061 first try itself with eighty% and 73% resp. thanks plenty for your help. The questions and answers certainly helped. i am grateful to for helping plenty with so many papers with answers to labor on if now not understood. They occupy been extremely useful. Thankyou.

exceptional to hear that true test questions of 9L0-061 exam are supplied here.
I wanted to start my own IT industry but before it, 9L0-061 course was necessary for my business, so I resolve to acquire this certificate. When I took the admission for 9L0-061 certification and took lectures I didnt understand anything. After some query I reached at website and learnt from their and when my 9L0-061 exam came I did well as compare to those students who took lectures and prepared from 9L0-061 study pilot from this website. I recommend this website to all. I moreover thank to the employees of this website.

Take gain, exercise Questions/solutions to manufacture sure your fulfillment.
in case you want to exchange your destiny and ensure that happiness is your destiny, you want to labor hard. opemarkstough on my own isnt adequate to acquire to future, you want a few route in order to lead you toward the path. It wasdestiny that i organize this outright through my exams because it lead me towards my destiny. My destiny changed into getting accurate grades and this and its teachers made it feasible my coaching they so well that I couldnt in outright likelihood fail by course of giving me the material for my 9L0-061 exam.

Where will I find questions and Answers to study 9L0-061 exam?
Passing the 9L0-061 exam was just impossible for me as I couldnt manage my preparation time well. Left with only 10 days to go, I referred the Exam by and it made my life easy. Topics were presented nicely and was dealt well in the test. I scored a fabulous 959. Thanks killexams. I was hopeless but given me hope and helped for passing When i was hopeless that i cant become an IT certified; my friend told me about you; I tried your online Training Tools for my 9L0-061 exam and was able to acquire a 91 result in Exam. I own thanks to killexams.

Where can I find 9L0-061 exam study help? is straightforward and sturdy and you could pass the exam if you evanesce through their question bank. No words to express as i occupy passed the 9L0-061 exam in first attempt. A few different question banks moreover are availble in the marketplace, but I flavor is noteworthy amongst them. I am very assured and am going to exercise it for my unique exams additionally. Thanks plenty ..Killexams.

Apple MAC OS X 10.5

how to Revisit every version of Mac OS X from your Browser | true Questions and Pass4sure dumps

The Aqua GUI in Apple’s working methods has passed through a striking evolution when you account that March of 2000, when it discovered its manner into OS X 10.0, and you might exist stunned at simply how diverse every thing appears now. thanks to the newly launched Aqua Screenshot Library, that you could revisit each version of OS X (and macOS) throughout the years and examine the gradual evolution of Apple’s working system—all out of your browser.

The massive gallery is the latest labor with the aid of 512 Pixels, an internet library that attempts to maintain tabs on outright issues Apple (together with the Mac’s many wallpapers). The Aqua Screenshot Library, as creator Stephen Hackett notes, gives a finished seem at the history of Apple’s working methods, which covers its soar to from bulkier CRTs to compact, LED-backlit displays; Apple’s quite a few font changes over the years; and Apple’s tide from disc-primarily based operating techniques to (free) digital downloads.

Let’s select a glance at some of those essential Mac milestones.

Mac OS X 10.0 (“Cheetah”)

March 24, 2001, marked the first reputable liberate of the Mac OS X operating system, following a public beta the 12 months before. Hackett notes that its 128MB reminiscence requirement was “greater than most Mac clients had of their methods at the time.” This result in many complaints about the OS’s sluggish efficiency and tall useful resource demand. The Cheetah interface retained the pin-striped menu and window design from the beta, however begun the feline-based mostly naming style which might remaining as much as edition 10.eight, “Mountain Lion.”

Mac OS X Leopard (10.5)

The remaining months of 2007 brought some huge alterations to OS X. The liberate of Leopard noticed Aqua tackle a lots greater streamlined seem to be, with outright windows now defaulting to a single, elementary grey design, as smartly because the debut of a redesigned Finder device. earlier than this, distinctive apps—and different versions of OS X—had assorted UI designs (for more suitable or worse). With Leopard’s unencumber, OS X started to seem extra uniform. most importantly, it turned into the first edition to comprehend these rad, space-based backgrounds.

OS X Mountain Lion (10.eight)

Mountain Lion became the first version of OS X to arrive after Steve Jobs’ dying, and it focused on aligning Mac computers with the late CEO’s other principal 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 enterprise doubled down with Mountain Lion. equipment and purposes occupy been renamed after iOS features, and Apple added some wee visual and enter adjustments to bridge the two working methods even nearer collectively—in style, at least.

OS X Mavericks (10.9)

Mavericks become a huge industry pivot for Apple, as it became the primary version of the OS the enterprise launched for free of charge, offered to clients as an upgrade via the App rescue in October 2013. Apple hasn’t long gone returned to paid operating programs in view that—happily. Mavericks become moreover the primary edition of OS X to exercise non-pussycat nomenclature. It additionally ditched the galactic inheritance theme for California landscapes, which they will outright coincide became an immense blunder. appropriate?

macOS Sierra (10.12)

edition 10.12 of Apple’s working equipment for the Mac is most is notable for its massive rebranding. Apple dropped the “OS X” denomination absolutely during this unencumber, in its district calling its operating gadget “macOS” to align it the business’s operating programs on different structures: iOS, watchOS, and tvOS. 

shopping the Aqua Screenshot Library is a fun course to remark just how a ways macOS has come, specifically to remark how Apple’s design priorities exchange between the principal releases. despite the fact, the Aqua Screenshot gallery is only one of 512 Pixels’ many initiatives to select a notice at. exist sure to poke across the other Apple-themed collections Hackett has assembled over the years, too, together with the Amazing 512 Pixels YouTube channel.

Apple Updates Mac OS X 10.5 Leopard with Flashback removal device, twinkle player Disabler | true Questions and Pass4sure dumps

while Apple moved fairly rapidly to release application tools for OS X Lion and Snow Leopard to remove the Flashback malware from infected programs and patch the Java vulnerability it exploited, clients of past operating device models occupy remained susceptible.

Apple addressed that concern today for users of Mac OS X 10.5 Leopard, releasing Leopard Flashback elimination security supplant to cleanly infected techniques and disable the Java plug-in in Safari.

This supplant eliminates essentially the most measure editions of the Flashback malware. If the Flashback malware is discovered, a dialog will notify you that malware changed into removed. In some situations, the supplant could necessity to restart your desktop with the purpose to completely remove the Flashback malware.

To enhance the safety of your Mac, this supplant moreover disables the Java plug-in in Safari. For directions on a course to re-allow it, please visit:

The update weighs in at 1.23 MB and requires Mac OS X 10.5.8.

On a divide note, Apple moreover launched Leopard protection supplant 2012-003, which automatically disables out-of-date models of Adobe twinkle player for safety explanations. The supplant weighs in at 1.eleven MB and requires Mac OS X 10.5.eight.

This update disables versions of Adobe twinkle participant that don't consist of the latest security updates and provides the election to acquire the present edition from Adobe's web site.

Apple blanketed identical performance for Lion and Snow Leopard programs in Safari 5.1.7 launched remaining week alongside OS X 10.7.4.

cutting-edge utility releases for Mac OS X Leopard designate the first colossal software updates for the working gadget given that the debut of OS X Lion in mid-2011.

Downloaded each: FlashbackRemovalUpdate.dmg, SecUpd2012-003.dmg

Neither will flee on energy pc G5 system operating Leopard 10.5.8.

feels like we're left out again. :\

so you cannot occupy Flashback however want to eradicate it?fine to remark that Apple nevertheless not has fully forgotten about clients who are nevertheless on Leopard / legacy systems with PPC.

What about outright Mac OS X 10.four Tiger users? :( Left in the bloodless?!

Downloaded each: FlashbackRemovalUpdate.dmg, SecUpd2012-003.dmg

Neither will flee on energy notebook G5 gadget running Leopard 10.5.eight.

seems like we're overlooked once again. :\

Tiger and PPC Leopard never had Java SE 6, which is the district the protection vulnerability has been suggested to be. Does Flashback even labor on Java 1.four and/or Java SE 5? Tiger and PPC Leopard may additionally even occupy the potential of security through obsolescence.

Is there a course to disable twinkle in Lion or Do I necessity to uninstall it?

The most suitable option is to uninstall the Flash, and deploy Google Chrome - which has a constructed-in Flash,separated from Safari and other browsers. and then, if you happen to necessity Flash, just launch Google Chrome.

You can't acquire an up-to-date edition of twinkle participant for a PPC Mac and without twinkle content access you might moreover as smartly toss it in the trash. i Do know PPC systems can hardly ever render twinkle content material however soundless ....

yeah no doubt, i just burned my ipad1 as a result of its soo historical and if anyone on here needs it they can occupy my already obsolete ipad2. neither can Do twinkle so surely lack outright necessary techz.

Is there a means to disable twinkle in Lion or Do I must uninstall it?

click on to flash.replace now not arrogate with PPC...

Downloaded both: FlashbackRemovalUpdate.dmg, SecUpd2012-003.dmg

Neither will flee on vigour workstation G5 device operating Leopard 10.5.8.

appears like we're left out once again. :\

Disabling out of date twinkle is an outstanding conception.

Most users will under no circumstances supplant it, but when they can't view YouTube with out updating, they will supplant it.

Does any person recognize if YouTube works with out twinkle on a Mac? I realize it works for iOS. If it really works on a Mac, i'm tossing Flash.

sure. it's now not intended to exist insulting however i'm stunned that PPC clients did not know this.

Safari 5 user? exercise this. Been the exercise of it for years.

Plus if you occupy a Youtube account, register on the HTML5 beta. //

in case you wish to select it additional, Safari Menu > Safari extensions Gallery > enjoyment fraction > video clips for YouTube™ (decide to eradicate comments, and watch movies with dim lights function) i keeping for it.

there is not a video I've now not promote throughout I cannot watch. except the ones which are so blocky as a result of how ancient they had been made earlier than outright the HD media. simply terrible bitrate.

That appears like a lot of fun. quit your browser each time you should exercise twinkle and load up Chrome (If I favored Chrome i would already exist the exercise of it). :rolleyes:

i admire how Apple is disabling functionality of their OS (i.e. turning off the Java plug-in; too risky if you like playing playing cards on Yahoo games or whatever thing) after which forcing YOU to exit of your technique to lookup how to flip it back on. How about a freaking switch that asks you even if you necessity it disabled once they flee that update as opposed to just screwing the user over via messing together with his equipment devoid of his permission. Is Apple even conscious that THERE isn't any newer twinkle FOR 10.5!!!! so they destroy outright twinkle pilot if you flee that update. reside the hell away from it! i'm genesis to suppose Apple is the freaking malware. :mad:

Google Chrome's built-in twinkle is the latest version.So, it is feasible to manufacture exercise of the newest twinkle on 10.5 by using Google Chrome.

Flash is fitting out of date and needless, when you account that pretty much outright Youtube videos are already converted to HTML5.

Apple releases Mac OS X 10.5 Leopard security Configuration ebook | true Questions and Pass4sure dumps

Apple has released “Mac OS X security Configuration For edition 10.5 Leopard” a 240-web page e bespeak which gives guidelines and proposals for securing Mac OS X edition 10.5 or later, and for holding a at ease desktop.

Mac OS X v10.5 presents here primary safety enhancements:• more desirable bug insurance plan. Mac OS X v10.5 marks info that are downloaded to back steer pellucid of users from running malicious downloaded applications.• better runtime protection. New applied sciences reminiscent of library randomization and sandboxing assist avoid attacks that hijack or alter the utility for your equipment.• less difficult community security. After you’ve activated the brand new Mac OS X v10.5 software firewall, it configures itself so that you acquire the advantages of firewall insurance policy with out desiring to endure in reason the particulars of community ports and protocols.• more desirable comfy connectivity. digital deepest network (VPN) cheer has been improved to hook up with greater of essentially the most established VPN servers—without additional software.• meaningful protection signals. When users receive security alerts and questions too commonly, they can moreover plunge into reflexive mode when the equipment asks a safety-connected question, clicking obliging enough with out idea. Mac OS X v10.5 minimizes the number of security signals that you see, so should you Do remark one, it gets your attention.

Apple’s “Mac OS X 10.5 Leopard safety Configuration” e bespeak includes here chapters:• Chapter 1, “Introduction to Mac OS X security architecture,” explains the infrastructure of Mac OS X. It additionally discusses the layers of safety in Mac OS X.• Chapter 2, “setting up Mac OS X,” describes a course to securely install Mac OS X. The chapter moreover discusses how to securely set up software updates and explains permissions and how to restore them.• Chapter 3, “conserving system Hardware,” explains the course to corporal give protection to your hardware from attacks. This chapter moreover tells you a course to secure settings that occupy an sequel on users of the desktop.• Chapter 4, “Securing global device Settings,” describes the course to at ease international system settings akin to firmware and Mac OS X startup. there is moreover tips on developing gadget logs to monitor gadget endeavor.• Chapter 5, “Securing debts,” describes the kinds of person money owed and how to soundly configure an account. This contains securing the equipment administrator account, the exercise of Open directory, and the exercise of sturdy authentication.• Chapter 6, “Securing system Preferences,” describes recommended settings to relaxed Mac OS X equipment preferences.• Chapter 7, “Securing records and the usage of Encryption,” describes a course to encrypt information and how to exercise comfy cancel to determine that historic statistics is fully eliminated.• Chapter 8, “Securing device Swap and Hibernation Storage,” describes how to cozy your system swap and hibernation space of exquisite advice.• Chapter 9, “warding off dissimilar Simultaneous Account entry,” describes a course to back away from speedy consumer switching and native account entry to the laptop.• Chapter 10, “ensuring data Integrity with Backups,” describes the Time computer structure and how to soundly backup and repair your desktop and records.• Chapter eleven, “suggestions Assurance with applications,” describes the course to protect your information while the exercise of Apple applications.• Chapter 12, “suggestions Assurance with capabilities,” describes how to comfy your laptop services. It additionally describes the course to tender protection to the desktop via securely configuring features.• Chapter 13, “advanced security management,” describes the course to exercise security audits to validate the integrity of your laptop and records.• Appendix A, “safety checklist,” offers a guidelines that courses you via securing your laptop.• Appendix B, “protection Scripts,” offers a script template for creating a script to relaxed your addition, the thesaurus defines phrases you’ll encounter as you study the e-book.

Apple’s “Mac OS X security Configuration For version 10.5 Leopard” pilot (three.4MB, .pdf) is right here.

Obviously it is arduous assignment to pick solid certification questions/answers assets concerning review, reputation and validity since individuals acquire 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 promote to us for the brain dumps and pass their exams cheerfully and effectively. They never trade off on their review, reputation and trait because killexams review, killexams reputation and killexams customer conviction is vital to us. Uniquely they deal with review, reputation, sham report grievance, trust, validity, report and scam. In the event that you remark any fallacious report posted by their rivals with the denomination killexams sham report grievance web, sham report, scam, dissension or something like this, simply remember there are constantly terrible individuals harming reputation of obliging administrations because of their advantages. There are a noteworthy 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 Braindumps Menu

1Z0-325 braindumps | HP0-M19 cram | 010-151 exam prep | C9520-929 dumps questions | 190-951 examcollection | 000-430 free pdf | 00M-513 braindumps | JK0-802 exam questions | 000-M221 pdf download | CAT-240 braindumps | 090-160 study guide | AND-401 test prep | 190-612 exam prep | HP2-Z09 rehearse Test | HP2-B99 questions and answers | Praxis-Core true questions | HP2-H62 dumps | CAT-200 cheat sheets | 700-303 test questions | HP0-053 brain dumps |

Just memorize these 9L0-061 questions before you evanesce for test. give latest and refreshed Pass4sure rehearse Test with Actual Test Questions for new syllabus of Apple 9L0-061 Exam. rehearse their true Questions ameliorate your insight and pass your exam with tall Marks. They guarantee your accomplishment in the Test Center, covering each one of the subjects of exam and enhance your knowledge of the 9L0-061 exam. Pass with no uncertainty with their redress questions.

We occupy their specialists operating ceaselessly for the gathering of true test questions of 9L0-061. outright the pass4sure Questions and Answers of 9L0-061 gathered by their crew are verified and updated through their Apple certified team. they occupy an approach to back connected to the candidates regarded within the 9L0-061 exam to induce their evaluations just about the 9L0-061 exam, they occupy an approach to collect 9L0-061 exam tips and hints, their fancy just about the techniques used at intervals the necessary 9L0-061 exam, the errors they accomplished within the actual test once that enhance their braindumps consequently. Click Once you endure their pass4sure Questions and Answers, you will feel assured regarding outright the themes of test and knowledge that your power has been greatly improved. These pass4sure Questions and Answers are not merely exercise questions, these are true test Questions and Answers which will exist adequate to pass the 9L0-061 exam first attempt. Discount Coupons and Promo Codes are as under; WC2017 : 60% Discount Coupon for outright exams on website PROF17 : 10% Discount Coupon for Orders larger than $69 DEAL17 : 15% Discount Coupon for Orders over $99 SEPSPECIAL : 10% Special Discount Coupon for outright Orders allows hundreds of thousands of candidates pass the tests and acquire their certifications. They occupy thousands of a hit testimonials. Their dumps are reliable, affordable, updated and of truly best nice to conquer the difficulties of any IT certifications. exam dumps are cutting-edge updated in noticeably outclass course on regular basis and material is released periodically. Latest dumps are available in trying out centers with whom they are preserving their courting to acquire modern day cloth.

The exam questions for 9L0-061 MAC OS X 10.5 Troubleshooting exam is particularly based on two handy codecs, PDF and rehearse questions. PDF document carries outright of the exam questions, answers which makes your coaching less complicated. While the rehearse questions are the complimentary role inside the exam product. Which enables to self-determine your development. The assessment implement additionally questions your vulnerable areas, in which you necessity to allot more efforts so that you can enhance outright of your concerns. advocate you to should try its free demo, you will observe the intuitive UI and moreover you will discover it very pass to personalize the instruction mode. But manufacture sure that, the actual 9L0-061 product has extra functions than the tribulation version. If, you are contented with its demo then you should purchase the true 9L0-061 exam product. Avail 3 months Free updates upon buy of 9L0-061 MAC OS X 10.5 Troubleshooting Exam questions. gives you three months slack update upon acquisition of 9L0-061 MAC OS X 10.5 Troubleshooting exam questions. Their expert crew is constantly available at back quit who updates the content as and while required. Huge Discount Coupons and Promo Codes are as under;
WC2017 : 60% Discount Coupon for outright exams on internet site
PROF17 : 10% Discount Coupon for Orders greater than $69
DEAL17 : 15% Discount Coupon for Orders extra than $99
DECSPECIAL : 10% Special Discount Coupon for outright Orders

9L0-061 Practice Test | 9L0-061 examcollection | 9L0-061 VCE | 9L0-061 study guide | 9L0-061 practice exam | 9L0-061 cram

Killexams CFEX free pdf | Killexams 1Z0-147 braindumps | Killexams CCB-400 pdf download | Killexams 9A0-311 examcollection | Killexams M9520-233 bootcamp | Killexams 000-677 rehearse test | Killexams HP2-K09 braindumps | Killexams FD0-510 sample test | Killexams P9530-089 rehearse exam | Killexams M2020-229 rehearse Test | Killexams ASWB study guide | Killexams LX0-103 exam prep | Killexams HP0-M55 brain dumps | Killexams 630-008 rehearse test | Killexams C2090-642 cram | Killexams 000-970 exam questions | Killexams 1Z0-462 mock exam | Killexams CHA true questions | Killexams 000-224 free pdf download | Killexams E20-537 test prep | huge List of Exam Braindumps

View Complete list of Brain dumps

Killexams C2040-410 braindumps | Killexams 000-016 braindumps | Killexams 000-719 brain dumps | Killexams 050-684 test questions | Killexams 050-733 dumps | Killexams LOT-927 rehearse questions | Killexams 304-200 test prep | Killexams 1D0-541 free pdf download | Killexams M2010-760 free pdf | Killexams ST0-306 sample test | Killexams 1Y0-A11 test prep | Killexams CPFO mock exam | Killexams EX0-107 test prep | Killexams 000-598 rehearse questions | Killexams C2010-504 rehearse test | Killexams 000-175 questions and answers | Killexams 00M-228 dumps questions | Killexams 70-483 braindumps | Killexams 922-096 true questions | Killexams JN0-522 true questions |

MAC OS X 10.5 Troubleshooting

Pass 4 sure 9L0-061 dumps | 9L0-061 true questions |

Mac OS X 10.5 Leopard: the Ars Technica review | true 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 stay of my Mac OS X 10.4 Tiger review, I wrote this.

    Overall, Tiger is impressive. If this is what Apple can Do with 18 months of development time instead of 12, I tremble to believe what they could Do with a full 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 occupy passed. Apple's tantalizingly categorical withholding of information about Leopard just fanned the flames. My status of reason leading up to the release of Leopard probably matches that of a lot of Mac enthusiasts: this better exist good.

    Maybe the medium 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 occupy been five releases of Mac OS X in the time it's taken Microsoft to deliver Windows Vista.

    But far exist it from me to exercise Microsoft to calibrate my expectations. Leopard has to exist something special. And as I remark 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 exist trolling through the internals to remark what's really changed.

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

    This review will cover outright of those angles, in varying degrees of depth. like outright other Mac OS X releases before it, Leopard is too mountainous for one review to cover everything. (After all, Tiger's internals alone 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 snoopy to me while moreover trying to provide a reasonable overview for the non-geeks who've decided to select the plunge into an Ars Technica review. (Hi, Mom.)

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


    This is the fraction where I usually link to the entire history of Ars Technica's Mac OS X coverage, from the hoary DP2 in 1999 outright the course 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 believe it's time to manufacture a cleanly wreck from the past. While Mac OS X is soundless changing as expeditiously as it ever has, I feel like the concept of Mac OS X as a product has settled down in the minds of users. What was once seen as a exceptional 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 occupy gone through outright 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, repose assured that they are not forgotten. The incompatibility now is that enough time has passed to allow them (I hope) to shed outright semblance of nostalgia and exist seen as they always should occupy been, as censorious statements about the current status of Mac OS X, full stop.

    Moving on to hardware, can you believe I soundless don't occupy an Intel Mac in the house? Okay, maybe it's not so arduous to believe if you happen 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 course to my house as you read this, alas it did not manufacture it in time for this review. On the lustrous side, my relatively static hardware collection allows for obliging 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 arduous drives, a DVD-RW/CD-RW drive, and a 23-inch Apple Cinema HD parade (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 arduous 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 expect that Apple is spending most of its time on Intel-specific performance enhancements, but even if this were not the case, Intel's CPUs occupy long since left behind the terminal PowerPC chips used in Macs in terms of outright reasonable performance measures. There is no necessity for abysmal 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 obliging 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 soundless 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 record 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 new release. I guess this is yet another sign of a maturing product. I like the space theme. like Tiger's spotlight theme, it highlights the most prominent feature of the OS. It moreover 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 flee with it and produced what I believe 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 select this outright in stride, but I can imagine the Leopard installer being a revelation to someone who uses Windows exclusively.

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

    Leopard's new look

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

    The phrase "arbitrary graphical change" has become increasingly applicable, and the sheer number of feasible looks for any given ingredient of the OS has exploded. As of the stay of Tiger's reign, most major interface elements had at least two feasible looks, with windows themselves having many more than that. Worse, Apple itself has introduced many new 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 occupy multiple looks for, say, a button as long as it's soundless 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 occupy my own reasons for being down on the status of Mac OS X's appearance through the Tiger era. allot simply, after six years of tweaks, I'm ready for a mountainous change.

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

    Just to exist clear, I'm talking only about the appearance of the OS for now. I certainly wasn't expecting mountainous 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. remember what that was like?

    Introducing Aqua.

    Aqua hit like a ton of bricks, and it wasn't just because it was such a wreck from the past. Aqua was a comprehensive overhaul of the notice 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 snort 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 notice of the OS, they moreover compromised the overall aesthetic design. What started as a (flawed) labor of genius was patched and filled and tweaked by a committee of pragmatists, rendering it much improved, but considerably less inspired.

    Is it unbiased to expect Leopard to wipe the slate cleanly and, further, to succeed where Aqua failed by being at once a labor of craft 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 acquire up on stage and say, "Aqua's had a obliging 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 new denomination meant a new beginning.

    Leopard's new look: the reality

    Leopard's appearance is not a new beginning, but it is soundless 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 like this (mouse over for graphite).

    Notice that I didn't snort 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 benign of window in Leopard, and you're looking at it. This slate gray appearance replaces outright other measure window styles. Existing applications that quiz for metal or unified windows will acquire this appearance instead.

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

    I mentioned before that I've never been opposed to multiple window looks on universal principles, but there was one reason (aside from my want for radical change) that the multiplying window appearances bothered me. The mountainous problem was that it was never pellucid which appearance to exercise 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 poverty-stricken choices and some monstrous applications.

    And, truth exist told, if there's no coherent reason for the exercise of a new window appearance, then why does it necessity to exist at outright as a system-wide option for outright developers? I'm not sure what to convoke the new One staunch Window Appearance in Leopard (Aqua? Slate?), but I'm cheerful someone at Apple finally made a election and stuck with it.

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

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

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

    There's moreover been a welcome revision to the notice 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 soundless a bit of an oddity, coming in petite clumps as they do. The Safari-style square toolbar buttons are more common, and much nicer looking. The dispirited (mouse-down) status of these buttons is particularly nice.

    The torpid status of the new windows is now more clearly distinguished from the active state. torpid windows fade to a much lighter shade of gray. The switch from dim to light gray can actually exist a bit jarring when it happens to great windows.

    Inactive windowInactive window

    It takes a while to acquire used to these changes. Long-time users used to looking for "dark windows" to pick out Safari, for example, will exist 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 moreover quite diffuse, so it doesn't unduly obscure content below.

    Aesthetic quibbles aside, the new window notice is overwhelmingly a net win. It eliminates developer and user confusion, sweeps up and disposes of several monstrous (in the opinion 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 new window style, because it turns out to exist the highlight of the visual changes. Leopard moreover includes its own crop of the aforementioned "arbitrary graphical changes," and most of them are not changes for the better.

    Leopard's new notice (continued)

    Arguably, the new window appearance was moreover an capricious change. (Why dim gray? Why not standardize on the brokendown "unified" appearance instead?) But in the august scheme of things, the particular design chosen is not as necessary as the fact that a election was made. Of course, it could occupy been an monstrous election (I don't believe it is) or it could occupy suffered from terrible usability issues (I don't believe it does), but at least the intent was a obliging one: to simplify.

    The selfsame cannot exist said for a several other significant changes to the notice of Leopard's interface. Their intent is unclear at best, they cause usability issues where no one 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 measure controls, the folder icon is the most ubiquitous piece of reused art. A lot of people didn't like the folder icon introduced in Mac OS X 10.0 and carried through essentially unchanged to Tiger.

    As the notice 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 moreover complained that the isometric perspective didn't match Apple's icon design guidelines. But these are outright picayune issues, and subjective ones at that. Most Mac users were not clamoring en masse for new folder icons.

    Leopard folder icon. Enlarge / Leopard folder icon.

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

    The notice isn't bad, right? It's soundless 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 worry starts when you remark what the "special" folder icons notice like (Applications, Documents, etc.)

    Leopard special folder iconsLeopard special folder icons

    The embossed notice is attractive, but it's moreover incredibly low-contrast and pretty much impossible to manufacture out at wee sizes. I back several special folders in my Dock, and I depend on being able to pick them out quickly, even at wee sizes. Here's how they notice 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 incompatibility 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 new folder icons at Indie HIG (a site whose mere existence is a blot on Apple's recent user interface record).

    Poorly designed folder icons aren't the stay of the world, but it's the context that's so maddening. Here's an interface ingredient that maybe could occupy used some freshening up, but it was far from broken. Apple's gone and made it worse in a course 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 evanesce under the knife is the Dock. Now here's an interface ingredient with some serious, long-standing issues, but remember 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 manufacture this more "Leopard"? We'll occupy to diminish 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 exist sure to cause some visibility issues. Next, the already-small triangles that emerge under running application icons can probably exist further obscured. Let's supplant those with fuzzy blue orbs. Also, if they can virtually manufacture the Dock less space-efficient, that'd exist a plus. But they moreover occupy to jazz it up, don't we?

    I know! Let's manufacture it pseudo-3D! And finally, the obligatory demo feature: reflections everywhere! Reflections on the fuzzy blue orbs, a reflection highlight line running across the all Dock, and—the coupe de grâce—real-time reflections of any windows that inch 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 foul Ideas, again addressed more thoroughly by others. This is like the folder icon situation outright over again, but even worse. It's an illustration of sacrificing usability for the sake of purely aesthetic changes that are far from universally loved (to allot it mildly) in isolation, and inexcusable given the expense paid for them.

    Seriously, pseudo-3D? Really? If a compulsion for gaudiness must exist quenched, at least try to confine such exercises to more obscure features. Don't scribble outright over the second-most visible interface ingredient in the entire OS like 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 wee 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 notice of the horizontal Dock are moreover the most likely to occupy their Docks on the side. Either way, the presence of an alternate notice is a tacit admission that the default design has problems.

    If you want the alternate notice when the Dock is on the bottom too, type 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, dim backgrounds.

    Dock labelsDock labels

    Did I snort "second-most visible interface element" earlier? Oh, you remark 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 evanesce there, I know. "The menu bar? Surely they didn't... I mean, what's to change there?" Oh yes, buckle your straightjackets; they occupy 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 exist 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 exist like congratulating someone for extinguishing the left half of his body after intentionally lighting himself on fire.

    The rationale proffered by Apple for the exercise 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 ingredient in the entire interface.

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

    Why, Apple? Why!? Was there something horribly wrong with the existing menu bar—something that could only exist fixed by injuring its legibility? like the folder icons and the Dock, it's not so much a fatal 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 happen in a meeting for this understanding to acquire the green light? Is this the dim side of Steve Jobs's iron-fisted rule—that there's always a risk that an obviously ridiculous and horrible understanding will exist expressed in his presence and he'll (inexplicably) latch onto it and manufacture it happen? Ugh, I don't even want to believe about it.

    In the meantime, there's sure to exist 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 occupy been saving Apple's bacon by doing what Apple should occupy done itself. I already necessity several "hacks" to exist ecstatic in Tiger, but a hack for the menu bar? It's just getting ridiculous.

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

    Menu bar iconsMenu bar icons

    Leopard's menus moreover occupy a subtle change: rounded corners. Only the lower corners are rounded in drop-down menus, while outright 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 mountainous fan of rounded corners (round rects forever!) I don't like them in this particular location; I believe it makes drop-down menus in particular notice less crisp. But at least the change has no detrimental sequel on usability and isn't aggressively ugly.

    The new menu highlight color is a deep, loaded 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 snort about the new notice in Leopard, but because the things I occupy covered span the orbit of quality. The new, standardized window style makes the biggest visual impact and is the best aspect of the new design. At the other stay of the spectrum are the baffling alterations and adornments that manufacture Leopard less usable and (in many cases) less pleasant to notice at. There are wee visual improvements in individual applications, but the overall notice of the OS proper is foundering.

    I was ready for an all-new notice 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 rigor should entail less risk. Viewed in that light, Leopard's graphical missteps are damning. If Apple is going to manufacture mistakes, let them exist made in service of a truly daring design. I'm willing to forgive, and even to notice 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 Do not forgive.

    The Kernel

    Let's evanesce in the contradictory direction entirely and dive into the core of the OS. We'll labor their course 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 outright previous kernels) and wouldn't snort why. Many theories sprang up to fill the void. I, of course, had my own pet theory.

    The most logical reason that I can believe 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 dead end, and therefore not worth the pains to pretty up and publish.

    Presumably, outright of the major labor 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 new kernel entirely, or maybe it has significant changes to back virtualization more efficiently, or something in between. Apple seems to exist holding its cards immediate 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 exist along the censorious path.

    I even had some crackpot ideas about what, exactly, could supplant 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 exist very surprised if there's no mountainous kernel-related technology or announcement at WWDC. That said, I don't remark any pressing necessity for major kernel shenanigans in Leopard, just more of the selfsame kinds of improvements that came in Tiger. Maybe no mountainous announcement really would exist the best feasible 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 foul thing at all. (I'll rescue my kernel pipe dreams for Mac OS X 11.0, I suppose.)

    A lot of the kernel rumor craziness had its origins in the understanding that Mac OS X is a poverty-stricken performer at the kernel flush 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 truth is much less dramatic. The core OS team at Apple is, perhaps predictably, the polar contradictory of the graphical design team. Apple's kernel engineers in particular are pragmatic, cautious, and wise. They're moreover human, however—if you prick them, Do they not bleed?—which may interpret why they spent some time at WWDC spelling out the philosophy behind Mac OS X's kernel development process.

    Apple's focus is on system-level performance, not micro-benchmarks. The kernel team's job is to manufacture the software at the higher levels notice 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 exercise of development time, benchmark bragging rights exist damned.

    That's not to snort 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 Do 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 deportment of the true applications running on the full OS dictates which aspects of the kernel acquire the most attention.

    In Mac OS X in general, and in Leopard in particular, improvements to scheduling and latency are important. There's a mountainous incompatibility 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, pitiable from a single, flat queue of processes to a hierarchical one that better reflects the actual hardware (e.g., two divide chips, each with two CPU cores). Bouncing a process from one CPU to another is foul for performance; the on-chip caches don't acquire a haphazard to properly warm up. But multiple cores on the selfsame chip often share some caches. A hierarchy of process queues in the kernel created with this knowledge 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 right now and which are safe to swap out to disk. When it comes time to swap to disk, Leopard will (finally!) dynamically designate swap files, which means that you should acquire some disk space back when the recollection pressure abates.

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

    I routinely flee into these limits in Tiger and occupy often been forced to select heroic measures to augment them. A few of the defaults occupy moreover increased in Leopard (e.g., the default maximum number of processes per user has increased from 100 to 266. I'll soundless back mine over 2000, thanks). And for obliging measure, there are even a few new limits on previously unlimited resources like resident and wired recollection sizes.

    The Leopard kernel moreover has a new "sandboxing" system which forces certain processes to flee 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 exist 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 chore of porting DTrace from Solaris to the Mac OS X kernel. DTrace solves a long-standing kernel development problem, and does so in such a grotesque course that it creates new opportunities for Apple to cheer outright programmers, not just kernel hackers.

    To understand how DTrace helps kernel developers, account the following scenario. Let's snort you're a developer working on some aspect of process creation in the kernel. To cheer during your development, you'd like some sort of notification every time a new process is created. So you find the role in the kernel that creates a new process, and you add a bit of your own code to the genesis of that role 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 active at the selfsame time.

    So, being the obliging petite programmer that you are, you promote up with a more universal solution. At each point where some debugging code may exist useful, you wrap the code in a conditional expression that asks, "Should this piece of debugging exist turned on right now?"

    This seems like a obliging solution until you've filled the kernel with these snippets. remember that the kernel, by its nature, tends to contain code that executes very quickly and very frequently. A tiny check to remark if a particular piece of debugging should exist turned on may only select 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 true wall-clock time down the drain. Now multiply this by many hundreds or thousands of debugging probes in the kernel, and it becomes pellucid why outright these checks cannot exist left in the finished product.

    The obvious solution is to transmogrify 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 outright 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 labor with a special "debug build" that may exist gradual but which contains outright the diagnostics you necessity for development. When you necessity 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 no one 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 true time on a running kernel.
  • Near-zero overhead when not in use. The impact of disabled debugging code is so wee that outright such code can exist left in production kernel builds.
  • Programmers reading this will exist forgiven for cringing a bit at the aroma of self-modifying code, but my advice is to just immediate your eyes and believe 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 illustration that prints a notification every time a new process is created.

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

    The output looks like this.

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

    Here's another one, slightly more complicated. It waits for the ls program to manufacture the stat() system call, then traces the execution of this convoke 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 petite text files with script-like bang-pound lines using this unearthly C-like language and you occupy essentially free reign to grope outright over the kernel. (You occupy to exist root to flee DTrace at all, for obvious reasons.)

    The D language does not back branching, subroutines, or loops—a obliging thing, because accidentally creating an illimitable loop or recursion inside the kernel definitely should not exist one tiny plain-text script away. You moreover can't exercise DTrace to modify kernel recollection or CPU registers or to convoke capricious functions.

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

    And remember this is outright running on a unpretentious brokendown consumer copy of Leopard, not a special build. DTrace is included on outright 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 full complement of symbols and other metadata are soundless useful. DTrace does not supplant them. What it does Do is provide an unprecedented flush 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 acquire 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 development 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 back calling it Xray for the repose 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 chain of actions. Mmm... automated GUI-based performance regression testing.

    DTrace and Xray invite obliging questions. "How many files does my application open on launch?" "How many times is a particular role called?" "What does the recollection usage of my application notice like over time?" DTrace and Xray manufacture the previously daunting chore of answering these questions almost picayune and (dare I snort 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 cheer but lead to better, faster, more stable applications—from third-party developers as well as from Apple itself. And it's outright 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 pellucid path forward. Leopard has taken the first mountainous step down that path. The addition of DTrace is the most significant change. It's an entirely new feature and was not created with Mac OS X's kernel in mind. DTrace will moreover occupy the biggest impact on the development process and by extension on the nature and trait of applications available to users.

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


    Tiger included back for 64-bit processes, but only if they did not exercise 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, outright Macs will comprehend 64-bit CPUs. The introduction of 64-bit versions of outright Mac OS X subsystems (Carbon, Cocoa, Core Foundation, QuickTime, Quartz, etc.) seems inevitable.

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

    Well, it certainly has been a while since Tiger, and guess what? Leopard is the release that goes 64-bit outright in one shot... with a few caveats. But before getting to that, I want to revisit the understanding 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 pitiable 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 universal 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 acquire larger registers, they acquire more registers, plus a more modern calling convention and more addressing modes.

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

    I snort "x86 application" and "PowerPC application," but of course Leopard, like Tiger, supports what Apple calls Universal Binaries. These are separate executable files that contain code for outright supported architectures: 32-bit Power PC, 64-bit PowerPC, 32-bit x86, and 64-bit x86_64. Here's an illustration 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 occupy it: the mountainous 64-bit intelligence in Leopard is that GUI applications can now exist 64-bit. Leopard applications can moreover specify an architecture preference order as well as a minimum OS version for each architecture. outright 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 exist a significant transition age 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 ill-fated story... or perhaps a hopeful one. You decide.

    Brave new 64-bit world

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

    For those of you that don't know, HIToolbox is the most modern and most necessary fraction 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 form so you can acquire the full, nuanced flavor of this moment.

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

  • The future of HIToolbox, after the pause (MP3)
  • "Integration! Oh thank God!" Yes, Carbon programmers were given a reprieve in 2006. But the fact that the mountainous shove at WWDC that year was for Carbon programmers to learn how to integrate Cocoa APIs into their Carbon applications should occupy been a mountainous 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 exist supported in 64-bit mode in Leopard, the GUI portions of the Carbon API will not.

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

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

    Perhaps the most painful fraction of this for developers with great 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 back for Carbon was obviously a arduous one to make, but eventually it was made, despite the labor already allot into the effort.

    I believe it was a obliging decision. Apple has been hamstrung by the necessity to back two entirely different APIs, maintaining feature parity between them, and having to interpret 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 outright pellucid that Mac developers would want to learn Objective-C and a all new set of APIs. Here in 2007, the developers occupy spoken. The only people soundless doing Carbon development 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 cleanly break

    Carbon is just one example. Apple has wisely decided to exercise the transition to 64-bit as an break to manufacture outright 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 new ABI, faster dispatching, zero-cost exceptions, and public APIs for introspection built on top of newly opaque internal structures. outright over Cocoa, ints occupy been replaced with NSIntegers. In outright of the graphics APIs, floats occupy been replaced with CGFloats.

    QuickTime moreover 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. full stop, no waffling, everyone acquire on board the train.

    There's an inherent tension between developers with existing applications and skillsets and the OS vendor's want to attract new blood and manufacture obliging long-term decisions for the platform. The late convoke on the 64-bit Carbon conclusion is pellucid evidence that Apple struggled mightily with these issues internally.

    In the end, Apple made the arduous election instead of the effortless one. I believe it will pay off, though the short-term consequences could exist pretty grim. After all, just notice at how long it's taking to acquire an Intel-native version of Microsoft Office for the Mac. Should they expect a 64-bit Cocoa version in, say, 2012? And I occupy no understanding what Adobe's going to Do about 64-bit versions of its products. That's many millions of lines of Carbon code between those two companies alone. They may exist in for a scabrous patch, so buckle up.


    Once upon a time there was an operating system called BeOS with a daring and innovative design. Not outright of its audacious new ideas worked out as well as expected, however, and those that did were not enough to rescue 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 flavor 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 bespeak Practical File System Design with the exist File System describes the history and implementation of these features. A free PDF is moreover available.)

    In 1997, Apple purchased NeXT instead of exist and based Mac OS X on the NEXTSTEP OS. Initially, Mac OS X had no one of the BeOS file system features listed above. The shove 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 new path. But it takes a long time to revolve a ship as mountainous 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, outright 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 new extended attributes APIs brought arbitrarily extensible metadata. Now, in Leopard, the final piece has arrived: an asynchronous file system notification API in the form 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 outright 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 new 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 course 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 obliging reason. It has to Do with the mechanics of file system notifications.

    To exist awake of outright material file system changes, the notification mechanism must exist at the choke point for outright 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 manufacture each event available to interested clients and then inch 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 exist off doing something else when an event arrives. This is outright par for the course in userspace, but it's extremely incompatible with the kernel's necessity to acquire things done right now, with minimal recollection and CPU overhead.

    What's the kernel to Do when 10,000 file system changes occur in two seconds (say, as fraction 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 rescue the events and wait for outright interested clients to finally acquire around to receiving them. But buffers are not unlimited. This is especially staunch in the kernel. What happens when the buffers fill up?

    Well, the kernel could obstruct waiting for some buffer space to become available. However, account 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 designate memory, but that just postpones the problem. allot simply, either you limit the number of events you can buffer, accepting that sometimes the buffer will fill up and you'll occupy to drop events, or you can commit 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 gradual client, events acquire dropped. This means that one badly behaved client can raze it for everyone.

    So, no, /dev/fsevents is not a obliging 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 new technologies. Given a thorny technical problem, FSEvents does not attempt to exist outright things to outright people. Instead, it shrewdly narrows its focus, concentrating on the feasible and the probable. FSEvents provides an "80 percent solution" with (near) 100 percent reliability, rather than attempting to exist 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 true time to outright interested clients. This appears to exist the best feature of the API, but it's actually quite a tribulation for clients. Any events that occur when a client program is not running will never exist 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 Do this in order to tangle and process outright file system events.

    If any other program wanted to observe outright file system events, it would occupy to Do the selfsame thing: launch at boot time and stay 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 retort is that solving the problem of the constantly running client moreover makes many other problems disappear. Here's how FSEvents does it.

    The /dev/fsevents API can only back 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 exercise the FSEvents API Do not necessity to exist running constantly. They can exist launched at any time and can ask, "Okay, what's changed since the terminal 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 retort the question accurately.

    Pragmatic? Isn't it moreover unbiased to convoke this solution "fraught with its own intractable problems"? How mountainous are these log files? Are they going to fill my disk if I constantly create, modify, and delete files? Will the log files exist trimmed? What if a process doesn't flee 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 flee 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 relate 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 flush of detail). The common pattern is to register for notifications for some subset of the file system tree, Do an initial scan of that tree, wait for an event about a particular directory, then compare the new status of the directory to the status seen during the initial scan.

    That sure seems like a lot of tedious work: register, scan, acquire event, scan again, compare. This selfsame code has to exist 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 moreover quite substantial. No more daemon processes; launch any time to find out what's changed since you terminal 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 evanesce backwards in time to revisit brokendown events.

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

    The FSEvents API includes callbacks for these situations, effectively telling the client, "Unknown changes occupy occurred. You'll occupy to Do a full rescan yourself, then pick up on the new 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 form of reliability. FSEvents will not equivocate 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. measure usage will bow a wee fraction of that.

    That's good, because these log files are kept forever. Well, as immediate 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 flee out of disk space, or if the logs are explicitly purged (there's a public API for this), FSEvents will dutifully spread the foul intelligence to its clients: "Sorry, it's full rescan time."

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

    To obviate events from being logged at outright 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 evanesce without saying, FSEvents honors the Mac OS X access control rules; you cannot receive events about directories that you don't occupy consent to read.

    Spotlight sidebar

    Spotlight has been substantially rewritten in Leopard, and is noticeably more responsive. It does not, however, exercise FSEvents. Instead, it continues to drink from the /dev/fsevents fire hose, grabbing each individual event as it happens. This may seem like 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 feasible in userspace, third-party code. For better or worse, system-wide file system indexing is something that the OS is best suited to wield 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 outright major areas of file system technology. There were compromises along the way, but moreover 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), outright 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 exist dragged kicking and screaming into the future of file system technology, but at least it has finally promote around. Yes, there occupy been bumps in the road, and things surely occupy not turned out exactly the course I expected them to. But in the end, it's the results that count.

    Mac OS X developers now occupy outright the tools they necessity to Do some very snoopy things with the file system—and this includes Apple itself. As we'll see, they've really gone to town in Leopard, finally using outright the features they so grudgingly added to the OS over the terminal six years. In fact, Leopard's signature feature would not exist feasible without FSEvents.

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

    The pains 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 manufacture its official appearance in some future version of Mac OS X. (A beta is available to ADC members.)

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

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

    It's plausible that the completed ZFS port will exist available in the 10.5.x time frame, but I fully expect to occupy to wait for Mac OS X 10.6 or later for anything to supplant HFS+ as the default file system in Mac OS X. The obliging intelligence is that, when it does finally arrive, outright these noteworthy file system APIs will exist there waiting for it.

    Core Animation

    In the post-Mac OS X era, Apple has been a mountainous 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 new items appear; switching preference panes triggers a cross-fade and an animated window resize; items in the Dock shuffle and squirm around when a new detail is dragged towards it.

    Too much animation can exist harmful and grating. But in the best cases, these animations actually cheer usability by providing an categorical visual explanation of status changes while moreover adding an undeniable sense of pizzazz.

    Understandably, third-party developers occupy long tried to ape these effects. Historically, that's been a tall order. select 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 exercise that cross-fade in his preferences dialog.

    But doing so takes him far from his comfort zone, into the world of graphics APIs, perhaps even OpenGL. What does outright that occupy to Do with editing text? Sure, Apple can afford to occupy one of its graphics gurus add whizzy effects, but it's another thing for wee developers to select the time to learn a bunch of new 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 notice as wintry as Apple's. Broadly speaking, this is not something that should exist discouraged. But it really is inefficient to occupy outright these developers trying to write custom code far outside their areas of expertise.

    And for that matter, it's not such a noteworthy understanding for Apple to exist doing the selfsame thing. Though it may occupy the talent on staff, Apple would exist much better served by having its graphics experts labor 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 evanesce 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 ingredient simply the degenerate form of an animation? Let's reimplement everything in terms of their new animation framework! It'll exist awesome!

    It'll probably moreover exist 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 new animation-based APIs.

    Thankfully, Apple's taken a different route with Core Animation. like FSEvents, Core Animation is a pragmatic API. It does a few well-chosen things and does them very well. It moreover goes to noteworthy pains to manufacture 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 occupy 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, like outright 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) moreover haven't helped. But repose assured that you will not exist constructing any teapots in Core Animation. There are no vertexes, triangles, or lights in the Core Animation API. It's a layer kit, remember? believe "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 occupy zero or more sub-layers, and the filters are Core Image filters, of course. But the layer contents are the really snoopy part.

    At some point during pretty much every WWDC since the introduction of Mac OS X, an Apple engineer has explained how to coalesce content produced by different APIs: drawing styled text on top of an OpenGL scene, putting a measure button or checkbox over a QuickTime movie, applying a Core Image filter to fraction 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 benign of thing really shouldn't exist as arduous as it is. Well, in Leopard, thanks to Core Animation (of outright things), it's now nearly trivial.

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

    Layers are animated declaratively, rather than procedurally. For example, to manufacture a layer fade out, simply set its opacity to zero. Rather than instantly becoming invisible, the layer will fade out over a age of time (0.25 seconds, by default). In other words, relate each layer its goal status 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 status to the goal state. Though outright of the animation settings are optional and occupy sane defaults, animations occupy configurable durations, timing curves, keyframes, and transition types. Also, multiple property changes can exist 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 break to consolidate many previously divide GPU acceleration mechanisms for video, 2D drawing, and animation into a separate context.

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

    Core Animation in Cocoa

    Unsurprisingly, Core Animation is a Cocoa API. Politics aside, it's a obliging fit. Cocoa has existing conventions for observing changes to kick properties, and Core Animation ties right into that. But the true genius is in the how petite labor 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 arrogate checkbox in Interface Builder, or manufacture the corresponding [view setWantsLayer:YES] convoke at runtime. Doing so creates a Core Animation layer for the view and outright subviews it contains. The result is two view trees: the collection of "normal" views and subviews that occupy always existed in your Cocoa application (windows, buttons, etc.) and another, parallel hierarchy of Core Animation layers representing the subset of measure views that occupy their "wants layer" property turned on.

    Each layer-backed view has an animator attribute. manner calls that strike animatable properties are animated when made through this kick and are not animated when made through the view itself. For example, let's snort you occupy 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 new size using a GPU-accelerated, OpenGL-based compositing animation engine running on a divide thread, you must type 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 originate 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 illustration above implies. As a first pass, just dispatch outright the manner calls you want to animate through the animator property. As an optional second pass, customize the few animations you want to evanesce faster or slower or Do 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. outright the basic visual properties of views can exist animated—plus some esoteric ones like rotation. Yes, if you occupy the prick to create spinning buttons or slanted windows, Core Animation is there for you. You can even add new animatable properties to your custom views.

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

    Separation of concerns

    As alluded to earlier, the animation fraction of Core Animation runs on its own thread and has its own flee 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 fraction of its visual state.

    For example, let's snort an application moves an ingredient in a window from position A to position B. From the perspective of the application code, the change happens instantly. The detail 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 inch 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 ingredient is, and where it actually appears on the screen. This usually isn't a problem, but developers are encouraged to select precautions to obviate any exceptional 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 pellucid win in terms of CPU utilization. It moreover means that the application can blindly manufacture changes any brokendown time it wants, without concern for the status of any outstanding animations. For example, an application can inch an detail from A to B, then inch it again to C before the A-to-B animation completes. The Core Animation engine will select it outright in stride, smoothly animating the detail towards C from whatever position between A and B it was in when the application initiated the inch to C.

    The application's total lack 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 occupy to endure some amount of gratuitously animated software created by "overly enthusiastic" developers. But the selfsame was staunch during the introduction of styled text and color graphics. Mac developers learn quickly, and Mac users are obliging at rewarding restraint and punishing excess.

    The minimal, almost humble course Core Animation integrates with Cocoa belies its incredible sophistication. More so than any other new framework in Leopard, Core Animation provides functionality and performance that was previously difficult or impossible for the medium Cocoa programmer to create on his own. Now, finally, third-party applications can notice as impressive as Apple's, and they can Do 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 select odds of the latest hardware. Excellent.

    Quartz GL

    I spent several pages of my Tiger review exploring how Mac OS X's Quartz parade 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 inch 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 fraction of the drawing and compositing process happened on my poverty-stricken 400MHz G3 CPU, with the expectation that, someday, it'd outright happen 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 exist 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 soundless disabled by default.

    But surely—surely—Quartz 2D Extreme will exist enabled in the mighty Leopard, right? When it comes to pitiable drawing code to the GPU, maybe they should outright acquire 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 outright Apple product names, so yay. Second, it's necessary to understand why Quartz GL was disabled in Tiger for outright those years. Apple's never made any public statements about this, but developers who've asked occupy 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 strike existing applications.

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

    So what's changed in Leopard? Presumably, most Quartz GL bugs occupy been squashed, but the performance issues are really up to application developers to address by changing their code. But why would they exist 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 exercise Quartz GL. It's a obliging compromise; there's actually nothing to exist disappointed about. Quartz GL, like many Leopard technologies, will surely originate to seep into the applications they exercise every day. It may not exist as obvious as something like Core Animation, but in the long flee 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, moreover sometimes called "scalable user interface" or "high DPI support," is the ability to draw user interface elements using more pixels.

    For example, the petite 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 exercise around 100 pixels per inch (PPI), but on a 200ppi monitor it would exist quite a wee click target. Using a scale factor of 2.0, this selfsame widget would exist drawn using 32x32 pixels—four times as many. That would manufacture 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 moreover exist 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 course to obviate the widgets that manufacture up the UI from shrinking to unclickably wee proportions. In particular, text will notice 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 poverty-stricken vision to manufacture 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. select a notice 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 soundless plenty of scabrous edges even for the simplest of applications. Since interface scaling has a global effect, it can't exist enabled piecemeal like Quartz GL.

    Unlike Quartz GL, Apple has actually provided a pretty pellucid message to developers about resolution independence. There occupy been sessions at the past few WWDCs about how to prepare applications to flee properly at scale factors above 1.0. The true hold-up has been Apple itself, however, which doesn't quite occupy resolution independence working correctly across outright of Mac OS X's GUI frameworks. Also, the exact details of how resolution independence will interact with the various APIs occupy 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 soundless stands. Which will promote first, affordable high-PPI parade hardware or a resolution-independent version of Mac OS X? The wait continues.

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

    Core UI

    Resolution independence is a fine idea, but there's the pesky issue of exactly how to draw outright those user interface widgets using more pixels. When resolution independence finally arrives in 2008 (or whenever), will the Mac OS X UI exist drawn entirely using infinitely scalable vector art? That'd sure decipher the problem of where to acquire outright 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 labor fine, but it does seem benign of wasteful to exercise giant bitmaps for thing like line craft and basic shapes which are oh-so-compactly represented by vectors.

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

    Let's select a notice at the pitiable parts. Core UI draws each piece of the user interface based on a chain of XML "recipes" that picture the structure and features of each element, referencing pieces of craft stored as divide resources files within the framework bundle. Here are just a few illustration 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 revolve contain the recipes and resources. It's arduous not to notice at this arrangement as a benign 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 obdurate approach to drawing the UI used in Tiger and earlier. At the very least, the new recipe/resource structure lays bare the components that manufacture 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 moreover find various "material" bitmaps. Here are two examples (scaled down from their actual 398x398 pixel sizes):



    The Finder sidebar

    The Finder sidebar

    Keep in reason that these are not giant radio buttons; bitmaps like these are used as texture sources for widgets of outright shapes and sizes.

    Finally, here's what a checkbox looks like 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 remark how this outright starts to promote together. Browsing through the full set of resources reveals an unsurprising division of labor between mountainous bitmaps (PNGs) and vector graphics (PDFs). Anything that looks like line craft or is a basic shape is done with vectors. The "lickable" bits, on the other hand, are soundless represented by (presumably hand-tweaked) bitmaps, usually in very great sizes. In particular, the course 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 course to conserve recollection while soundless using hand-drawn art.

    So what does this outright signify for Mac OS X? Well first, it means that Apple is ramping up for resolution independence. They knew that already, but it's soundless nice to remark how far along things are. Remember, even at the default (1.0) scale factor that Leopard will ship with, outright the UI widgets you remark 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 brokendown course for 1.0. The inch to using Core UI everywhere shows some aplomb in the technology.

    Core UI moreover 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 back for things like drop shadows and highlights. But the universal approach of using XML recipes to compose vector and bitmap resources is a sound one that will terminal 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 snoopy features that don't warrant their own sections—or, quite often, that time constraints occupy prevented me from expanding into entire sections. For the first time, I'm giving the internals their own grab bag, to divide the more technical bits from the later grab bag that covers more user-visible features. allot 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 select odds 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 notice at these extended ascribe names:

  •—Finder comments in true metadata. (They're moreover soundless 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 all suite of extended attributes used by a certain backup feature to exist described later.
  • It's enough to manufacture me shout "Hallelujah!" Apple finally gets it! remark how useful this stuff is? Just imagine the insane contortions the pre-metadata-enlightenment Apple would occupy gone through to store and track outright 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 occupy moreover 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 reveal 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, measure text drawing and layout API: Core Text. (As far as I know, this "Core" technology does not acquire 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 snoopy 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 exist public, but maybe it just appears that course in hindsight. Either way, back your eye out for private frameworks in Leopard that could exist 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 age product in its sixth major release, just now getting a measure text layout API? As age as Mac OS X may seem, it was quite a mishmash of technologies at its birth: a petite BSD Unix here, some NeXT there, and a bucket of classic Mac OS splashed on top. This is outright going to select a long time to sort out. Leopard takes some necessary steps towards the future by deprecating several brokendown technologies and anointing their successors.

    Code signing

    Leopard supports cryptographically signed applications. This topic rings tocsin 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 arduous for some people not to remark outright 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 exist Acme Inc. the terminal time you downloaded something from their web site.

    This illustration 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 like a obliging security feature, but outright it really does is train Mac users to blindly click "Always Allow" each time it appears. And really, what is the medium user going to do, flee 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 new version of the selfsame application from the selfsame vendor that you expressed faith for in the past. The result is an stay to dialog boxes asking you to confirm a election whose safety you occupy no reasonable course to verify.

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

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

    Apple has signed outright applications that ship with Leopard. I expect most reputable third-party developers to Do the selfsame eventually.

    Code signing moreover means an stay to the rehearse 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 rehearse has always been discouraged by Apple, and now there's another reason 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 exist just a wee step towards increased security, but it's one that's done right.


    Speaking of security, Leopard moreover supports address space layout randomization, or ASLR. The denomination pretty much explains it: ASLR moves stuff around in recollection to manufacture it harder for malicious software to call the address of a particular piece of code. Apple soundless has a long course to evanesce to achieve Microsoft's current flush 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 remark Apple taking some initiative in this district rather than waiting for catastrophe to strike and then reacting.


    LLVM stands for low flush 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 outright about what LLVM can Do at the project's web site. The explanations you'll find there are benign of impenetrable if you're not already familiar with compiler technology, however. The best course to believe of LLVM is right there in the name: it's a virtual machine, but one that models something quite low-level, more like 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 understanding is that you bow code in LLVM's platform-neutral intermediary representation (IR) and then LLVM will optimize it and then transmogrify it to native code for the true CPU of your choice. This conversion can exist 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 bow native code on its own? That's what most compilers do. Unfortunately, they Do so with varying degrees of quality. The flush 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 exercise of a platform-neutral intermediary representation.

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

    So, that's the pitch. The reality is that it will select 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 back a particular feature in hardware (e.g., a particular pixel or vertex shader operation), a software fallback must exist provided. Modern programmable GPUs provide a particular challenge. OpenGL applications no longer just convoke fixed functions, they can moreover pass entire miniature programs to the GPU for execution.

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

    This approach severely limits the scope of feasible optimizations. Any transformation that spans more than one primitive operation is extremely difficult, leaving only the relatively frail 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 outright the new architectures (and features like SSE, SSE2, SSE3... ) started to acquire a bit hairy.

    A custom compiler with frail 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 native 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 brokendown custom JIT for certain operations that the brokendown 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 benign of code is no code at all.

    Don't exist misled by its humble exercise in Leopard; Apple has august 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 new 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 Do expeditiously incremental compilation and provide a much richer collection of metadata is a huge boon to GUI IDEs like 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 necessary to the future of Mac OS X. Indeed, it could moreover exist necessary to the present of the iPhone and other OS X platforms.

    I'm not sure how the iPhone supports outright 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 outright to hum on a platform with a relatively frail GPU and CPU. And did I mention that Apple recently did some extensive labor on the LLVM ARM backend? You know, ARM, the CPU used by the iPhone. Yeah, the pieces sure seem 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 new Objective-C runtime in the 64-bit section. This is fraction 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, manner dispatch, and in the 2.0 version, recollection management as well.

    That's right, the biggest intelligence in Objective-C 2.0 is that it supports garbage collection. This is an opt-in feature, and a separate code foundation can exist compiled both with and without back for it. When garbage collection is enabled, outright manual recollection management calls are simply ignored. This is how outright of Apple's Objective-C libraries in Leopard are written; they labor 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 back for simple accessor and mutator methods for kick properties. Writing many such methods is tedious and supine to mistakes. Since the best practices are, by now, well defined, Apple simply added properties as a "native" feature of the language. I allot native in quotes because it really boils down to a form of syntactic sugar, but a petite sugar is a obliging thing.

    Objective-C 2.0 is a mountainous 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 course 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 heedful to allot the change in context, declaring that Objective-C 2.0 is "not focused on revolutionary changes to your development world to achieve the next generation development environment" (emphasis added). That's outright well and good, but then what is going to bring that "next generation development environment"?

    I've been flipping out about this for years now, and the pressure just keeps mounting. What's Apple's procedure to transition to a dynamic, fully memory-managed development environment? I did a three-part blog chain 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 crisis 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 soundless leaves the problem unsolved.

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

    In the meantime, the take-home point related to Leopard is that Objective-C 2.0 is a obliging thing. The additions to the language manufacture Objective-C much more pleasant to exercise and easier to learn. The new runtime is cleaner, faster, and more capable. Garbage collection, if it becomes as pervasive as it ought to, will cheer train a new generation of Mac developers to submission one more bookkeeping role to the computer. If there's a cliff up ahead, at least Apple's picking up quicken 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 snort 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 like it, few keeping for it, and many scout 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 mountainous deal? The foul feelings about the Finder don't spring from a separate source. There are at least three divide threads of Finder dissatisfaction, usually appearing in combinations of two or more in any given Finder malcontent.

    I went on to picture those three threads of dissatisfaction: spatial/browser-mode interaction, performance, and "the petite things." That summary is soundless worth reading; outright three pillars of Finder angst remain material in Leopard.

    They're material partly because the Leopard Finder makes an pains to address each one directly. "Address" does not signify "resolve," however. But first, some obliging news.


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

    Case in point: iDisk. Even when .Mac is extremely gradual to respond, the iDisk window appears instantly. Granted, the window may exist blank for some time as the Finder waits for .Mac to dispatch data, but the necessary point is that control is immediately returned to the user. allot that iDisk window aside and promote back to it later when it's finished loading; you can continue your labor 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 Do 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 soundless 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 soundless lurk, however. For example, connecting via FTP (sorry, soundless read-only), putting the server to sleep, then attempting to open a folder on the server will sometimes result in some trait 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 like the iDisk case: a new 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 soundless a refreshing change from the days when it was omnipresent.

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

    Overall, I occupy to snort this is the most significant performance improvement in the history of the Mac OS X Finder. There's soundless more labor to exist done on the dim corners of network connectivity, but the underlying issues seem to occupy been addressed.

    The petite things

    The Leopard Finder goes a long course towards fixing outright those niggling petite issues that occupy been driving people nuts for years. In fact, several of my own personal peeves occupy been addressed. back this positive outlook in reason as I embark on one terminal rant about how long this has outright taken.

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

    Rename without warnings Adjustable grid spacing

    It's arduous for me not to exercise profanity at this point, so thoroughly Do 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 cheerful to finally remark them in Leopard. But on the other hand, actually using these features and experiencing how much more pleasant they manufacture 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 form (only two settings: tense and wide) in classic Mac OS and was dropped during the transition to Mac OS X, like 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 exist some sort of punishment for daring to exercise icon view. Just notice 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 Do in a system where (unfortunately) file denomination mangling is the official course to encode file type metadata. It's the inability to disable the warning that's so obnoxious. Again, the changes required to Do this are not complicated. Why did it select so long?

    I'm sure 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 believe that misses the bigger picture. What they occupy 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 chore of making a Mac OS X Finder that everyone can indulge in using—or, allot less charitably, that fewer people loathe.

    Obviously, everyone's pet features can't exist added, but at a certain point the ratio of "ease of implementation" to "annoyance caused by their absence" tips over in favor of features like this. There were already enough legitimate reasons for people to scout the Finder. Leaving petite annoyances like 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 manufacture a disproportionately huge improvement in the lives of many thousands, perhaps millions of users. Apple gets full 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 new Finder moreover has some snoopy new features. We'll start with the visual.

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

    The Finder sidebarThe Finder sidebar

    As you can remark above, list view items now occupy alternating background colors—a welcome change. Cover tide 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 acquire a district in the sidebar, with the default set shown above. As usual, a obliging selection of defaults goes a long course towards making a feature more useful. Even for people who occupy no understanding 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 evanesce poof. Drag it back on and it can evanesce 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 acquire even more aggressive in Leopard. The Finder goes to noteworthy lengths to provide previews for even the most mundane and inscrutable of file types.

    Text icon previewsText icon previews

    The squinty text seems benign of silly, but believe it or not, you can actually manufacture 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 new Quick notice feature, denoted by the stylized eye icon in the toolbar, provides a surprisingly expeditiously and loaded preview of file contents. Its keyboard shortcut is particularly convenient. Just select any file and hit the space bar to remark a preview. Here's an example.

    Quick Look. Enlarge / Quick Look.

    Most of the time, the black-tinted Quick notice pane pops up instantly. This responsiveness makes the feature much more likely to exist used. The quicken extends even to more complicated 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 course to Do a quick presentation.

    Quick notice 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 measure 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 new nested clause. Combined with the aforementioned rewrite of the Spotlight indexing system, the new file search interface is now what it should occupy been outright 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 new pane for adjusting them.

    Access Control ListsAccess Control Lists

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

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

    Screen sharing

    Leopard has extensive back for screen sharing—that is, the ability to remark another computer's screen in a window on your Mac and (optionally) control that computer with your mouse and keyboard—using the VNC measure 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 reveal 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 trait control manufacture 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 soundless 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 exist launched manually and used to connect to another computer if you know the IP address. You'll exist prompted for a username and password, with the option to explicitly request consent to share the screen.

    (Screen sharing is moreover built into iChat, though it appears to require both participants to exist running Leopard. URLs in the form vnc://... will moreover labor in the Finder.)

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

    An application divided against itself

    The Finder soundless can't quite resolve what it wants to exist when it grows up, a file browser or a spatial file manager. A cleanly separation of concerns would allow it to exist 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 new window to exist opened.

    The latter style is often called "spatial" because the creation of a new window for each folder is a prominent deportment of the classic Mac OS Finder and other file browsers that link spatial window status (size, position, etc.) to individual folders. But there's more to being a spatial file manager than opening a new 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 status 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 controversy 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 exist considered to occupy 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 exist 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 crisis has not been so easy. In outright past releases of the Mac OS X Finder, it was impossible to labor with one benign of window without the other benign popping up in your pan periodically, unrequested and unwanted. This annoyed browser and spatial aficionados alike.

    Upon first using the Leopard Finder, you will exist 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 Do so. Sure, new folders created on the desktop soundless seem 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 soundless does so using .DS_Store files in each directory, and those files are soundless written in an undocumented binary format. What the Leopard Finder no longer even attempts to do, however, is remember the view style for each folder (e.g., list view, icon view) unless explicitly asked to Do so by the user. Here are the steps required to Do that.

  • Open the folder.
  • Set its view style to the desired state.
  • Open the View Options panel (type command-j or select the detail in the View menu).
  • Check the "Always open in ... " checkbox, where "... " will exist the view style set in step 2.
  • This process must exist repeated for every separate folder that you want to retain its view style. If you Do not Do this, the view style of any given folder will exist the selfsame as the terminal 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 ascribe of the Finder application itself (optionally overridden by a per-folder setting that must exist 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 occupy 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 signify that future changes to the view style of that folder will exist retained. If you want to retain a view style change to such a folder, you must Do 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 exist the view style as it appeared in step 1.
  • Check the "Always open in ... " checkbox, where "... " will now exist the style set in step 2.
  • Again, iterate this process for every every separate folder that you want to retain the new view style that you've set for it.

    This avalanche of mandatory categorical action effectively represents a denial of service storm 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 exist abandoned entirely.

    If the Mac OS X Finder wants to exist a absolute browser, then fine, evanesce for it. But in a proper browser, outright view state—not just view style—is rightfully an ascribe 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 manufacture view style alone an ascribe 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 existence of the global "Always open folders in a new window" preference that effectively stops any window from being a proper browser?

    The Finder remains a truly conflicted application. On the one hand, the balance 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 cheer much. It's particularly painful to watch Apple continue to flounder in this district when there's a blindingly obvious solution.

    Of course, Apple could evanesce all-browser or all-spatial, but presumably neither of those extremes is attractive or we'd occupy seen one already. No, the Finder has to Do both. I've often gone into noteworthy detail about the particulars of such a Finder, but apparently there's too much gradation in that approach. Let me snort it more plainly: for the keeping for of God, Apple, just freaking divide the two modes! Let each exist staunch to itself, free to wave and expand in the arrogate ways. I can stew 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 manufacture 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 exist sorted out, like, say, coming up with a reliable, efficient, user-specific mechanism for storing view status information, eliminating the scourge of .DS_Store files. But these are details; acquire the two modes sorted and everything else will plunge into district eventually.

    The Finder on the couch

    I first noticed the new view style deportment in Leopard when I logged in one day and saw that outright 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 new one that reported the exceptional "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 outright folders in your favorite view style you necessity 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 outright its worth. It seems pellucid to me that the new deportment is intended to fill a exact for more browser-like behavior, something that "most users" occupy told Apple they want. I don't find that surprising; ever since the sidebar appeared, the Finder has certainly looked the fraction of a browser. Its behavior, however, has remained schizophrenic. The common user response: "It looks like a browser, but doesn't behave like one. please redress this."

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

    This is the type of feedback you can expect from regular users: expressions of particular ache points. It's not their job to decipher the Finder's problems or even to understand the underlying causes. But being reactive to this benign of feedback at this flush of granularity will only lead to feature churn.

    And so you acquire changes like 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 course that it (further) breaks spatial mode. Oops, now let's pitch in an "Always open in ... " view option to manufacture those other people happy. And round and round it goes. shove something in over here, something else pops out over there. No one is thinking about the mountainous picture.

    As a sop for spatial file management fans, the "Always open in ... " view option fails spectacularly. It's more like a giant middle finger from Apple. At the very least, an option to restore the pre-Leopard deportment 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 outright barren unless the larger issues are addressed.

    Finder summary

    The Finder was one of the biggest surprises for me in Leopard. It was not evident at outright 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 new policy on view style retention.

    After many years of bugs, poverty-stricken performance, a feeble browser, and a pseudo-spatial mode, it'll exist snoopy to remark what benign of reaction this change gets in the wider Mac community. You don't necessity to know or keeping about any of the high-concept user interface theories to acquire annoyed when the results of your actions are not respected enough to exist preserved. On the other hand, the Finder has been flaky about status preservation for years. How many Mac users occupy simply given up trying to manufacture the Finder a familiar, hospitable place? Maybe no one will even notice that view style changes are no longer preserved automatically.

    Well I sure as hell noticed, and it pisses me off. I'll exist gritting my teeth as I meander my arduous drives, manually pinning down the view style of each folder I keeping about. I'll grimace every time I naively change a view style only to exist 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 course 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 arrogate .DS_Store file. Sad, but true.)

    The Leopard Finder's saving grace may exist that the increased responsiveness and new features are likely to overshadow outright other issues, and will evanesce a long course towards damping the flames of hatred burning in certain 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 lack of vision." This continues to exist the case. Not only does the Leopard Finder select no bold steps towards a intrepid new world of file management, it even further distances itself from a coherent incarnation of established file management paradigms. The changes in Leopard Do indicate 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 like one step forward, two steps back.

    The Dock

    If the Finder looks like 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 select stock of the functional vandalism.

    The left side of the Dock remains mostly unchanged. It soundless holds only applications, running or otherwise. outright of the new features are on the right half of the Dock, where "everything else" lives. Files, minimized windows, and the trash outright 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 demonstrate their actual folder icons only when they are empty. Docked folders containing one or more items demonstrate 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 notice like in the dock.

    The Applications folder in the DockThe Applications folder in the Dock

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

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

    Yep, that's it right 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 nugatory right about now, congratulations, Apple may occupy a position for you in their user interface design group.

    Do I necessity to further interpret 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 acquire that list right.

    When it comes to ease of identification, the Tiger version wins, hands down. And remember 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 exist 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 outright contain mostly other folders as the first few items, alphabetically.

    Changing the sorting doesn't cheer much. The problem is that this is fundamentally a foul 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 occupy any visual impact. And those few items may exist deceptive (e.g., the home folder appearing to exist the Desktop folder) or completely generic (e.g., the Pictures and Movies folders showing up as unpretentious folder icons.) Seriously, Apple, this is a foul idea. And Do I necessity to relate you that there's no course 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 acquire into what does happen when you click on a docked folder, let me further point out that (surprise!) there is apparently no course to acquire the brokendown deportment back. I modifier-clicked my fingers off with no luck. Yes, there's soundless 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 deportment that existed in Mac OS X 10.0 through 10.4. Leopard just takes this feature away.

    Here's what does happen 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 new Finder window, documents open in the arrogate application, and applications launch. A command-click reveals an detail in the Finder.

    Docked folder stackDocked folder stack

    Apple calls this view "Fan." The curve is jaunty, but it moreover 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 exist tolerably immediate 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 exist viewed as a fan or a grid or can exist set to "automatic" (the default), which uses a fan when there are few items and switches to grid to wield many items.

    Both of these new features are actually pretty nice. It's too foul Apple decided to completely supplant the brokendown behavior. It would occupy been so effortless to occupy it all: just add a "Window" menu detail 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 detail onto a docked folder and holding it over the folder for a few moments, the docked folder springs open to reveal 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 new features are hampered by the needless abandonment of brokendown behaviors. The "stacked contents" docked folder parade manner is a total loss. scorch it with fire, or at least provide some course to revolve it off.

    And lest they forget, despite these new Leopard feature, the Dock is soundless quite anemic. This isn't talked about much these days, but outright the brokendown power-user complaints about the Dock soundless occupy merit: the necessity for icon scrubbing, the pitiable targets, the capricious division of items, the course each role affects the others (e.g., minimizing many windows makes the Dock a less effectual launcher by shrinking and pitiable outright 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 complicated 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 occupy to exercise it.

    Mac OS X forces you to exercise 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 exist 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 spurn to manufacture the Dock better suited to more complicated or demanding usage scenarios, but moreover periodically hose existing functionality and add really terrible new behaviors, it needs to select away the Dock's exclusive ownership of essential features. Let me screen the Dock entirely and exercise a third-party replacement without sacrificing basic functionality and without compromising the stability of my system. I know it's always a ache to add new public APIs, but these changes are long overdue, and they'd profit Apple in the long flee as well. Mr. Serlet, cleave down this wall! Don't constrain me to exercise the Dock, and I vow I'll desist actively hating it.

    Time Machine

    Time Machine is the best new feature in Leopard, perhaps the best feature ever added to Mac OS X. allot 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 dilemma for measure users: "I know I should back up, but I never do. I wouldn't even know how to Do something like that anyway." Well, enough of that. If you occupy more than one arduous disk attached to your Mac, it's more difficult not to exercise Time Machine than to exercise it.

    Backup disk selection dialogBackup disk selection dialog

    The first time two or more arduous 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 meander over to the Time Machine preference pane, you'd remark this tidy petite 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 outright 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 necessary ways. First, if your main arduous drive dies or is replaced, booting from the Leopard install DVD will provide a one-click course to restore from your terminal Time Machine backup. Second, when viewing any window in the Finder, triggering a special mode will demonstrate the contents of that window at outright points in the past for which backup data exists. Files can exist recovered from the past, replacing the current incarnations or existing alongside them.

    This outright 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 Do backup their data. That actually doesn't sound too foul until you acquire to the next question. Only four percent backup regularly.

    In a nutshell, this means that if you could snap your fingers and manufacture one Mac user's main arduous 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 exist 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 allot at least two arduous 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 arduous drive.

    In hindsight, this is a more practical solution. Mac users are much more likely to purchase and attach a spare arduous drive than they are to navigate the complexities of backup software on their own—software that may cost as much as a arduous 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 pitiable star field, into which fades a succession of historic incarnations of the lone remaining Finder window.

    Time Machine mode (cropped due to space constraints;  remark Apple's web site for <a href="">more images</a>)Time Machine mode (cropped due to space constraints; remark 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 right shows each backup as a tick mark, magnifying the marks on mouse-over much like the Dock magnification feature. It's outright completely ridiculous, and you know what? I keeping for it!

    I'm willing to indulge Apple when it comes to these flourishes in Time Machine for two reasons. First, no one of the silliness renders the features significantly less usable. Yes, those arrow buttons are crazy, but they're moreover 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 course 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 flush 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 chain 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 arduous 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 signify 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 ingenious than that.

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

    And yet there they outright are. If you navigate into one of the "Leopard Demo" folders, you'll remark 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 measure Unix feature: symbolic links and arduous 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 arduous 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 exist 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 outright the data is in the resource fork.) The first fraction of this lesson is that aliases occupy absolutely nothing to Do with symbolic links and arduous links.

    For decades, Unix has had two ways to Do something similar to what aliases do: symbolic links and arduous links. A symbolic link, moreover 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 right of the petite 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 inch mysymlink to an entirely different directory that moreover happens to contain a file named myfile, then the symlink will point to that file instead. If I delete myfile, the symlink will remain, soundless 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 oversight reported is a bit confusing. The mysymlink file soundless 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 oversight it encountered when trying to open the file it was originally told to open.

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

    A arduous link is simply a reference to some data on disk. believe 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 exist reused.

    Most files occupy just one name. In effect, every unpretentious file is a arduous link. select another notice at the myfile listing from before.

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

    See that number "1" right 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 matter to zero, allowing the disk space previously used by myfile to exist 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 manufacture a arduous 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 matter 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 occupy no course 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 true as either one would exist if the link matter was one instead of two.

    Since these two files link to the selfsame data, the results of modifying that data will exist 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 notice 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 soundless 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 occupy guessed by now, Time Machine uses arduous 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 occupy 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 terminal backup.

    Time Machine goes one step further. Historically, Unix has only allowed arduous links to files. In Leopard, Apple has included the ability to manufacture arduous links to directories. This has not been allowed in Unix because it can lead to outright sorts of very nasty illimitable loops during file look-ups. Of course, symbolic links can create loops too, but they're a lot easier to detect and obviate since symbolic links are easily distinguished from measure files. But as discussed earlier, every file is essentially a arduous link, and outright arduous links occupy 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 terminal backup, Time Machine just has to manufacture a separate arduous link to that directory in the new backup folder. Without back for arduous links to directories, Time Machine would occupy to create 18,744 directories containing a total of 68,839 arduous links to files (using numbers from my /System directory).

    Yes, directories are wee and arduous links only select 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 expeditiously when you're talking tens of thousands of arduous links being created every time you want to Do a backup. arduous links to directories manufacture this outright much simpler and more efficient.

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

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

    Implementation consequences

    It's ill-fated 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 exist copied to the backup volume. arduous link can't cheer you here. There's no course to manufacture a arduous link to "9.99999GB of the brokendown data, plus this one byte of new data."

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

    First, if you exercise Microsoft Entourage, your e-mail is kept in a single, great database file. Mine is about 2GB. Most people acquire new e-mail every day. Ugh.

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

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

    Apple has been encouraging developers to exercise many wee files rather than one mountainous one for years now, mostly to manufacture 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 Do the same, although I occupy no understanding if it does so in the upcoming Microsoft Office 2008 release. But for virtual machine files, the problem is intractable. And those watch to exist the biggest separate files on most disks.

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

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

    In the meantime, it is feasible 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 exist 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 moreover means that it's not feasible 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 new volume. If, like me, you feel better moreover having a bootable backup around, an application like SuperDuper is soundless necessary. (I spurn to add the exclamation point. Sorry, David.)

    On the lustrous 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 like the loony space-motif file restoration interface in the Finder? Don't exercise it. You can meander around the Backups.backupdb folder using the Finder, the command line, or any other file manager. But the biggest win with outright these public APIs and simple structures is that the territory is wide open for third-party developers to create applications that complement and build upon Time Machine.

    It's a cleanly machine

    Despite a few consequences of Apple's continued inability to territory 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 soundless scores. Time Machine makes a chore that was once so complicated and intimidating that almost no one even attempted it, and makes it invisible. like outright noteworthy ideas, it seems obvious after you've seen it, but that in no course diminishes the achievement.

    Time will relate (ha) if this machine is enough to acquire to Apple's stated goal of having 100 percent of Mac users backup regularly, but I believe it'll certainly manufacture a dent. I often acquire scolded by other mothers via e-mail when I exercise my mother as an example, but it's just too apropos to pass up here. Time Machine is literally the only course I can believe of that I could ever acquire my mom to back up her Mac. Once she has upgraded to Leopard, I can relate 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 fraction easier, too), no software installation, no new application to learn.

    Yep, it's a glimpse into the self-sufficient-mom future they outright imagine. The open backup format and APIs are exactly the right course to add a major feature without the tribulation of being outright things to outright people. Let third-party developers to add value; they'll keeping for you for it. Time Machine earns its district as the marquee feature of Leopard. obliging show, Apple.


    Each new 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 necessary ways that an OS gets "faster." The first is traditional code optimization, where some subsystem is improved to exercise less CPU time or less recollection or Do less disk i/o, thus performing the selfsame chore in less time. The second factor is perceived speed. Though a chore may actually select longer, it may feel faster due to changes in the course the OS reacts during the process.

    Application launching is the canonical illustration 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 Do 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, like its predecessors, gets faster on the selfsame hardware in both areas. Frameworks occupy been extensively revised and optimized, yielding true performance benefits in the areas of screen drawing (2D or 3D), text display, and most of the features that were new in Tiger.

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

    This brings up an snoopy point. Does a faster Spotlight contribute to the "OS" being faster? I snort it does. From a user's perspective, an OS is a collection of features and bundled applications. Only nerds keeping about the "real" definition of an operating system, encompassing only the lowest-level services. Spotlight is appreciable and measurably faster in Leopard, and that makes a mountainous incompatibility 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 flavor as Spotlight indexed outright their files. Granted, it happened in the background, but it did gradual things down. Perhaps more importantly, the sound of a arduous drive grinding away in the background can exist quite disconcerting.

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

    Most bundled applications acquire a boost of quicken in Leopard, if only in the seemingly universally less disk-intensive launch process. One Dock bounce, a few arduous drive clicks, and most applications are ready to go. I feel like 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 soundless laggy, but improved.

    I occupy a fire the true performance wins will promote as third party developers (and Apple too, I suppose) occupy time to optimize for Leopard, using Quartz GL, compiling for 64-bit Intel, using the new Objective-C 2.0 runtime, and so on.

    In short, it's more of the selfsame for Mac OS X performance in Leopard: steady improvement, with a few lustrous spots, and no true downsides.


    For the longest time, very early in Leopard's development 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 snort 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 soundless an alarming number of basic things that did not labor reliably. I was getting foul flashbacks of the bug-ridden 10.4.0 release.

    Then, around September, Apple released a build that miraculously seemed to manufacture everything work, and labor well. Now obviously I occupy no understanding how closely Apple's developer seeds track with the actual status 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 status awaiting the final mountainous push. But whatever the case, this theatrical 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 exist the GM.

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

    Grab bag

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


    Leopard includes an extremely competent virtual desktop implementation in Leopard, appropriately called Spaces. To some, this is a major new feature on the flush 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 new 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 exist assigned to specific spaces or can emerge in outright of them, which is a nice touch. For the next revision, a course to allot different desktop background to different spaces would exist nice.

    "Activating" spaces means displaying outright 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 like to click and hold on a window title bar, then activate spaces and continue my drag of that window into a new space. (I Do something similar on a daily basis when dragging files, using the command-tab application switcher as an indirect course to acquire the drag destination to promote to the front without releasing the detail 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 exist 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 acquire a screenshot of, but you can remark it at Apple's web site).

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

    New icons

    From Spaces to icons? Yes indeed. A bunch of existing applications acquire new icons in Leopard.

    New iconsNew icons

    I'm not sure how I feel about System Preferences adopting the iPhone settings icon, but overall, the new icons notice nice. Most icons occupy been updated, in fact, if only to comprehend larger sizes. Many occupy been entirely redrawn but notice almost exactly like their predecessors. It outright combines to gives a nice additional sheen to the OS.

    Leopard moreover includes a nice set of icons representing most Macs made in the past few years, presumably meant to more accurately picture 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 Do these things desist being "icons?" At 512x512 pixels, they're more like "idealized photos." resolve for yourself.

    This is an icon?This is an icon?

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



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


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

    Network preference paneNetwork preference pane

    It includes a all 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 all nine yards. outright of the esoteric stuff is behind that "Advanced" button, but at least it's finally outright 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 demonstrate below reveals the long-overdue addition of a GUI for sharing specific folders.

    File sharingFile sharing

    Nearly every service has some wee new feature, usually in the form of more flexibility about who gets to exercise the service.

    Guest account

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

    Guest accountGuest account

    The habitual set of constraints can exist 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 exist logged in at a time. There's no presentiment 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 evanesce looking for it, I suspect it wouldn't exist too arduous to find the template for the guest account, perhaps in the form of a disk image or property list, and customize it to create a more cozy environment for guests. (Say, by putting a giant Unreal Tournament 2007 alias in the headquarters of the desktop. Hello, multiplayer gaming terminal.)

    Disk Utility

    The Disk Utility application can now delete and resize partitions without erasing outright data on the disk. This is probably a result of the labor 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 new "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 soundless sounds a lot better to my ears. Apple really needs to significantly update the core engine, not just add new voices. No screenshot.

    Back to my Mac

    Leopard includes back for what is essentially dynamic DNS via the new 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 outright your other Macs by having each one report its IP address to the .Mac service. The result is that outright your Macs are available as servers in the Finder sidebar, without requiring you to enter a server address. It's handy, but not much cheer if you travel across several draconian firewalls daily.

    Grammar checker

    The system-wide spelling checker now does grammar too. foul 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 like the spelling checker, its omnipresence makes up for its limited abilities.

    iCal's Dock icon

    Apple has finally submitted to adding what must exist quite a hack to acquire the iCal application icon to demonstrate 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 arrogate wacky default set.

    Terminal settingsTerminal settings

    And hey, anyone remember that Apple type 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 new 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 erudite more about Leopard, it's become increasingly pellucid where, exactly, those two-and-a-half years of development 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 pellucid to the casual user who just sees the surface changes and the major new 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 snort this despite my abysmal hatred for many of the user interface changes. But perhaps I'm not representative of the medium Mac user. In outright likelihood, my hatred will translate into an occasional-to-persistent mild annoyance for most users. And truthfully, people can acquire 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 acquire top billing. There's a obliging reason we've already seen so many prominent Leopard-only software announcements. This is where developers want to be.

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

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

    What's emerged is quite a exceptional beast: sparkling 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 new notice is postponed until 10.6 or later. It'd moreover exist nice if Apple would finally manufacture a conclusion about the successor to the HFS+ file system some time this decade.

    What a long, exceptional trip it's been. Leopard turned out very differently than I imagined it would only a year ago. Despite some mountainous disappointments near the stay of its development process—the new 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 exist fixed in a 10.5.x point release. That's something that certainly could not occupy 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 development community's break to shine. Whether it reigns for two and a half years, like Tiger, or even longer, I'm looking forward to my time aboard starship Leopard.

    (Caution: Dock slippery when wet.)

    Tutorial: Screen Sharing in Leopard (Mac OS X 10.5): How it works and how it doesn't | true questions and Pass4sure dumps

    Originally posted by Ted Landau (November 2007) Updated by MacFixIt Staff (May 2009)

    If you are into troubleshooting (and given that you are here at MacFixIt, it's likely that you are), you'll find a wealth of welcome goodies in Mac OS X 10.5 (Leopard). If I were to manufacture a list of Noteworthy New Troubleshooting-Related Features in Leopard, the first detail would exist the redesigned and pumped-up Sharing System Preferences pane and its related features. And of outright the new sharing?related features, the one perched at the absolute pinnacle would exist screen sharing.

    Regardless of what you may already know about screen sharing in Leopard, I am confident that you will learn something new in this article?as they acquire down to the nitty-gritty of how screen sharing works, how it sometimes doesn't work, and when it may even pose a significant security risk.

    Why is screen sharing at the top of my list? If you've done any remote troubleshooting (especially over a phone), you already know the answer. Not being able to remark the other person's screen, not being able to carry out the desired actions yourself?is too often an exercise in frustration, especially when working with a novice user. I occupy lost matter of how many times I occupy silently cringed at the responses to my requests to "Go to the Desktop" or "Select About This Mac from the Apple menu." Too often, there's an ominous pause followed by "What's the Desktop?" or "Where's the Apple menu?" It's arduous to manufacture progress in resolving what's really wrong when you occupy to start by explaining the concept of the Finder. Every time this happens, it increases my respect for those people who retort the phone for Apple Tech Support; they occupy more forbearance than I ever will.

    That's why screen-sharing is such a boon. With this feature, you can view and control another user's screen from your Mac?opening applications, deleting files or whatever else you necessity to do. This can exponentially reduce the time needed to decipher a problem.

    True, you don't necessity to upgrade to Leopard to exercise screen sharing. It has worked reasonably well in Tiger for some time, typically via third-party VNC software such as the celebrated Chicken of the VNC. With it installed on your Mac and the "Apple Remote Desktop" service set up in Sharing System Preferences of the computer at the other end, you can effectively share a screen.

    Recently, some screen sharing online services occupy started supporting OS X, including the celebrated CrossLoop client which allows you to find a variety of available tech cheer personnel with whom you can optionally share your screen and decipher problems. While more of these services will find their course to the Mac, in many instances they are not as convenient as using the built-in options that promote with OS X.

    Underlying Technologies

    Apple's screen sharing is based on the "Virtual Network Computing" architecture of screen sharing that was developed for Linux and UNIX machines. This technology uses "remote frame-buffering" (RFB) protocols to dispatch dynamically updating screenshots of the system's desktop to a remote location. Apple's implementation of this technology came in the form of the Apple Remote Desktop workgroup management package that needed to exist installed on the various machines that supported it. While Apple Remote Desktop is a fairly robust and feature-rich implementation, besides iChat, the screen sharing options that ship with OS X occupy been relatively stripped down to allow only screen sharing features.

    Unlike previous generations of the operating system, in Leopard, screen sharing is built-in and easier to set up. It works more reliably and includes options not typically available through a measure VNC connection. As is typical of Mac OS X, there is more than one route to sharing a screen in Leopard. Here are your main choices:

    Screen Sharing via iChat

    iChat may not exist the quickest course to manufacture a screen sharing connection, but it's the best. What's especially wintry about it is: (a) you don't necessity to know the person's IP address to manufacture a connection; (b) you can instantly shift back and forth between having your screen or the other person's screen fill up your display; and (c) you can copy files from one computer to the other by dragging and dropping files from one screen to the other (when you Do this, the transferred files wind up in Leopard's new Downloads folder).

    To exercise this screen sharing variation, both machines must being running Leopard and occupy iChat open. Also, manufacture sure Screen Sharing Enabled is checked in iChat's Video menu. Here's what to Do next:

  • If you and the other person are both on the selfsame local network, find the other person in iChat's Bonjour List.

    For a remote connection, you'll both necessity to exist logged into an iChat-compatible account. You should ideally occupy the other person's denomination in your Buddy List.

  • Select the other person's denomination from the material list.

    Either (a) evanesce to the Buddies menu and choose "Ask to share (person's name)'s Screen..." or (b) select the selfsame command from the pop-up menu accessed from the Screen Sharing icon the bottom of the List window, as seen in motif 1.

  • A message pops up on the screen of the other computer, asking for the person's consent for you to share their screen. Presumably they are expecting this and will click to Accept.
  • Figure 1. The command to request to access someone else's screen via iChat (in this case, both connected computers had my name).

    Assuming nothing goes wrong, you should remark the other person's screen on your Mac in short order. A great text message appears across the screen on the shared computer, notifying the user that the computer is now being shared.

    To stay a screen sharing session, type Command-Escape from either computer. Or, from the computer that is accessing the shared screen, click the X icon in the upper left of the currently smaller window.

    Troubleshooting tip: When attempting to connect via screen sharing in iChat, you may acquire a "communication error" message. Assuming that outright settings are redress and you occupy a viable Internet connection, restarting one or both Macs should fix the problem. If it doesn't, you may instead exercise the Finder screen sharing method, especially for a local connection. It can labor even when the iChat manner does not. Screen Sharing via the Finder

    If you can't or don't want to exercise iChat for screen sharing, your other option is to access screen sharing from the Finder. Actually, although you initiate screen sharing from the Finder, it is a divide program called Screen Sharing that does the massive lifting (I'll talk a bit more about this shortly). This Finder manner is a bit simpler than the iChat method, as it does not require launching a divide program and logging into an account. You can moreover exercise this method, unlike with iChat, to connect to a Mac running Tiger (assuming the Tiger Mac has enabled the Apple Remote Desktop service in Sharing System Preferences).

    However, for a remote connection, the Finder manner is more difficult to set up (as I will soon explain). Also, you can't swap views of the two screens nor can you drag and drop files from one screen to another, as you can Do in iChat. What you can Do is transfer the contents of the Clipboard from one machine to the other. To Do this, once a connection has been made, evanesce to Screen Sharing's Edit menu and select acquire Clipboard or dispatch Clipboard, as arrogate (or, if demonstrate Toolbar has been enabled in the View menu, execute the selfsame actions via a pair of icons in the toolbar).

    Troubleshooting warning: The Screen Sharing program does not exercise the Command-Q (quit) or Command-W (close) shortcuts. If you enter these commands when Screen Sharing is the active application, they will instead strike the shared machine. That is, the result will exist to quit or immediate whatever application or document is active in the shared window. To instead quit Screen Sharing, either evanesce to its menu and select the Quit Screen Sharing command or click the immediate box in the upper left of the shared window.

    How you create a screen sharing connection via the Finder depends upon whether you are making a connection on your local network or to a remote computer (via the Internet). In either case (and unlike with iChat), you occupy to start by setting up Screen Sharing in the Sharing System Preferences pane.

    Preliminary setup. Before you attempt a screen sharing connection, the person who will exist sharing their screen with you should Do the following:

  • Open the Sharing System Preferences pane (see motif 2). At the top of the Services list is Screen Sharing. Select it and revolve it On.
  • For the moment, where it says "Allow access for:", select "All users." This makes connections easier to accomplish. However, leaving it at this setting is a security risk (as I will interpret shortly), so you might want to change this later.
  • Click the Computer Settings button.
  • From the sheet that drops down, enable the "Anyone may request consent to control screen" option. This is not a requirement, but can allow for a successful connection in situations when other options are not working.

    Optionally, from the selfsame sheet, enable the "VNC viewers may control screen with password" option and allot a password. This allows computers running VNC software, such as Chicken of the Sea, to connect to the machine. This is not material for the setups covered in this article, but may exist useful for people who want to connect to a Leopard machine from a machine running Tiger.

    Figure 2. The Sharing System Preferences pane with the Computer Settings options for Screen Sharing shown.

    This other computer is now ready for you to attempt to connect to it. Troubleshooting tip: When you select to enable the Screen Sharing service, you may remark an oversight message stating: "Screen Sharing is currently being controlled by the Remote Management service." Don't worry. To fix this, locate the Remote Management detail in the Service list and revolve it off. Screen Sharing can now exist enabled successfully. You can only exercise one service or the other. You necessity Remote Management enabled if you are using Apple Remote Desktop software (which I am not covering in this article).

    Make a local connection. If the computer to exist shared is on your local network:

  • On your Mac, open any Finder window and notice for the Shared section in the Sidebar. Assuming the computer to which you want to connect is running and awake, with its sharing options enabled as described above, its denomination should exist in the list. Select it.

    Troubleshooting tip. If you don't remark a Shared section in the Sidebar, try one or more of the following, as needed: (a) evanesce to the Sidebar section of the Finder's Preferences and enable the material choices in the Shared sub-section; (b) occupy the other computer revolve off outright currently enabled sharing services and then revolve them back on; (c) restart your computer.

  • The Finder window should now demonstrate a "Share Screen..." button in the upper right (as seen in motif 3). Click it.

    Figure 3. A Finder window: The Shared section of the Sidebar (on the left) and the share Screen button (on the right)

  • Unless you are using Back to my Mac (as explained below), you should now remark a dialog with two options: to connect to the other computer either "As a registered user" or "By asking for permission."

    If you select the former, you must enter a denomination and password for an account that is on the other person's computer. It does not occupy to exist the denomination and password of the currently logged in account. As you will often not occupy access to any account on someone else's computer, the consent option is the one you will likely exercise most often. In this case, similar to what I described for iChat, the recipient sees a message asking them to give consent for you to share their screen. They should Do so.

    Troubleshooting tip: The consent option is not only more likely to exist the arrogate choice, it may sometimes exist the only election that works. In particular, I occupy been unable to acquire the password option to labor when attempting to connect to a computer running Tiger (with Apple Remote Desktop sharing enabled). Neither an account password nor the VNC password (as entered in the Access Privileges settings for Apple Remote Desktop sharing) permitted a connection. Instead, an "Authentication failed" oversight pops up. I am not sure why. However, switching to "Asking for permission" was successful. Both the consent and password options were successful when connecting two machines running Leopard.

  • Make a remote connection. Remote computers are not listed in the Sidebar. Thus, to connect to a remote computer:

  • Select "Connect to Server..." from the Finder's evanesce menu.
  • From the window that appears, locate the Server Address text box and enter vnc:// followed by IP address of the computer to which you want to connect (as given to you by the other person).
  • Click the Connect button.
  • If successful, you should exist presented with the selfsame options to connect either as a registered user or by asking for permission, as described above for a local connection. choose the desired option.
  • As an alternative to using Connect to Server, you can instead launch the Screen Sharing program directly. The program is located in /System/Library/CoreServices. If you wish, for easier access, you can manufacture a copy of the program and district it on your Desktop (or wherever else you want); the program should soundless work. To exercise it, enter the needed IP address in the Host text box, but without the vnc:// prefix.

    Troubleshooting tip: A successful remote connection is far from guaranteed. The first problem will exist identifying the redress IP address. If the other person is using a router, such as an AirPort foundation Station, the needed IP address is typically not the one listed in the Sharing System Preferences pane. That is the local IP address for the machine. What you necessity is the public WAN IP address. This is the address listed in the Internet settings of the router itself (as accessed via AirPort Utility for an Airport foundation Station).

    An additional problem occurs if the other person has more than one computer connected to their router. In this case, even if you exercise the redress public IP address, the other person's router does not necessarily know which machine to direct your sharing request. The common solution here is for the other user to set up their router using either Port Mapping or DMZ Host. Details on how to Do this evanesce beyond the scope of this article.

    That's the course it's supposed to work. Personally, even after fiddling with outright of the above settings, I occupy never been able to manufacture a successful remote connection. Suffice it to snort that for remote connections, you should probably exercise iChat instead.

    Important security warning: If a user attempts to access screen sharing via the Finder with the password option, no alert appears on the other computer that a connection is being attempted. If the attempt is successful, there is similarly no message that a connection has been made. This means that someone could connect to your computer via screen sharing without your even knowing it.

    The implications here are even worse than you may think. For example, I was able to access another computer via screen sharing by using the denomination and password for a measure account on that computer, even though the currently logged-in account was for a different (admin) user. Once the connection was made, I apparently had almost complete access to the other person's account. For example, I could delete files from their Home directory! Certainly, I had more access than I would occupy had if I logged into the measure account on the machine itself.

    I was given this access without the user's awareness or direct permission?and without my needing to know the user's password. To me, this is a earnest security weakness that Apple should immediate up. In the meantime, assuming you want to occupy Screen Sharing enabled at all, you can limit the risks by going to the "Allow access for" section of the Screen Sharing preferences and changing "All users" to "Only these users." Then list only those users who you faith to occupy this access.

    NOTE: For more security considerations, remark the "Secure It" section at the stay of the article.

    Back to My Mac

    If you are a MobileMe subscriber, Leopard includes a feature that was introduced back when MobileMe was .Mac?called Back to My Mac?that allows you to instantly connect, via screen sharing, to any other computer that is running Leopard and is logged in to your MobileMe account. You might exercise this feature, for example, to access your home computer from your laptop while you are on a trip. Back to My Mac is really a special case of the just described manner of using the Finder and the Screen Sharing program. To exercise it:

  • On both computers (the one to exist shared and the one that will access the shared computer), evanesce to the MobileMe System Preferences pane. From the Account subpane, click sign In to login to your account. While soundless in the MobileMe System Preferences pane, click the Back to My Mac button. From here, click the Start button.
  • From the computer to exist shared, evanesce to the Sharing System Preferences pane and, if not already done, enable Screen Sharing as described in the material previous section of this article.
  • From the other computer, open a Finder window. The to-be-shared computer should exist listed in the Shared section of the Sidebar. Apple claims this works the selfsame course for local and remote connections. That is, even a remote computer is listed in the Shared section of the Sidebar via Back to My Mac, eliminating the necessity to finagle with an IP address.
  • Select the computer denomination in the Sidebar and click the "Share Screen..." button that appears.
  • Assuming outright goes well, you should exist instantly connected to the other computer. There is no necessity to request consent or enter a password.

    Troubleshooting warning: When I tested this feature, I organize two significant problems:

    First, Back to My Mac did not labor for remote connections. In particular, the remote Mac never even appeared in the Shared section of the Sidebar. Others occupy reported this as well. One cause may exist incompatible router hardware, as described in an Apple knowledge foundation article (with more information in a related knowledge foundation article).

    The second problem is almost the contradictory of the first one: For local connections, I could not revolve Back to My Mac off. That is, with both computers connected to my AirPort Extreme foundation Station, I successfully used Screen Sharing and Back to My Mac to access my MacBook Pro from my desktop Mac G5 (and vice versa). I next went to the MobileMe System Preferences pane and clicked the desist button for Back to My Mac. It had no effect. You may believe this is due to Back to My Mac soundless being active, but for local connections Apple uses Bonjour networking to establish connections, so even though Back to My Mac is off you will soundless remark local computers present a "Share Screen" option.

    Further Customization

    Even though the built-in screen sharing client is stripped down, a few of the features from the advanced Apple Remote Desktop software are available. The following are ways to enable some of these features:

  • Show "Bonjour Browser" Entering the following command into the "Terminal" will enable the Bonjour browser in the screen sharing client. This will demonstrate a wee window that will automatically detect computers on the local network that occupy screen sharing enabled, and will parade their names. This can exist handy when working with multiple computers.defaults write ShowBonjourBrowser_Debug 1
  • Turn on advanced options: In Apple's Remote Desktop package, you occupy the option to customize your viewer window. These options are available in the Screen Sharing application if you enable them by entering the following command in the Terminal (copy and paste outright three lines).

    defaults write

    'NSToolbar Configuration ControlToolbar' -dict-add 'TB detail Identifiers'


    This will add options to limit the image trait with a slider, which can exist advantageous for some network situations. It moreover allows for observing as well as controlling other computers, enabling or disabling the remote computer's keyboard, taking snapshots of the remote screen, swapping clipboard contents, and displaying the remote computer at full screen on the local computer.

  • Speed Considerations

    Since this technology sends images of the screen over the network or internet, there will exist some performance degradation if the connection is slow, regardless of the means of connection (ie: iChat vs Back to My Mac). The main factor in quicken for any connection is basically how much information is being changed on the screen at any one time. Therefore, one course to reduce network load is to manufacture windows smaller when pitiable them around. This can exist impractical in some situations, but can exist useful when, for instance, you are copying many files around.

    The "Screen Sharing" client that comes with OS X does occupy a few additional options that you can select odds of for either increasing trait or network speed. By default, the screen is set to exist adaptive to network conditions, and only updates enough to demonstrate what's going on, and then updating more when the network resources are available to Do so. This can exist set to flee at full trait (for people on high-speed local networks) by starting a sharing session and from the "Screen Sharing" preferences choose the option to "Show the screen at full quality". Optionally, you can enable an image trait slider (see the "Further Customization" section) For the most part, broadband internet connections should back the adaptive trait settings and expect up to a half-second lag in the response time.

    Firewall and Router Settings

    As with any other network service, Screen Sharing has a set of virtual "ports" which isolate network traffic for that protocol since it and web traffic and other network services are outright using the selfsame IP address and connections. These ports must exist opened in outright network devices for outright computers involved in the screen sharing sessions. This means firewalls on the local computer, as well as any routers or hardware firewalls must moreover exist set up to pass traffic on the following ports:

    TCP: 5900 - 5902, (3389 for connecting to Windows machines)

    UDP: 4500 (for Back to My Mac users)

    Depending on the network devices used, these ports can either exist opened completely, or forwarded to the local IP address for the desired computer, but you will occupy to consult the documentation for your router to remark about how to change these ports. Additionally, if your router supports "UPNP" (Universal Plug & Play) or "NAT-PMP" (NAT Port Mapping Protocol), then it should labor for Back to My Mac. The list of routers in this Apple Knowledgebase article are some that back Back to My Mac and other screen sharing.

    Beyond the Mac

    Remote Desktop can exist exceptionally useful for connecting to other platforms besides OS X. On Intel macs Apple claims that access to PC programs can exist done via Bootcamp or virtualization solutions such as Parallels or VMware; however, a more simpler solution is available if you occupy a Windows PC that is already set up with the software you need. Microsoft has implemented its own version of Remote Desktop into Windows XP and later versions of the Windows operating system. By enabling screen sharing on those systems, you can connect to them using Microsoft's "Remote Desktop Connection" software package. This is available at the following website, and can exist installed and flee on practically any OS X machine (PowerPC or Intel). outright you will necessity to know is the IP address, DNS name, or local denomination of the computer to which you are trying to connect.

    Securing It

    By default VNC is not encrypted, and therefore is not as secure as some people may want. A common workaround for this is to occupy SSH establish a secure tunnel either directly to the computer you want to control, or to a computer on a "trusted" network. This will exist done by using the "ssh" command in the terminal to create a secure port-forwarding session with a remote computer, and then connecting to the forwarded port using "Screen Sharing". back in reason that the following is a bit complicated to understand, but overall is a fairly simple process; however, if you are not prepared for setting this up then you can skip this section and continue exploring screen sharing without the added security. The first thing you will necessity is to ensure the SSH server is running on the computer to which you are creating the "tunnel". To Do this, if the computer is a Mac evanesce to the "Sharing" system preferences and check the "Remote Login" option. Then launch the Terminal on your current Mac to enter commands for creating the secure tunnel to the ssh server.

    The following Terminal command is an illustration of a secured port forwarding session for VNC:

    ssh -N user@hostname -L 1212/vnc_computer_ip/5900

    Overall, what this command does is establish an SSH session with the "hostname" computer (the one on which you enabled "Remote Login"), which will exist used to tunnel port 1212 (though this can exist any unused port number) from the local machine (the one in front of you) to port 5900 (the default VNC port) on a remote computer designated by the "vnc_computer_ip" address. This remote computer can exist the selfsame one as "hostname" if you are trying to screen share with "hostname" (by either using its IP/URL or "localhost" as the address), or it can exist another computer in instances where the "hostname" computer is just there to connect you to a trusted network (as might exist the case with connecting to Windows computers that might not occupy an SSH server installed--see below). With the SSH connection established, the local port "1212" will exist connected to for the VNC session, and SSH will manage the actual connectivity instead of the screen sharing program managing the connection (in a less secure way).

    Another course to notice at this is the command takes the remote computer and port (vnc_computer_ip/5900), and presents it via an encrypted connection to a local port. Therefore you're using the VNC program to connect to "yourself", but From this point, in order to connect to this port you will necessity to reference it on the local machine (the one in front of you; not the SSH computer) by entering the URL as follows either in Safari or in the Finder's "Connect to Server..." option (in the "Go" menu):


    This will occupy the built-in "Screen Sharing" VNC program exercise the local computer's established SSH connection, which will then securely transfer data for the VNC session as opposed to using a direct and unsecured connection using the "Screen Sharing" program itself. Now you can create a shortcut or bookmark to the "vnc://localhost:1212" URL so whenever you set up the tunnel you can easily open this link to start the secure VNC session.

    The specifics of the Terminal command wreck down as follows:

    "ssh" is the secure shell command that we'll exercise to set up the tunnel.

    "-N" tells ssh to not allow any commands, reserving this ssh session just for the tunnel.

    "user@hostname" is the account denomination and computer URL or IP to which they will exist making the secure ssh connection "tunnel". This can exist any computer that is running the "sshd" daemon ("Remote Login") to which you want to create the "tunnel", and not necessarily exist the selfsame computer to which you will exist running VNC, though for maximum security it's preferable that they are the selfsame computer.

    "-L 1212/vnc_computer_ip/5900" is the port forwarding definition, where 1212 is the local port reference (can exist any unused port number between 1 and 65535) that will exist converted to port 5900 on the remote computer ("vnc_computer_ip") via the secure SSH connection (the one to "hostname"). The "vnc_computer_ip" fraction is the URL or IP address for the computer of which you are trying to remark the screen (not necessarily the selfsame as the SSH computer). If this is not the selfsame one you are logging into with SSH (the tunnel), the SSH computer will exist making an unsecured connection from this point to the VNC computer, which may exist fine in some cases, especially if the SSH computer is on a trusted network.

    The key here is to understand there are two connections. The first is the secure SSH connection (user@hostname) to the server that's hosting the SSH daemon. The second is the port forwarding connection (1212/vnc_computer_ip/5900) that will link one local port to VNC server's IP/port combination. The secure tunnel ends at the computer hosting the SSH daemon, so if you are looking for complete security, ensure the daemon computer is the selfsame one you're trying to remark the screen of. This concept may exist more pellucid if you notice at one course you would secure a remote desktop connection to a Windows machine.

    To Do this on a Windows machine, you would set things up in a similar course as mentioned above. If your windows computer has an SSH server running, you can connect directly to it; however, if not (which is most likely the case) then you will occupy to connect to another computer (preferably one on a trusted network) that will then manufacture a port-forwarding connection to the windows machine. As an illustration of this, account the following setup:

    There is one mac running SSH, and one windows machine with "Remote Desktop" turned on. To connect to the mac securely from a remote location and occupy it port-forward to the Windows machine, the following would occupy to exist done on your computer.

  • Enter this Terminal command (using proper IP addresses or URLs):ssh -N user@MacIP -L 1212/WinIP/3389
  • Then open Microsoft's Remote Desktop Connection and enter the following URL:


  • Provided there are no errors, Remote Desktop Connection will labor and the connection will exist secure.

  • More from Tutorials

  • Advice from an Apple Tech: How to acquire brokendown Mac OS X install discs | true questions and Pass4sure dumps

    OS X Panther installation discs

    If you troubleshoot Macs on a regular basis, sooner or later, you’re going to necessity an brokendown Mac OS X install CD or DVD. Only the truly organized will exist able to locate that Mac OS X 10.5 Leopard DVD they terminal used two moves ago. For those of you looking to find a course to supplant your brokendown Mac OS X install discs, we’d like to tender the following suggestions.


    You’ll find it outright on eBay, albeit not at the best feasible prices. like any commodity that’s not being produced anymore, original Mac OS X installation CDs and DVDs are being kept, hoarded, and sold at impressive profits. remember when Apple routinely insisted that $129 was a reasonable amount to jump from Mac OS X 10.3 to 10.4? Well, the person who kept their boxed installation disc would like to remark their money back—and it’s going to promote out of your pocket.

    eBay OS X installation discs

    Still, eBay is the district where the selection is the most optimal, the expense competition remains fierce, and odds are you can find exactly what you necessity and occupy it on your doorstep in a few days’ time. Check that the seller has a reputation around or immediate to 100 percent before you order what you need.


    If it’s for sale and local, you’ll find it on Craigslist. Log in, check the local computer equipment listings and you should exist able to find what you need, or at least someone who has a obliging lead on the Mac OS X CD or DVD that you suddenly organize yourself needing for a project.

    OS X Snow Leopard install disc

    Unlike eBay, there’s a petite wiggle room for negotiation once you’ve contacted the seller via phone or email, so exercise this to your odds and with any luck, they’ll promote to you with the product.

    Like anything else with Craigslist, exist on the lookout for scams, deals that seem too obliging to exist true, and the like. Contact the seller, remark how you acquire along and with any luck, you can occupy the install disc you necessity by the stay of the day.

    Techie yard sales/Macintosh user groups

    You’ll occupy to dig around and pen them into your calendar, but you’ll find what you necessity here plus Mac-based advice and camaraderie to boot. Growing up in the 1990s, Macintosh User Group techie yard sales were among the greatest things on Earth and allowed you to find almost any piece of hardware or software that you might need. This tradition continues and Apple soundless keeps a list of physical Macintosh User Groups as well as online-only Apple User Groups, so remark what’s near you.

    OS X installation disc

    Once your older Mac OS X CD or DVD is in your hand, set aside some time with Disk Utility and some blank CD-Rs, DVD-Rs, or, in the case of the Mac OS X 10.5 Leopard and Mac OS X 10.6 Snow Leopard operating systems, dual layer DVD-Rs. These are your property now, they’re yours to back up and there’s always the haphazard that someone will exist ecstatic to buy your original disc somewhere down the road.

    To remark on this article and other Macworld content, visit their Facebook page or their Twitter feed.

    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 [8 Certification Exam(s) ]
    ASIS [2 Certification Exam(s) ]
    ASQ [3 Certification Exam(s) ]
    ASTQB [8 Certification Exam(s) ]
    Autodesk [2 Certification Exam(s) ]
    Avaya [101 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 [20 Certification Exam(s) ]
    Certification-Board [10 Certification Exam(s) ]
    Certiport [3 Certification Exam(s) ]
    CheckPoint [43 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-Institute [4 Certification Exam(s) ]
    CSP [1 Certification Exam(s) ]
    CWNA [1 Certification Exam(s) ]
    CWNP [13 Certification Exam(s) ]
    CyberArk [1 Certification Exam(s) ]
    Dassault [2 Certification Exam(s) ]
    DELL [11 Certification Exam(s) ]
    DMI [1 Certification Exam(s) ]
    DRI [1 Certification Exam(s) ]
    ECCouncil [22 Certification Exam(s) ]
    ECDL [1 Certification Exam(s) ]
    EMC [128 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 [14 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 [752 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 [1533 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 [65 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 [68 Certification Exam(s) ]
    Microsoft [375 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 [3 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 [282 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) ]
    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 [135 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

    Killexams 9L0-061 exams | Killexams 9L0-061 cert | Pass4Sure 9L0-061 questions | Pass4sure 9L0-061 | pass-guaratee 9L0-061 | best 9L0-061 test preparation | best 9L0-061 training guides | 9L0-061 examcollection | killexams | killexams 9L0-061 review | killexams 9L0-061 legit | kill 9L0-061 example | kill 9L0-061 example journalism | kill exams 9L0-061 reviews | kill exam ripoff report | review 9L0-061 | review 9L0-061 quizlet | review 9L0-061 login | review 9L0-061 archives | review 9L0-061 sheet | legitimate 9L0-061 | legit 9L0-061 | legitimacy 9L0-061 | legitimation 9L0-061 | legit 9L0-061 check | legitimate 9L0-061 program | legitimize 9L0-061 | legitimate 9L0-061 business | legitimate 9L0-061 definition | legit 9L0-061 site | legit online banking | legit 9L0-061 website | legitimacy 9L0-061 definition | >pass 4 sure | pass for sure | p4s | pass4sure certification | pass4sure exam | IT certification | IT Exam | 9L0-061 material provider | pass4sure login | pass4sure 9L0-061 exams | pass4sure 9L0-061 reviews | pass4sure aws | pass4sure 9L0-061 security | pass4sure coupon | pass4sure 9L0-061 dumps | pass4sure cissp | pass4sure 9L0-061 braindumps | pass4sure 9L0-061 test | pass4sure 9L0-061 torrent | pass4sure 9L0-061 download | pass4surekey | pass4sure cap | pass4sure free | examsoft | examsoft login | exams | exams free | examsolutions | exams4pilots | examsoft download | exams questions | examslocal | exams practice | | | |