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

9L0-403 Mac OS X support Essentials 10.6

Study usher Prepared by Apple Dumps Experts 9L0-403 Dumps and actual Questions

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

9L0-403 exam Dumps Source : Mac OS X support Essentials 10.6

Test Code : 9L0-403
Test designation : Mac OS X support Essentials 10.6
Vendor designation : Apple
exam questions : 71 actual Questions

agree with it or now not, just attempt as soon as!
I passed this examination 9L0-403 nowadays with a ninety two% score. became my major guidance resource, so in case you method to choose this examination, you may totally await this 9L0-403 questions supply. everyone information is applicable, the 9L0-403 questions are correct. im very lighthearted with that is the primary time I used it, but now Im confident unwell forward lower back to this internet site for everyone my 9L0-403 certification checks

Awesome Source! I got Actual test questions of 9L0-403 exam.
tremendous 9L0-403 stuff, 9L0-403 legitimate questions, 9L0-403 accurate solutions. expert exam simulator. i was relieved to observethat this education p.c. has necessary data, simply what I had to know to bypass this examination. I loathe whilst they are trying to sell you stuff you dont exigency inside the first region. This wasnt the case even though, I were given precisely what I needed, and that is demonstrated by the fact that I passed this 9L0-403 exam remaining week, with a almost best score. With this examination enjoy, has received my believe for years to come.

Did you tried these 9L0-403 actual examination pecuniary institution and choose a view at guide.
My exam readiness passed off into 44 proper replies of the aggregate 50 inside the planned 75 mins. It worked simplytruly the brilliant. I were given an attractive savor relying on the dumps for the examination 9L0-403. The aide clarified with compact solutions and reasonable cases.

What are core objectives of 9L0-403 exam?
I choose the advantage of the Dumps supplied via using the killexams.Com and the content material wealthy with information and offers the effectual matters, which I searched exactly for my education. It boosted my spirit and provides wanted self notion to choose my 9L0-403 exam. The material you supplied is so near the actual examination questions. As a non local English speaker I believe been given a hundred and twenty minutes to complete the exam, however I genuinely took 90 5 minutes. Splendid cloth. Thank you.

got no hassle! three days coaching concomitant 9L0-403 today's dumps is required.
Passing the 9L0-403 turned into lengthy due as i used to breathe extraordinarily assiduous with my office assignments. however, when i institute the question & solution by means of the, it certainly stimulated me to choose on the choose a view at. Its been truely supportive and helped transparent everyone my doubts on 9L0-403 topic. I felt very gratified to pass the exam with a large ninety seven% marks. wonderful achievement indeed. And everyone credit is going to you for this terrific help.

Right Place to find 9L0-403 Latest dumps paper.
i believe currently surpassed the 9L0-403 examination with this package. this is a notable solution in case you exigency a quick butdependable practise for 9L0-403 exam. this is a expert degree, so matter on which you quiet want to disburse time gambling with exam questions - practical revel in is prime. yet, as a long route and examination simulations cross, is the winner. Their trying out engine truely simulates the exam, which includes the specific question sorts. It does build matters simpler, and in my case, I accept as precise with it contributed to me getting a 100% score! I couldnt believe my eyes! I knew I did well, but this became a surprise!!

it is proper supply to discover 9L0-403 dumps paper.
this is top notch, I handed my 9L0-403 exam final week, and one exam earlier this month! As many humans factor out here, these brain dumps are a exquisite route to study, either for the examination, or just for your expertise! On my checks, I had masses of questions, wonderful factor I knew everyone of the solutions!!

Found an accurate source for actual 9L0-403 latest dumps of question bank.
even though i believe sufficient background and revel in in IT, I expected the 9L0-403 exam to breathe simpler. has savedmy time and money, without these QAs i would believe failed the 9L0-403 exam. I got careworn for few questions, so I almosthad to guess, but that is my fault. I exigency to believe memorized well and listen the questions higher. Its top to recognise that I exceeded the 9L0-403 examination.

wherein can i salvage support to allocate together and pass 9L0-403 exam?
The believe a view at material of 9L0-403 exam is printed well for salvage prepared internal a brief period of time. Questions & answers made me score 88% in the wake of answering everyone questions ninety mins of time. The examinationpaper 9L0-403 has numerous keep substances in commercial enterprise zone. but it got to breathe extraordinarily tough for me to select the exceptional one. breathe that as it can after my brother asked that I used Questions & solutions, I didnt believe a view at for other books. an poor lot obliged for helping me.

in which can i discover 9L0-403 exam examine help?
With the employ of considerable products of, I had scored 92 percent marks in 9L0-403 certification. I was searching for amenable study material to expand my understanding level. Technical concepts and difficult language of my certification was difficult to understand therefore I was in search of amenable and simple study products. I had forward to know this website for the preparation of professional certification. It was not an simple job but only has made this job simple for me. I am sentiment wonderful for my success and this platform is best for me.

Apple Apple Mac OS X

what is Mac OS? professionals and Cons | explanation | actual Questions and Pass4sure dumps

“Apple” essentially the most advantageous brand in the world produces one of the most most amenable Hardware & application items and Mac OS is just one of them.

in case you don’t understand what's it? then you definitely got here at correct region as a result of birthright here, listed here, we're providing you with every thing you should learn about MacOs.

also study – MacOS vs windows vs Linux: Which one is greater?

what is Mac Os?

The term Mac OS stands for Macintosh operating system.

It’s a UNIX based mostly operating materiel through Apple, completely for MacBooks and iMacs.

out there of pcs, Laptops, and home computers it’s the 2d most frequent desktop OS after home windows.

brief historical past of Mac Os

After the departure of Steve Jobs from Apple, the company suffered a huge loss and board of administrators at Apple determined to bring Steve lower back from next and lead the trade on an intervening time basis.

At WWDC (everywhere Developer’s convention) when Steve announced that builders definitely need a modern version of the Mac OS, and Apple goes to convey it, then he got an incredible circular of applause from the viewers.

This definitely made Steve and his team toil more durable on Mac Os and shortly they proved that Apple really has a possible.

the first initial liberate of Mac Os turned into on March 24, 2001, which is basically 17 years in the past from now.

And till now Mac OS is enhancing with every recent free up.

Myths regarding Mac Os 1. Mac OS is more cozy than windows

many of you may believe heard that Mac Os is greater at ease than home windows. however that’s now not proper.

The market participate of Mac is below 10% which consequences in much less malware and spyware assaults.

actually, the leading motive at the back of here is iMac and Macbook.

These two items working on Mac OS which is a bit of costly as in comparison to windows. So this instantly outcomes in less damage.

also examine– Why precise hackers resolve upon Linux over windows and Mac

2. Mac is built for Artists

Mac Os comes with lots of developed-in artistic and helpful materiel as in comparison to home windows.

for example, iMovie and remaining reduce seasoned raises the event of video modifying.

but that doesn’t intimate that windows are unhealthy.

you can separately download the third party application reminiscent of Adobe finest or Adobe After results for an improved journey.

Doing this on windows pc will deliver you a lot of difficult earned funds.

three. enormously lofty priced

yes operating a Mac OS device may additionally sound expensive but that’s no longer thoroughly authentic.

The can saturate of materials utilized in making iMac and MacBook is additionally very excessive.

consequently, a user finally ends up with a pretty wonderful product with optimum durability when it comes to each hardware and software.

Apple additionally spends billions of dollars in R&D (research and building) which despite the fact blanketed within the saturate of the product.

four. challenging to gain erudition of and Use

this is probably the most denied fantasy by route of any Mac person as a result of Mac OS feels a considerable deal extra effortless to breathe taught and role as compared with another working system.

It has a really person-pleasant person interface.

And additionally draws everyone’s consideration because it is perfectly stacked and organized as in comparison with windows.

5. No want of Antiviruses for Mac

As they mentioned previous attackers goal Mac OS instruments very less in comparison with home windows.

nonetheless it doesn’t intimate that you don’t should install any antiviruses on it.

Don’t breathe fooled via fewer attacks.

As they everyone the time hear in the information that some malware attacked on Mac OS. So It’s stronger to breathe equipped with safeguard.

pros and Cons of Mac Os

Following are one of the crucial professionals (benefits) and Cons (dangers) of Mac OS.

pros 1. BootCamp

Mac OS has a built-in application known as BootCamp.

It permits you to installation windows, Linux or some other working gadget besides OS X.

developing the boot camp in OS X is also very effortless.

And switching between them is even more straightforward now.

2. Works seamlessly with other Apple contraptions

As each Apple gadget is made by means of Apple itself so the hardware and software are totally controlled via them.

It skill they participate the selfsame inner working mechanism.

which means that the iMessage on iPhone works as smooth as on a MacBook or iMac.

This seamless integration of devices sooner or later can provide the greatest person experience and satisfaction.

3. Fewer assaults

As they mentioned earlier Apple has handiest 10% of market participate within the desktop OS, which results in fewer assaults.

The amount of Mac users are pretty much less as in comparison to windows.

So this doesn’t build any feel for hackers to assault Mac OS clients.

here's forward what may will also breathe an potential for some americans because it makes the person reckon Mac Os extra at ease but can also breathe a drawback for some others as a result of on the selfsame time it isn't as a considerable deal ordinary because the home windows.

4. Bloatware Free

basically each home windows computer comes with some sort of Bloatware (Pre-put in application) which slows down the laptop over time.

however Macbook and iMac makes you free from this breathe concerned.

It doesn’t imply that they don’t comprise Pre-put in software.

Mac computer systems believe pre-put in software, however best from Apple and that they don’t unhurried down your device as well.

5. improbable graceful Design

The greatest capabilities of Macbook and iMac is that they're glossy as compared to their competitors.

This makes the employ of Mac OS extra enjoyable.

As a remember of fact, the first MacBook air become the slimmest computer in the world at the moment.

And iMac nonetheless is quiet the slimmest computer version.

6. Mac can examine NTFS or fats

Macs can study NTFS or chunky formatted difficult drives whereas windows can’t examine Mac formatted drives.

You deserve to installation third-birthday party application for that in home windows.

7. improved consumer carrier and After earnings guide

Apple is terribly smartly sought after for it’s most preempt client provider and after sales assist.

they've the optimum client satisfaction mark throughout the globe.

The staff on outlets are smartly knowledgeable and in case you received your machine damaged they build inescapable that they provide you with the very best answer.

additionally read – good 5 reasons for Apple’s Success

Cons 1. less compass and options

The biggest drawback of Mac OS or they should sigh MacBook and iMac is that Apple offers very restricted editions of them.

capability you should disburse the determined quantity by them, most effectual then you definitely should buy their product in any other case no longer.

This makes home windows a go-to altenative for those that are trying to find some cost effectual pc or computing device because of a wide selection of option.

This component restricts the purchaser from purchasing Apple Mac Product.

2. Non-upgradable

an extra predominant drawback of Mac OS powered products is that they are non-upgradable.

potential which you can’t expand the volume of RAM, exchange processor or motherboard, really, that you may’t customise it based on you.

when you received it, you believe to adjust on what you bought.

three. Worse for taking piece in video games

Many people believe that you should’t play high-end games on Macbook and iMac which is one route or the other genuine.

each of these items don't look to breathe made for gaming.

they believe got a really much less quantity of graphics remembrance which isn't adequate for optimal gaming performance.

so that you should give up on this.

4. Fewer add-ons

as it isn't as commonplace as home windows PCs.

The MacBook and iMac exigency to undergo from fewer accessories.

There are very less amount of add-ons producers who create add-ons for them.

This additionally results on what can breathe the advantage consumers of Mac.

5. minute community

as a result of fewer revenue, the MacBook and iMac americans believe a really minute community as compared to home windows users.

Which potential you gained’t savor the aid as a wonderful deal you may on windows notebook.


So this was everyone related to what's Mac Os? their execs and Cons and clarification. if you find it valuable then consequence let us know within the comment area below, we'd love to hear that.

live tuned for more.

Continental pronounces Apple OS compatibility for VDO RoadLog ELD | actual Questions and Pass4sure dumps

Continental has announced that its VDO RoadLog office Solo digital Logging machine (ELD) application is now compatible with Apple computers and laptops. VDO RoadLog Solo consumers can now effect USB key synchronization on concomitant Apple computers and laptops having macOS Sierra (version 10.12 or larger), Apple computer’s Mac OS X working device for Macintosh laptop, laptop, and server computer systems. The client’s laptop or desktop must even believe an purchasable USB port and broadband internet entry.

“Many owner/operators and fleets believe an interest in synchronization to Apple computer systems and laptops, and they at the instant are capable of offer a straightforward manner for them to unite these gadgets,” said Jay McCarthy, Continental’s VDO RoadLog advertising supervisor. “for those who could breathe using different ELDs, here is yet another intuition to build the switch to the VDO RoadLog ELD answer.”

OS X/macOS now older than basic Mac OS | actual Questions and Pass4sure dumps

Older readers might nonetheless suffer in repartee when Macs made the transition to OS X, more currently rebranded to macOS. but if you nonetheless kind of contemplate of that as the ‘new’ OS, as of these days it’s really now been round for longer than everyone the preceding types – collectively and colloquially known as traditional Mac OS …

Jason Snell marked the event in a weblog submit yesterday.

today marks 17 years, one month, and 29 days seeing that Mac OS X 10.0 became released on March 24, 2001. That’s a surprisingly odd quantity—6,269 days—nonetheless it additionally happens to breathe the exact size of time between January 24, 1984 (the launch of the common Macintosh) and March 24, 2001.

In different phrases, these days the Mac’s second operating materiel era, powered with the aid of Mac OS X (now macOS) has been in existence as long as the primary period become.

As he notes, it does trust a tiny on the route you measure these things.

There become a Mac OS X public beta. The funeral for Mac OS 9 wasn’t held unless 2002. basic Mode continued to feature inside Mac OS X except it become eliminated in Mac OS X 10.5 Leopard.

So for beta clients, the milestone may also believe been passed a while back, and for those that held onto Mac OS 9 for a while after OS X launched, it will possibly not yet believe arrived.

Early models of the Macintosh gadget application had no amenable name, with Apple referring only to Macintosh Toolbox ROM and the materiel Folder. It most effectual grew to breathe Macintosh gadget software in 1987, with what became then known as gadget 5. Apple rebranded it to Mac OS in 1996, at device 7.6.

As to the longer term, Snell says that he doesn’t survey a ‘seismic’ shift any time quickly, greater a gradual raise within the borrowing from iOS. however he does admit that a brand recent chip might survey the process occur in every solitary Place once again.

there has been persevered hypothesis about Apple switching from Intel to ARM chips for future Macs, with one fresh file suggesting it might rotate up as soon as 2020. I gave my own view on that conception, concluding that the date could look not likely, however that it's coming quickly.

that you would breathe able to download everyone of the default wallpapers in 5K from 512 Pixels.

by route of Daring Fireball. graphic: 512 Pixels

take a view at 9to5Mac on YouTube for greater Apple information:

9L0-403 Mac OS X support Essentials 10.6

Study usher Prepared by Apple Dumps Experts 9L0-403 Dumps and actual Questions

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

9L0-403 exam Dumps Source : Mac OS X support Essentials 10.6

Test Code : 9L0-403
Test designation : Mac OS X support Essentials 10.6
Vendor designation : Apple
exam questions : 71 actual Questions

agree with it or now not, just attempt as soon as!
I passed this examination 9L0-403 nowadays with a ninety two% score. became my major guidance resource, so in case you method to choose this examination, you may totally await this 9L0-403 questions supply. everyone information is applicable, the 9L0-403 questions are correct. im very lighthearted with that is the primary time I used it, but now Im confident unwell forward lower back to this internet site for everyone my 9L0-403 certification checks

Awesome Source! I got Actual test questions of 9L0-403 exam.
tremendous 9L0-403 stuff, 9L0-403 legitimate questions, 9L0-403 accurate solutions. expert exam simulator. i was relieved to observethat this education p.c. has necessary data, simply what I had to know to bypass this examination. I loathe whilst they are trying to sell you stuff you dont exigency inside the first region. This wasnt the case even though, I were given precisely what I needed, and that is demonstrated by the fact that I passed this 9L0-403 exam remaining week, with a almost best score. With this examination enjoy, has received my believe for years to come.

Did you tried these 9L0-403 actual examination pecuniary institution and choose a view at guide.
My exam readiness passed off into 44 proper replies of the aggregate 50 inside the planned 75 mins. It worked simplytruly the brilliant. I were given an attractive savor relying on the dumps for the examination 9L0-403. The aide clarified with compact solutions and reasonable cases.

What are core objectives of 9L0-403 exam?
I choose the advantage of the Dumps supplied via using the killexams.Com and the content material wealthy with information and offers the effectual matters, which I searched exactly for my education. It boosted my spirit and provides wanted self notion to choose my 9L0-403 exam. The material you supplied is so near the actual examination questions. As a non local English speaker I believe been given a hundred and twenty minutes to complete the exam, however I genuinely took 90 5 minutes. Splendid cloth. Thank you.

got no hassle! three days coaching concomitant 9L0-403 today's dumps is required.
Passing the 9L0-403 turned into lengthy due as i used to breathe extraordinarily assiduous with my office assignments. however, when i institute the question & solution by means of the, it certainly stimulated me to choose on the choose a view at. Its been truely supportive and helped transparent everyone my doubts on 9L0-403 topic. I felt very gratified to pass the exam with a large ninety seven% marks. wonderful achievement indeed. And everyone credit is going to you for this terrific help.

Right Place to find 9L0-403 Latest dumps paper.
i believe currently surpassed the 9L0-403 examination with this package. this is a notable solution in case you exigency a quick butdependable practise for 9L0-403 exam. this is a expert degree, so matter on which you quiet want to disburse time gambling with exam questions - practical revel in is prime. yet, as a long route and examination simulations cross, is the winner. Their trying out engine truely simulates the exam, which includes the specific question sorts. It does build matters simpler, and in my case, I accept as precise with it contributed to me getting a 100% score! I couldnt believe my eyes! I knew I did well, but this became a surprise!!

it is proper supply to discover 9L0-403 dumps paper.
this is top notch, I handed my 9L0-403 exam final week, and one exam earlier this month! As many humans factor out here, these brain dumps are a exquisite route to study, either for the examination, or just for your expertise! On my checks, I had masses of questions, wonderful factor I knew everyone of the solutions!!

Found an accurate source for actual 9L0-403 latest dumps of question bank.
even though i believe sufficient background and revel in in IT, I expected the 9L0-403 exam to breathe simpler. has savedmy time and money, without these QAs i would believe failed the 9L0-403 exam. I got careworn for few questions, so I almosthad to guess, but that is my fault. I exigency to believe memorized well and listen the questions higher. Its top to recognise that I exceeded the 9L0-403 examination.

wherein can i salvage support to allocate together and pass 9L0-403 exam?
The believe a view at material of 9L0-403 exam is printed well for salvage prepared internal a brief period of time. Questions & answers made me score 88% in the wake of answering everyone questions ninety mins of time. The examinationpaper 9L0-403 has numerous keep substances in commercial enterprise zone. but it got to breathe extraordinarily tough for me to select the exceptional one. breathe that as it can after my brother asked that I used Questions & solutions, I didnt believe a view at for other books. an poor lot obliged for helping me.

in which can i discover 9L0-403 exam examine help?
With the employ of considerable products of, I had scored 92 percent marks in 9L0-403 certification. I was searching for amenable study material to expand my understanding level. Technical concepts and difficult language of my certification was difficult to understand therefore I was in search of amenable and simple study products. I had forward to know this website for the preparation of professional certification. It was not an simple job but only has made this job simple for me. I am sentiment wonderful for my success and this platform is best for me.

Unquestionably it is difficult assignment to pick dependable certification questions/answers assets regarding review, reputation and validity since individuals salvage 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 dissension customers forward to us for the brain dumps and pass their exams joyfully and effortlessly. They never trade off on their review, reputation and character on the grounds that killexams review, killexams reputation and killexams customer assurance is imperative to us. Uniquely they deal with review, reputation, sham report objection, trust, validity, report and scam. On the off random that you survey any fake report posted by their rivals with the designation killexams sham report grievance web, sham report, scam, protest or something relish this, simply remember there are constantly poor individuals harming reputation of wonderful administrations because of their advantages. There are a huge number of fulfilled clients that pass their exams utilizing brain dumps, killexams PDF questions, killexams hone questions, killexams exam simulator. Visit, their specimen questions and test brain dumps, their exam simulator and you will realize that is the best brain dumps site.

Back to Bootcamp Menu

1Z0-514 free pdf | CLAD test prep | 1Z0-457 actual questions | CCP questions and answers | 642-162 practice questions | C2140-138 dump | 70-465 brain dumps | 3305 practice test | 650-148 exam prep | 642-979 free pdf | 9L0-063 brain dumps | CBM VCE | M2020-733 free pdf download | C2180-277 bootcamp | C4040-224 dumps questions | HP0-J73 practice test | 000-253 practice test | CMS7 braindumps | 920-330 practice Test | CPSM questions answers |

We are delighted that you are interested in becoming a part of our school. 9L0-403 Brain Dumps with actual Questions intimate you to ought to attempt its free demo, you may survey the natural UI and furthermore you will suppose that its simple to regulate the prep mode. In any case, build sure that, the actual 9L0-403 demur has a bigger compass of questions than the affliction shape. gives you 3 months free updates of 9L0-403 Mac OS X support Essentials 10.6 exam questions. Their certification team is continuously reachable at back cessation who updates the material as and when required.

Just lunge through their Questions bank and sense assured approximately the 9L0-403 test. You will pass your exam at lofty marks or your money back. They believe aggregated a database of 9L0-403 Dumps from actual test so that you can forward up with a random to salvage ready and pass 9L0-403 exam on the necessary enterprise. Simply install their Exam Simulator and salvage ready. You will pass the exam. Huge Discount Coupons and Promo Codes are as beneath;
WC2017 : 60% Discount Coupon for everyone tests on website
PROF17 : 10% Discount Coupon for Orders greater than $69
DEAL17 : 15% Discount Coupon for Orders more than $99
DECSPECIAL : 10% Special Discount Coupon for everyone Orders
Detail is at

We believe their specialists working consistently for the accumulation of genuine exam inquiries of 9L0-403. everyone the pass4sure inquiries and answers of 9L0-403 collected by their group are investigated and updated by their Apple certified group. They remain associated with the hopefuls showed up in the 9L0-403 test to salvage their surveys about the 9L0-403 test, they assemble 9L0-403 exam tips and traps, their experience about the methods utilized in the genuine 9L0-403 exam, the oversights they done in the genuine test and afterward enhance their material in relish manner. When you experience their pass4sure inquiries and answers, you will feel sure about every one of the themes of test and feel that your insight has been significantly made strides. These pass4sure inquiries and answers are not simply hone addresses, these are genuine exam inquiries and answers that are sufficient to pass the 9L0-403 exam at first attempt.

Apple certifications are profoundly required crosswise over IT associations. HR administrators skinny toward competitors who believe a comprehension of the point, as well as having finished certification exams in the subject. everyone the Apple certifications gave on Pass4sure are acknowledged worldwide.

Is it accurate to sigh that you are searching for pass4sure genuine exams inquiries and answers for the Mac OS X support Essentials 10.6 exam? They are here to give you one most updated and character sources is They believe aggregated a database of inquiries from actual exams with a specific cessation goal to give you a random to method and pass 9L0-403 exam on the primary endeavor. everyone preparation materials on the site are up and coming and verified by industry experts.

Why is the Ultimate decision for accreditation readiness?

1. A character detail that support You Prepare for Your Exam: is a definitive readiness hotspot for passing the Apple 9L0-403 exam. They believe deliberately gone along and amassed genuine exam inquiries and answers, updated with indistinguishable recurrence from genuine exam is updated, and investigated by industry specialists. Their Apple guaranteed specialists from different associations are gifted and qualified/certified people who believe verified on each inquisition and acknowledge and clarification area with a specific cessation goal to enable you to comprehend the view and pass the Apple exam. The most criterion approach to method 9L0-403 exam isn't perusing a reading material, however taking practice genuine inquiries and understanding the birthright answers. practice questions support set you up for the ideas, as well As the technique ininquiries and acknowledge alternatives are exhibited amid the genuine exam.

2. simple to employ Mobile Device Access: give to a considerable degree simple to employ access to items. The focal point of the site is to give exact, updated, and to the usher material toward enable you to study and pass the 9L0-403 exam. You can rapidly find the genuine inquiries and solution database. The website is versatile agreeable to permit study anyplace, as long as you believe web association. You can simply stack the PDF in portable and concentrate anyplace.

3. Access the Most Recent Mac OS X support Essentials 10.6 actual Questions and Answers:

Our Exam databases are routinely updated during the time to incorporate the most recent genuine inquiries and answers from the Apple 9L0-403 exam. Having Accurate, legitimate and current genuine exam questions, you will pass your exam on the main attempt!

4. Their Materials is Verified by Industry Experts:

We are doing battle to giving you exact Mac OS X support Essentials 10.6 exam questions and replies, alongside clarifications. They build the estimation of your opportunity and cash, the intuition each inquisition and reply on has been certified by Apple guaranteed specialists. They are exceedingly qualified and ensured people, who believe numerous long periods of expert experience identified with the Apple exams.

5. They Provide everyone Exam Questions and comprise minute Answers with Explanations: Huge Discount Coupons and Promo Codes are as under;
WC2017: 60% Discount Coupon for everyone exams on website
PROF17: 10% Discount Coupon for Orders greater than $69
DEAL17: 15% Discount Coupon for Orders greater than $99
DECSPECIAL: 10% Special Discount Coupon for everyone Orders

Not at everyone relish numerous other exam prep sites, gives updated genuine Apple 9L0-403 exam questions, as well as discrete answers, clarifications and charts. This is faultfinding to support the applicant comprehend the birthright answer, as well as insights about the alternatives that were mistaken.

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

Killexams 650-295 actual questions | Killexams 000-881 braindumps | Killexams C4090-461 mock exam | Killexams BCP-240 dump | Killexams C2140-056 practice questions | Killexams C2140-052 cheat sheets | Killexams 2V0-620 questions answers | Killexams 500-201 braindumps | Killexams 920-258 practice exam | Killexams C2140-058 actual questions | Killexams ST0-086 practice questions | Killexams A8 practice test | Killexams 1Z0-101 free pdf | Killexams 000-579 practice test | Killexams C90-06A study guide | Killexams ECP-103 bootcamp | Killexams 000-N23 free pdf download | Killexams 000-533 questions and answers | Killexams JN0-1330 free pdf | Killexams PD0-001 test prep |

Exam Simulator : Pass4sure 9L0-403 Exam Simulator

View Complete list of Brain dumps

Killexams TT0-201 actual questions | Killexams CTAL-TM_Syll2012 free pdf | Killexams 3I0-010 practice test | Killexams 000-152 pdf download | Killexams E20-617 cheat sheets | Killexams 000-154 dumps | Killexams LOT-959 brain dumps | Killexams C2090-013 braindumps | Killexams HP0-P19 test prep | Killexams 920-167 braindumps | Killexams 1Z0-525 practice questions | Killexams PMI-002 practice test | Killexams 000-136 actual questions | Killexams 000-150 bootcamp | Killexams 310-220 dump | Killexams PK0-003 questions and answers | Killexams 2V0-622 test prep | Killexams 156-310 dumps questions | Killexams HP0-634 test questions | Killexams 2B0-020 cram |

Mac OS X support Essentials 10.6

Pass 4 sure 9L0-403 dumps | 9L0-403 actual questions |

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

Mac OS X 10.6 Snow Leopard: the Ars Technica review reader comments 454 with 269 posters participating, including Story author Share this story
  • Share on Facebook
  • Share on Twitter
  • Share on Reddit
  • Mac OS X 10.4 Tiger: 150+ recent
 featuresMac OS X 10.4 Tiger: 150+ recent features

    In June of 2004, during the WWDC keynote address, Steve Jobs revealed Mac OS X 10.4 Tiger to developers and the public for the first time. When the finished product arrived in April of 2005, Tiger was the biggest, most important, most feature-packed release in the history of Mac OS X by a wide margin. Apple's marketing drive reflected this, touting "over 150 recent features."

    All those recent features took time. Since its introduction in 2001, there had been at least one major release of Mac OS X each year. Tiger took over a year and a half to arrive. At the time, it definitely seemed worth the wait. Tiger was a hit with users and developers. Apple took the lesson to heart and quickly set expectations for the next major release of Mac OS X, Leopard. Through various channels, Apple communicated its intent to lunge from a 12-month to an 18-month release cycle for Mac OS X. Leopard was officially scheduled for "spring 2007."

    As the date approached, Apple's marketing machine trod a predictable path.

    Steve Jobs at WWDC 2007, touting 300 recent
 features in Mac OS X 10.5 LeopardSteve Jobs at WWDC 2007, touting 300 recent features in Mac OS X 10.5 Leopard

    Apple even went so far as to list everyone 300 recent features on its website. As it turns out, "spring" was a bit optimistic. Leopard actually shipped at the cessation of October 2007, nearly two and a half years after Tiger. Did Leopard really believe twice as many recent features as Tiger? That's debatable. What's inescapable is that Leopard included a solid crop of recent features and technologies, many of which they now choose for granted. (For example, believe you had a discussion with a potential Mac user since the release of Leopard without mentioning Time Machine? I certainly haven't.)

    Mac OS X appeared to breathe maturing. The progression was clear: longer release cycles, more features. What would Mac OS X 10.6 breathe like? Would it arrive three and a half years after Leopard? Would it and comprise 500 recent features? A thousand?

    At WWDC 2009, Bertrand Serlet announced a lunge that he described as "unprecedented" in the PC industry.

    Mac OS X 10.6 - Read Bertrand's lips: No recent
 Features!Mac OS X 10.6 - Read Bertrand's lips: No recent Features!

    That's right, the next major release of Mac OS X would believe no recent features. The product designation reflected this: "Snow Leopard." Mac OS X 10.6 would merely breathe a variant of Leopard. Better, faster, more refined, more... uh... snowy.

    This was a risky strategy for Apple. After the rapid-fire updates of 10.1, 10.2, and 10.3 followed by the riot of recent features and APIs in 10.4 and 10.5, could Apple really salvage away with calling a "time out?" I imagine Bertrand was really sweating this announcement up on the stage at WWDC in front of a live audience of Mac developers. Their reaction? instinctive applause. There were even a few hoots and whistles.

    Many of these selfsame developers applauded the "150+ recent features" in Tiger and the "300 recent features" in Leopard at past WWDCs. Now they were applauding zero recent features for Snow Leopard? What explains this?

    It probably helps to know that the "0 recent Features" skid came at the cessation of an hour-long presentation detailing the major recent APIs and technologies in Snow Leopard. It was also quickly followed by a back-pedaling ("well, there is one recent feature...") skid describing the addition of Microsoft Exchange support. In isolation, "no recent features" may look to imply stagnation. In context, however, it served as a developer-friendly affirmation.

    The overall message from Apple to developers was something relish this: "We're adding a ton of recent things to Mac OS X that will support you write better applications and build your existing code rush faster, and we're going to build sure that everyone this recent stuff is rock-solid and as bug-free as possible. We're not going to overextend ourselves adding a raft of recent customer-facing, marketing-friendly features. Instead, we're going to concentrate 100% on the things that affect you, the developers."

    But if Snow Leopard is a love letter to developers, is it a Dear John letter to users? You know, those people that the marketing department might so crudely advert to as "customers." What's in it for them? Believe it or not, the sales pitch to users is actually quite similar. As exhausting as it has been for developers to preserve up with Apple's seemingly never-ending stream of recent APIs, it can breathe just as taxing for customers to remain on top of Mac OS X's features. Exposé, a recent Finder, Spotlight, a recent Dock, Time Machine, a recent Finder again, a recent iLife and iWork almost every year, and on and on. And as much as developers loathe bugs in Apple's APIs, users who experience those bugs as application crashes believe just as much intuition to breathe annoyed.

    Enter Snow Leopard: the release where they everyone salvage a shatter from the new-features/new-bugs treadmill of Mac OS X development. That's the pitch.

    Uncomfortable realities

    But wait a second, didn't I just mention an "hour-long presentation" about Snow Leopard featuring "major recent APIs and technologies?" When speaking to developers, Apple's message of "no recent features" is another route of saw "no recent bugs." Snow Leopard is supposititious to fix faded bugs without introducing recent ones. But nothing says "new bugs, coming birthright up" quite relish major recent APIs. So which is it?

    Similarly, for users, "no recent features" connotes stability and reliability. But if Snow Leopard includes enough changes to the core OS to fill an hour-long overview session at WWDC more than a year before its release, can Apple really build wonderful on this promise? Or will users cessation up with everyone the disadvantages of a feature-packed release relish Tiger or Leopard—the inevitable 10.x.0 bugs, the unfamiliar, untried recent functionality—but without any of the actual recent features?

    Yes, it's enough to build one quite cynical about Apple's actual motivations. To pitch some more fuel on the fire, believe a view at the Mac OS X release timeline below. Next to each release, I've included a list of its most significant features.

    Mac OS X release timelineMac OS X release timeline

    That curve is taking on a decidedly droopy shape, as if it's being weighed down by the ever-increasing number of recent features. (The releases are distributed uniformly on the Y axis.) Maybe you contemplate it's reasonable for the time between releases to stretch out as each one brings a heavier load of goodies than the last, but preserve in repartee the logical consequence of such a curve over the longhorn haul.

    And yeah, there's a tiny upwards kick at the cessation for 10.6, but remember, this is supposititious to breathe the "no recent features" release. Version 10.1 had a similar no-frills focus but took a heck of a lot less time to arrive.

    Looking at this graph, it's difficult not to phenomenon if there's something siphoning resources from the Mac OS X development effort. Maybe, say, some project that's in the first two or three major releases of its life, quiet in that steep, early section of its own timeline graph. Yes, I'm talking about the iPhone, specifically iPhone OS. The iPhone trade has exploded onto Apple's poise sheets relish no other product before, even the iPod. It's also accruing developers at an alarming rate.

    It's not a stretch to imagine that many of the artists and developers who piled on the user-visible features in Mac OS X 10.4 and 10.5 believe been reassigned to iPhone OS (temporarily or otherwise). After all, Mac OS X and iPhone OS participate the selfsame core operating system, the selfsame language for GUI development, and many of the selfsame APIs. Some workforce migration seems inevitable.

    And let's not forget the "Mac OS X" technologies that they later scholarly were developed for the iPhone and just happened to breathe announced for the Mac first (because the iPhone was quiet a secret), relish Core Animation and code signing. Such cabal theories certainly aren't helped by WWDC keynote snubs and other indignities suffered by Mac OS X and the Mac in general since the iPhone arrived on the scene. And so, on top of everything else, Snow Leopard is tasked with restoring some luster to Mac OS X.

    Got everyone that? A nearly two-year development cycle, but no recent features. Major recent frameworks for developers, but few recent bugs. Significant changes to the core OS, but more reliability. And a franchise rejuvenation with few user-visible changes.

    It's enough to rotate a leopard white.

    The price of entry

    Snow Leopard's opening overture to consumers is its price: $29 for those upgrading from Leopard. The debut release of Mac OS X 10.0 and the last four major releases believe everyone been $129, with no special pricing for upgrades. After eight years of this kindhearted of fiscal disciplining, Leopard users may well breathe tempted to stop reading birthright now and just lunge pick up a copy. Snow Leopard's upgrade price is well under the impulse purchase threshold for many people. Twenty-nine dollars plus some minimal level of faith in Apple's capacity to improve the OS with each release, and boom, instant purchase.

    Still here? Good, because there's something else you exigency to know about Snow Leopard. It's an overture of a different sort, less of a come-on and more of a spur. Snow Leopard will only rush on Macs with Intel CPUs. Sorry (again), PowerPC fans, but this is the cessation of the line for you. The transition to Intel was announced over four years ago, and the last recent PowerPC Mac was released in October 2005. It's time.

    But if Snow Leopard is meant to prod the PowerPC holdouts into the Intel age, its "no recent features" stance (and the accompanying need of added visual flair) is working against it. For those running Leopard on a PowerPC-based Mac, there's precious tiny in Snow Leopard to support propel them over the (likely) four-digit price wall of a recent Mac. For PowerPC Mac owners, the threshold for a recent Mac purchase remains mostly unchanged. When their faded Mac breaks or seems too slow, they'll lunge out and buy a recent one, and it'll forward with Snow Leopard pre-installed.

    If Snow Leopard does cessation up motivating recent Mac purchases by PowerPC owners, it will probably breathe the result of resignation rather than inspiration. An Intel-only Snow Leopard is most significant for what it isn't: a further extension of PowerPC life support on the Mac platform.

    The final lively group is owners of Intel-based Macs that are quiet running Mac OS X 10.4 Tiger. Apple shipped Intel Macs with Tiger installed for a tiny over one year and nine months. Owners of these machines who never upgraded to Leopard are not eligible for the $29 upgrade to Snow Leopard. They're also apparently not eligible to purchase Snow Leopard for the traditional $129 price. Here's what Apple has to sigh about Snow Leopard's pricing (emphasis added).

    Mac OS X version 10.6 Snow Leopard will breathe available as an upgrade to Mac OS X version 10.5 Leopard in September 2009 [...] The Snow Leopard solitary user license will breathe available for a suggested retail price of $29 (US) and the Snow Leopard Family Pack, a solitary household, five-user license, will breathe available for a suggested price of $49 (US). For Tiger® users with an Intel-based Mac, the Mac Box Set includes Mac OS X Snow Leopard, iLife® '09 and iWork® '09 and will breathe available for a suggested price of $169 (US) and a Family Pack is available for a suggested price of $229 (US).

    Ignoring the family packs for a moment, this means that Snow Leopard will either breathe free with your recent Mac, $29 if you're already running Leopard, or $169 if you believe an Intel Mac running Tiger. People upgrading from Tiger will salvage the latest version of iLife and iWork in the covenant (if that's the preempt term), whether they want them or not. It sure seems relish there's an obvious Place in this lineup for a $129 offering of Snow Leopard on its own. Then again, perhaps it everyone comes down to how, exactly, Apple enforces the $29 Snow Leopard upgrade policy.

    (As an aside to non-Mac users, note that the non-server version of Mac OS X has no per-user serial number and no activation scheme of any kind, and never has. "Registration" with Apple during the Mac OS X install process is entirely optional and is only used to collect demographic information. Failing to register (or entering entirely bogus registration information) has no consequence on your capacity to rush the OS. This is considered a genuine advantage of Mac OS X, but it also means that Apple has no amenable record of who, exactly, is a "legitimate" owner of Leopard.)

    One possibility was that the $29 Snow Leopard upgrade DVD would only install on top of an existing installation of Leopard. Apple has done this kind of thing before, and it bypasses any proof-of-purchase annoyances. It would, however, interlard a recent problem. In the event of a difficult drive failure or simple decision to reinstall from scratch, owners of the $29 Snow Leopard upgrade would breathe forced to first install Leopard and then install Snow Leopard on top of it, perhaps more than doubling the installation time—and quintupling the annoyance.

    Given Apple's history in this area, no one should believe been surprised to find out that Apple chose the much simpler option: the $29 "upgrade" DVD of Snow Leopard will, in fact, install on any supported Mac, whether or not it has Leopard installed. It will even install onto an entirely blank difficult drive.

    To breathe clear, installing the $29 upgrade to Snow Leopard on a system not already running a properly licensed copy of Leopard is a violation of the end-user license agreement that comes with the product. But Apple's decision is a refreshing change: rewarding honest people with a hassle-free product rather than trying to penalize untruthful people by treating everyone relish a criminal. This "honor system" upgrade enforcement policy partially explains the stout jump to $169 for the Mac Box Set, which ends up re-framed as an honest person's route to salvage iLife and iWork at their accustomed prices, plus Snow Leopard for $11 more.

    And yes, speaking of installing, let's finally salvage on with it.


    Apple claims that Snow Leopard's installation process is "up to 45% faster." Installation times vary wildly depending on the speed, contents, and fragmentation of the target disk, the hasten of the optical drive, and so on. Installation also only happens once, and it's not really an lively process unless something goes terribly wrong. Still, if Apple's going to build such a claim, it's worth checking out.

    To liquidate as many variables as possible, I installed both Leopard and Snow Leopard from one difficult disk onto another (empty) one. It should breathe famed that this change negates some of Snow Leopard's most necessary installation optimizations, which are focused on reducing random data access from the optical disc.

    Even with this disadvantage, the Snow Leopard installation took about 20% less time than the Leopard installation. That's well short of Apple's "up to 45%" claim, but survey above (and don't forget the "up to" weasel words). Both versions installed in less than 30 minutes.

    What is striking about Snow Leopard's installation is how quickly the initial Spotlight indexing process completed. Here, Snow Leopard was 74% faster in my testing. Again, the times are minute (5:49 vs. 3:20) and again, recent installations on blank disks are not the norm. But the shorter wait for Spotlight indexing is worth noting because it's the first indication most users will salvage that Snow Leopard means trade when it comes to performance.

    Another notable thing about installation is what's not installed by default: Rosetta, the facility that allows PowerPC binaries to rush on Intel Macs. Okay Apple, they salvage it. PowerPC is a stiff, bereft of life. It rests in peace. It's rung down the curtain and joined the choir invisible. As far as Apple is concerned, PowerPC is an ex-ISA.

    But not installing Rosetta by default? That seems a tiny harsh, even foolhardy. What's going to occur when everyone those users upgrade to Snow Leopard and then double-click what they've probably long since forgotten is a PowerPC application? Perhaps surprisingly, this is what happens:

    Rosetta: auto-installed for your convenienceRosetta: auto-installed for your convenience

    That's what I saw when I tried to launch Disk Inventory X on Snow Leopard, an application that, yes, I had long since forgotten was PowerPC-only. After I clicked the "Install" button, I actually expected to breathe prompted to insert the installer DVD. Instead, Snow Leopard reached out over the network, pulled down Rosetta from an Apple server, and installed it.

    Rosetta auto-install

    No reboot was required, and Disk Inventory X launched successfully after the Rosetta installation completed. Mac OS X has not historically made much employ of the install-on-demand approach to system software components, but the facility used to install Rosetta appears quite robust. Upon clicking "Install," an XML property list containing a vast catalog of available Mac OS X packages was downloaded. Snow Leopard uses the selfsame facility to download and install printer drivers on demand, saving another trip to the installer DVD. I hope this technique gains even wider employ in the future.

    Installation footprint

    Rosetta aside, Snow Leopard simply puts fewer bits on your disk. Apple claims it "takes up less than half the disk space of the previous version," and that's no lie. A clean, default install (including fully-generated Spotlight indexes) is 16.8 GB for Leopard and 5.9 GB for Snow Leopard. (Incidentally, these numbers are both powers-of-two measurements; survey sidebar.)

    A gigabyte by any other name

    Snow Leopard has another trick up its sleeve when it comes to disk usage. The Snow Leopard Finder considers 1 GB to breathe equal to 109 (1,000,000,000) bytes, whereas the Leopard Finder—and, it should breathe noted, every version of the Finder before it—equates 1 GB to 230 (1,073,741,824) bytes. This has the consequence of making your difficult disk suddenly emerge larger after installing Snow Leopard. For example, my "1 TB" difficult drive shows up in the Leopard Finder as having a capacity of 931.19 GB. In Snow Leopard, it's 999.86 GB. As you might believe guessed, difficult disk manufacturers employ the powers-of-ten system. It's everyone quite a mess, really. Though I forward down pretty firmly on the powers-of-two side of the fence, I can't guilt Apple too much for wanting to match up nicely with the long-established (but quiet dumb, repartee you) difficult disk vendors' capacity measurement standard.

    Snow Leopard has several weight loss secrets. The first is obvious: no PowerPC support means no PowerPC code in executables. Recall the maximum feasible binary payload in a Leopard executable: 32-bit PowerPC, 64-bit PowerPC, x86, and x86_64. Now cross half of those architectures off the list. Granted, very few applications in Leopard included 64-bit code of any kind, but it's a 50% reduction in size for executables no matter how you slice it.

    Of course, not everyone the files in the operating system are executables. There are data files, images, audio files, even a tiny video. But most of those non-executable files believe one thing in common: they're usually stored in compressed file formats. Images are PNGs or JPEGs, audio is AAC, video is MPEG-4, even preference files and other property lists now default to a compact binary format rather than XML.

    In Snow Leopard, other kinds of files climb on board the compression bandwagon. To give just one example, ninety-seven percent of the executable files in Snow Leopard are compressed. How compressed? Let's look:

    % cd Applications/ % ls -l Mail -rwxr-xr-x@ 1 root wheel 0 Jun 18 19:35 Mail

    Boy, that's, uh, pretty small, huh? Is this really an executable or what? Let's check their assumptions.

    % file Applications/ Applications/ empty

    Yikes! What's going on here? Well, what I didn't disclose you is that the commands shown above were rush from a Leopard system looking at a Snow Leopard disk. In fact, everyone compressed Snow Leopard files emerge to accommodate zero bytes when viewed from a pre-Snow Leopard version of Mac OS X. (They view and act perfectly commonplace when booted into Snow Leopard, of course.)

    So, where's the data? The tiny "@" at the cessation of the permissions string in the ls output above (a feature introduced in Leopard) provides a clue. Though the Mail executable has a zero file size, it does believe some extended attributes:

    % xattr -l Applications/ 0000 00 00 01 00 00 2C F5 F2 00 2C F4 F2 00 00 00 32 .....,...,.....2 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ (184,159 lines snipped) 2CF610 63 6D 70 66 00 00 00 0A 00 01 FF FF 00 00 00 00 cmpf............ 2CF620 00 00 00 00 .... 0000 66 70 6D 63 04 00 00 00 A0 82 72 00 00 00 00 00 fpmc......r.....

    Ah, there's everyone the data. But wait, it's in the resource fork? Weren't those deprecated about eight years ago? Indeed they were. What you're witnessing here is yet another addition to Apple's favorite file system hobbyhorse, HFS+.

    At the dawn of Mac OS X, Apple added journaling, symbolic links, and difficult links. In Tiger, extended attributes and access control lists were incorporated. In Leopard, HFS+ gained support for difficult links to directories. In Snow Leopard, HFS+ learns another recent trick: per-file compression.

    The presence of the assign is the first hint that this file is compressed. This assign is actually hidden from the xattr command when booted into Snow Leopard. But from a Leopard system, which has no erudition of its special significance, it shows up as simple as day.

    Even more information is revealed with the support of Mac OS X Internals guru Amit Singh's hfsdebug program, which has quietly been updated for Snow Leopard.

    % hfsdebug /Applications/ ... compression magic = cmpf compression kind = 4 (resource fork has compressed data) uncompressed size = 7500336 bytes

    And sure enough, as they saw, the resource fork does indeed accommodate the compressed data. Still, why the resource fork? It's everyone piece of Apple's usual, ingenious backward-compatibility gymnastics. A recent instance is the route that difficult links to directories exhibit up—and function—as aliases when viewed from a pre-Leopard version of Mac OS X.

    In the case of a HFS+ compression, Apple was (understandably) unable to build pre-Snow Leopard systems read and interpret the compressed data, which is stored in ways that did not exist at the time those earlier operating systems were written. But rather than letting applications (and users) running on pre-10.6 systems choke on—or worse, debase through modification—the unexpectedly compressed file contents, Apple has chosen to bury the compressed data instead.

    And where can the complete contents of a potentially large file breathe hidden in such a route that pre-Snow Leopard systems can quiet copy that file without the loss of data? Why, in the resource fork, of course. The Finder has always correctly preserved Mac-specific metadata and both the resource and data forks when piteous or duplicating files. In Leopard, even the lowly cp and rsync commands will consequence the same. So while it may breathe a tiny bit spooky to survey everyone those "empty" 0 KB files when looking at a Snow Leopard disk from a pre-Snow Leopard OS, the random of data loss is small, even if you lunge or copy one of the files.

    The resource fork isn't the only Place where Apple has decided to smuggle compressed data. For smaller files, hfsdebug shows the following:

    % hfsdebug /etc/asl.conf ... compression magic = cmpf compression kind = 3 (xattr has compressed data) uncompressed size = 860 bytes

    Here, the data is minute enough to breathe stored entirely within an extended attribute, albeit in compressed form. And then, the final frontier:

    % hfsdebug /Volumes/Snow Time/Applications/ ... compression magic = cmpf compression kind = 3 (xattr has inline data) uncompressed size = 8 bytes

    That's right, an entire file's contents stored uncompressed in an extended attribute. In the case of a criterion PkgInfo file relish this one, those contents are the four-byte classic Mac OS kind and creator codes.

    % xattr -l Applications/ 0000 66 70 6D 63 03 00 00 00 08 00 00 00 00 00 00 00 fpmc............ 0010 FF 41 50 50 4C 65 6D 61 6C .APPLemal

    There's quiet the selfsame "fpmc..." preamble seen in everyone the earlier examples of the attribute, but at the cessation of the value, the expected data appears as simple as day: kind code "APPL" (application) and creator code "emal" (for the Mail application—cute, as per classic Mac OS tradition).

    You may breathe wondering, if this is everyone about data compression, how does storing eight uncompressed bytes plus a 17-byte preamble in an extended assign deliver any disk space? The acknowledge to that lies in how HFS+ allocates disk space. When storing information in a data or resource fork, HFS+ allocates space in multiples of the file system's allocation shroud size (4 KB, by default). So those eight bytes will choose up a minimum of 4,096 bytes if stored in the traditional way. When allocating disk space for extended attributes, however, the allocation shroud size is not a factor; the data is packed in much more tightly. In the end, the actual space saved by storing those 25 bytes of data in an extended assign is over 4,000 bytes.

    But compression isn't just about saving disk space. It's also a classic instance of trading CPU cycles for decreased I/O latency and bandwidth. Over the past few decades, CPU performance has gotten better (and computing resources more plentiful—more on that later) at a much faster rate than disk performance has increased. Modern difficult disk hunt times and rotational delays are quiet measured in milliseconds. In one millisecond, a 2 GHz CPU goes through two million cycles. And then, of course, there's quiet the actual data transfer time to consider.

    Granted, several levels of caching throughout the OS and hardware toil mightily to bury these delays. But those bits believe to forward off the disk at some point to fill those caches. Compression means that fewer bits believe to breathe transferred. Given the almost comical glut of CPU resources on a modern multi-core Mac under commonplace use, the total time needed to transfer a compressed payload from the disk and employ the CPU to decompress its contents into remembrance will quiet usually breathe far less than the time it'd choose to transfer the data in uncompressed form.

    That explains the potential performance benefits of transferring less data, but the employ of extended attributes to store file contents can actually build things faster, as well. It everyone has to consequence with data locality.

    If there's one thing that slows down a difficult disk more than transferring a large amount of data, it's piteous its heads from one piece of the disk to another. Every lunge means time for the head to start moving, then stop, then ensure that it's correctly positioned over the desired location, then wait for the spinning disk to allocate the desired bits beneath it. These are everyone real, physical, piteous parts, and it's improbable that they consequence their dance as quickly and efficiently as they do, but physics has its limits. These motions are the actual performance killers for rotational storage relish difficult disks.

    The HFS+ volume format stores everyone its information about files—metadata—in two primary locations on disk: the Catalog File, which stores file dates, permissions, ownership, and a host of other things, and the Attributes File, which stores "named forks."

    Extended attributes in HFS+ are implemented as named forks in the Attributes File. But unlike resource forks, which can breathe very large (up to the maximum file size supported by the file system), extended attributes in HFS+ are stored "inline" in the Attributes File. In practice, this means a circumscribe of about 128 bytes per attribute. But it also means that the disk head doesn't exigency to choose a trip to another piece of the disk to salvage the actual data.

    As you can imagine, the disk blocks that build up the Catalog and Attributes files are frequently accessed, and therefore more likely than most to breathe in a cache somewhere. everyone of this conspires to build the complete storage of a file, including both its metadata in its data, within the B-tree-structured Catalog and Attributes files an overall performance win. Even an eight-byte payload that balloons to 25 bytes is not a concern, as long as it's quiet less than the allocation shroud size for commonplace data storage, and as long as it everyone fits within a B-tree node in the Attributes File that the OS has to read in its entirety anyway.

    There are other significant contributions to Snow Leopard's reduced disk footprint (e.g., the removal of unnecessary localizations and "designable.nib" files) but HFS+ compression is by far the most technically interesting.

    Installer intelligence

    Apple makes two other lively promises about the installation process:

    Snow Leopard checks your applications to build sure they're compatible and sets aside any programs known to breathe incompatible. In case a power outage interrupts your installation, it can start again without losing any data.

    The setting aside of "known incompatible" applications is undoubtedly a response to the "blue screen" problems some users encountered when upgrading from Tiger to Leopard two years ago, which was caused by the presence of incompatible—and some would sigh "illicit"—third-party system extensions. I believe a decidedly pragmatic view of such software, and I'm lighthearted to survey Apple taking a similarly practical approach to minimizing its impact on users.

    Apple can't breathe expected to detect and disable everyone potentially incompatible software, of course. I suspect only the most Popular or highest profile risky software is detected. If you're a developer, this installer feature may breathe a wonderful route to find out if you're on Apple's sh*t list.

    As for continuing an installation after a power failure, I didn't believe the guts to test this feature. (I also believe a UPS.) For long-running processes relish installation, this kindhearted of added robustness is welcome, especially on battery-powered devices relish laptops.

    I mention these two details of the installation process mostly because they highlight the kinds of things that are feasible when developers at Apple are given time to polish their respective components of the OS. You might contemplate that the installer team would breathe hard-pressed to forward up with enough to consequence during a nearly two-year development cycle. That's clearly not the case, and customers will reap the benefits.

    Snow Leopard's recent looks

    I've long yearned for Apple to build a antiseptic break, at least visually, from Mac OS X's Aqua past. Alas, I will breathe waiting a bit longer, because Snow Leopard ushers in no such revolution. And yet here I am, beneath a familiar-looking section heading that seems to betoken otherwise. The veracity is, Snow Leopard actually changes the appearance of nearly every pixel on your screen—but not in the route you might imagine.

    Since the dawn of color on the Macintosh, the operating system has used a default output gamma correction value of 1.8. Meanwhile, Windows—aka the rest of the world—has used a value of 2.2. Though this may not look significant to anyone but professional graphics artists, the disagreement is usually patent to even a casual observer when viewing the selfsame image on both kinds of displays side by side.

    Though Mac users will probably instinctively prefer the 1.8 gamma image that they're used to, Apple has decided that this historical disagreement is more grief than it's worth. The default output gamma correction value in Snow Leopard is now 2.2, just relish everyone else. Done and done.

    If they notice at all, users will likely experience this change as a sentiment that the Snow Leopard user interface has a bit more contrast than Leopard's. This is reinforced by the recent default desktop background, a re-drawn, more saturated version of Leopard's default desktop. (Note that these are two entirely different images and not an attempt to demonstrate the effects of different gamma correction settings.)

    LeopardLeopard Snow LeopardSnow Leopard Dock Exposé spotlight effectDock Exposé spotlight effect

    But even beyond color correction, precise to form, Apple could not resist adding a few graphical tweaks to the Snow Leopard interface. The most patent changes are related to the Dock. First, there's the recent "spotlight" view triggered by a click-and-hold on an application icon in the Dock. (This activates Exposé, but only for the windows belonging to the application that was clicked. More later.)

    Furthermore, any and everyone pop-up menus on the Dock—and only on the Dock—have a unique view in Snow Leopard, complete with a custom selection appearance (which, for a change, does a passable job of matching the system-wide selection appearance setting).

    New Dock menu appearance. Mmmm… arbitrary.New Dock menu appearance. Mmmm… arbitrary.

    For Mac users of a inescapable age, these menus may bring to repartee Apple's Hi-Tech appearance theme from the bad-old days of Copland. They're actually considerably more subtle, however. Note the translucent edges which accentuate the rounded corners. The gradient on the selection highlight is also admirably restrained.

    Nevertheless, this is an entirely recent view for a solitary (albeit commonly used) application, and it does clash a bit with the default "slanty, shiny shelf" appearance of the Dock. But I've already had my sigh about that, and more. If the oath of Snow Leopard's appearance was to "first, consequence no harm," then I contemplate I'm inclined to give it a passing grade—almost.

    If I had to characterize what's wrong with Snow Leopard's visual additions with just two words, it'd breathe these: everything fades. Apple has sprinkled Core Animation fairy dust over seemingly every application in Snow Leopard. If any piece of the user interface appears, disappears, or changes in any significant way, it's accompanied by an animation and one or more fades.

    In moderation, such effects are fine. But in several instances, Snow Leopard crosses the line. Or rather, it crosses my line, which, it should breathe noted, is located far inside the territories of Candy Land. Others with a much lower tolerance for animations who are already galled by the frippery in Leopard and earlier releases will find tiny to love in Snow Leopard's visual changes.

    The one that really drove me over the edge is the fussy tiny dance of the filename area that occurs in the Finder (surprise!) when renaming a file on the desktop. There's just something about so many cross-fades, color changes, and text offsets occurring so rapidly and concentrated into such a minute area that makes me want to scream. And whether or not I'm actually waiting for these animations to finish before I can continue to employ my computer, it certainly feels that route sometimes.

    Still, I must unenthusiastically call that most commonplace people (i.e., the ones who will not read this entire article) will either find these added visual touches delightful, or (much more likely) not notice them at all.


    Animation aside, the visual sameness of Snow Leopard presents a bit of a marketing challenge for Apple. Even beyond the obvious problem of how to promote an operating system upgrade with "no recent features" to consumers, there's the issue of how to salvage people to notice that this recent product exists at all.

    In the run-up to Snow Leopard's release, Apple stuck to a modified version of Leopard's outer space theme. It was in the keynote slideshows, on the WWDC banners, on the developer release DVDs, and everyone over the Mac OS X section of Apple's website. The header image from Apple's Mac OS X webpage as of a week before Snow Leopard's release appears below. It's pretty slash and dried: outer space, stars, moneyed purple nebula, lens flare.

    Snow. The final frontier.Snow. The final frontier.

    Then came the golden master of Snow Leopard, which, in a pleasant change from past releases, was distributed to developers a few weeks before Snow Leopard hit the shelves. Its installer introduced an entirely different view which, as it turns out, was carried over to the retail packaging. For a change, let's line up the discs instead of the packaging (which is rapidly shrinking to barely hem the disc anyway). Here's Mac OS X 10.0 through 10.6, top to bottom and left to right. (The 10.0 and 10.1 discs looked essentially identical and believe been coalesced.)

    One of these things is not relish the others…One of these things is not relish the others…

    Yep, it's a snow leopard. With actual snow on it. It's a bit on the nose for my taste, but it's not without its charms. And it does believe one stout thing going for it: it's immediately recognizable as something recent and different. "Unmistakable" is how I'd sum up the packaging. Eight years of the giant, centered, variously adorned "X" and then boom: a cat. There's tiny random that anyone who's seen Leopard sitting on the shelf of their local Apple store for the past two years will fail to notice that this is a recent product.

    (If you'd relish your own picture of Snowy the snow leopard (that's right, I've named him), Apple was kindhearted enough to comprise a desktop background image with the OS. Self-loathing Windows users may download it directly.)

    Warning: internals ahead

    We've arrived at the start of the customary "internals" section. Snow Leopard is everyone about internal changes, and this is reflected in the content of this review. If you're only interested in the user-visible changes, you can skip ahead, but you'll breathe missing out on the meat of this review and the heart of Apple's recent OS.

    64-bit: the road leads ever on

    Mac OS X started its journey to 64-bit back in 2003 with the release of Panther, which included the bare minimum support for the then-new PowerPC G5 64-bit CPU. In 2005, Tiger brought with it the capacity to create precise 64-bit processes—as long as they didn't link with any of the GUI libraries. Finally, Leopard in 2007 included support for 64-bit GUI applications. But again, there was a caveat: 64-bit support extended to Cocoa applications only. It was, effectively, the cessation of the road for Carbon.

    Despite Leopard's seemingly impressive 64-bit bona fides, there are a few more steps before Mac OS X can compass complete 64-bit nirvana. The diagrams below illustrate.

    64-bit in Mac OS X 10.4 Tiger 64-bit in Mac OS X 10.5 Leopard 64-bit in Mac OS X 10.6 Snow Leopard Mac OS X 10.4 Tiger Mac OS X 10.5 Leopard Mac OS X 10.6 Snow Leopard

    As we'll see, everyone that yellow in the Snow Leopard diagram represents its capability, not necessarily its default mode of operation.


    Snow Leopard is the first version of Mac OS X to ship with a 64-bit kernel ("K64" in Apple's parlance), but it's not enabled by default on most systems. The intuition for this this is simple. Recall that there's no "mixed mode" in Mac OS X. At runtime, a process is either 32-bit or 64-bit, and can only load other code—libraries, plug-ins, etc.—of the selfsame kind.

    An necessary class of plug-ins loaded by the kernel is device drivers. Were Snow Leopard to default to the 64-bit kernel, only 64-bit device drivers would load. And seeing as Snow Leopard is the first version of Mac OS X to comprise a 64-bit kernel, there'd breathe precious few of those on customers' systems on launch day.

    And so, by default, Snow Leopard boots with a 64-bit kernel only on Xserves from 2008 or later. I guess the assumption is that everyone of the devices commonly attached to an Xserve will breathe supported by 64-bit drivers supplied by Apple in Snow Leopard itself.

    Perhaps surprisingly, not everyone Macs with 64-bit processors are even able to boot into the 64-bit kernel. Though this may change in subsequent point releases of Snow Leopard, the table below lists everyone the Macs that are either capable of or default to booting K64. (To find the "Model name" of your Mac, select "About This Mac" from the Apple menu, then click the "More info…" button and read the "Model Identifier" line in the window that appears.)

    Product Model name K64 status Early 2008 Mac Pro MacPro3,1 Capable Early 2008 Xserve Xserve2,1 Default MacBook Pro 15"/17" MacBookPro4,1 Capable iMac iMac8,1 Capable UniBody MacBook Pro 15" MacBookPro5,1 Capable UniBody MacBook Pro 17" MacBookPro5,2 Capable Mac Pro MacPro4,1 Capable iMac iMac9,1 Capable Early 2009 Xserve Xserve3,1 Default

    For everyone K64-capable Macs, boot while holding down "6" and "4" keys simultaneously to select the 64-bit kernel. For a more permanent solution, employ the nvram command to add arch=x86_64 to your boot-args string, or edit the file /Library/Preferences/SystemConfiguration/ and add arch=x86_64 to the Kernel Flags string:

    ... <key>Kernel</key> <string>mach_kernel</string> <key>Kernel Flags</key> <string>arch=x86_64</string> ...

    To switch back to the 32-bit kernel, hold down the "3" and "2" keys during boot, or employ one of the techniques above, replacing "x86_64" with "i386".

    We've already discussed why, at least initially, you probably won't want to boot into K64. But as Snow Leopard adoption ramps up and 64-bit updates of existing kernel extensions become available, why might you actually want to employ the 64-bit kernel?

    The first intuition has to consequence with RAM, and not in the route you might think. Though Leopard uses a 32-bit kernel, Macs running Leopard can accommodate and employ far more RAM than the 4 GB circumscribe the "32-bit" qualifier might look to imply. But as RAM sizes increase, there's another concern: address space depletion—not for applications, but for the kernel itself.

    As a 32-bit process, the kernel itself is limited to a 32-bit (i.e., 4GB) address space. That may not look relish a problem; after all, should the kernel really exigency more than 4GB of remembrance to consequence its job? But remember that piece of the kernel's job is to track and manage system memory. The kernel uses a 64-byte structure to track the status of each 4KB page of RAM used on the system.

    That's 64 bytes, not kilobytes. It hardly seems relish a lot. But now reckon a Mac in the not-too-distant future containing 96GB of RAM. (If this sounds ridiculous to you, contemplate of how ridiculous the 8GB of RAM in the Mac I'm typing on birthright now would believe sounded to you five years ago.) Tracking 96GB of RAM requires 1.5GB of kernel address space. Using more than a third of the kernel's address space just to track remembrance is a pretty uncomfortable situation.

    A 64-bit kernel, on the other hand, has a virtually unlimited kernel address space (16 exabytes). K64 is an inevitable necessity, given the rapidly increasing size of system memory. Though you may not exigency it today on the desktop, it's already common for servers to believe double-digit gigabytes of RAM installed.

    The other thing K64 has going for it is speed. The x86 instruction set architecture has had a bit of a tortured history. When designing the x86-64 64-bit extension of the x86 architecture, AMD took the opportunity to leave behind some of the ugliness of the past and comprise more modern features: more registers, recent addressing modes, non-stack-based floating point capabilities, etc. K64 reaps these benefits. Apple makes the following claims about its performance:

  • 250% faster system call entry point
  • 70% faster user/kernel remembrance copy
  • Focused benchmarking would suffer these out, I'm sure. But in daily use, you're unlikely to breathe able to assign any particular performance boost to the kernel. contemplate of K64 as removing bottlenecks from the few (usually server-based) applications that actually consequence exercise these aspects of the kernel heavily.

    If it makes you feel better to know that your kernel is operating more efficiently, and that, were you to actually believe 96GB of RAM installed, you would not risk starving the kernel of address space, and if you don't believe any 32-bit drivers that you absolutely exigency to use, then by everyone means, boot into the 64-bit kernel.

    For everyone else, my counsel is to breathe lighthearted that K64 will breathe ready and waiting for you when you eventually consequence exigency it—and please consequence cheer everyone the vendors that build kernel extensions that you keeping about to add K64 support as soon as possible.

    Finally, this is worth repeating: please preserve in repartee that you consequence not exigency to rush the 64-bit kernel in order to rush 64-bit applications or install more than 4GB of RAM in your Mac. Applications rush just fine in 64-bit mode on top of the 32-bit kernel, and even in earlier versions of Mac OS X it's been feasible to install and choose advantage of much more than 4GB of RAM.

    64-bit applications

    While Leopard may believe brought with it support for 64-bit GUI applications, it actually included very few of them. In fact, by my count, only two 64-bit GUI applications shipped with Leopard: Xcode (an optional install) and Chess. And though Leopard made it feasible for third-party developers to produce 64-bit (albeit Leopard-only) GUI applications, very few have—sometimes due to hapless realities, but most often because there's been no wonderful intuition to consequence so, abandoning users of Mac OS X 10.4 or earlier in the process.

    Apple is now pushing the 64-bit transition much harder. This starts with leading by example. Snow Leopard ships with four end-user GUI applications that are not 64-bit: iTunes, Grapher, Front Row, and DVD Player. Everything else is 64-bit. The Finder, the Dock, Mail, TextEdit, Safari, iChat, Address Book, Dashboard, support Viewer, Installer, Terminal, Calculator—you designation it, it's 64-bit.

    The second stout carrot (or stick, depending on how you view at it) is the continued need of 32-bit support for recent APIs and technologies. Leopard started the trend, leaving deprecated APIs behind and only porting the recent ones to 64-bit. The improved Objective-C 2.0 runtime introduced in Leopard was also 64-bit-only.

    Snow Leopard continues along similar lines. The Objective-C 2.1 runtime's non-fragile instance variables, exception model unified with C++, and faster vtable dispatch remain available only to 64-bit applications. But the most significant recent 64-bit-only API is QuickTime X—significant enough to breathe addressed separately, so remain tuned.

    64-bits or bust

    All of this is Apple's not-so-subtle route of telling developers that the time to lunge to 64-bit is now, and that 64-bit should breathe the default for everyone recent applications, whether a developer thinks it's "needed" or not. In most cases, these recent APIs believe no intrinsic connection to 64-bit. Apple has simply chosen to employ them as additional forms of persuasion.

    Despite everyone of the above, I'd quiet call Snow Leopard merely the penultimate step in Mac OS X's journey to breathe 64-bit from top to bottom. I fully await Mac OS X 10.7 to boot into the 64-bit kernel by default, to ship with 64-bit versions of everyone applications, plug-ins, and kernel extensions, and to leave even more legacy and deprecated APIs to fade away in the land of 32-bit.

    QuickTime X

    Apple did something a bit odd in Leopard when it neglected to port the C-based QuickTime API to 64-bit. At the time, it didn't look relish such a stout deal. Mac OS X's transition to 64-bit had already spanned many years and several major versions. One could imagine that it just wasn't yet QuickTime's rotate to lunge 64-bit.

    As it turns out, my terse but pessimistic assessment of the situation at the time was accurate: QuickTime got the "Carbon treatment". relish Carbon, the venerable QuickTime API that they know and love will not breathe making the transition to 64-bit—ever.

    To breathe clear, QuickTime the technology and QuickTime the brand will most definitely breathe coming to 64-bit. What's being left behind in 32-bit-only shape is the C-based API introduced in 1991 and built upon for 18 years thereafter. Its replacement in the world of 64-bit in Snow Leopard is the aptly named QuickTime X.

    The "X" in QuickTime X, relish the one in in Mac OS X, is pronounced "ten." This is but the first of many eerie parallels. relish Mac OS X before it, QuickTime X:

  • aims to build a antiseptic shatter from its predecessor
  • is based on technology originally developed for another platform
  • includes transparent compatibility with its earlier incarnation
  • promises better performance and a more modern architecture
  • lacks many necessary features in its initial release
  • Maximum available Mac CPU hasten (MHz)Maximum available Mac CPU hasten (MHz)

    Let's choose these one at a time. First, why is a antiseptic shatter needed? allocate simply, QuickTime is old—really old. The horribly blocky, postage-stamp-size video displayed by its initial release in 1991 was considered a technological tour de force.

    At the time, the fastest Macintosh money could buy contained a 25 MHz CPU. The ridiculous chart to the birthright is meant to hammer home this point. Forward-thinking design can only salvage you so far. The shape of the world a technology is born into eventually, inevitably dictates its fate. This is especially precise for long-lived APIs relish QuickTime with a tenacious bent towards backward compatibility.

    As the first successful implementation of video on a personal computer, it's frankly improbable that the QuickTime API has lasted as long as it has. But the world has moved on. Just as Mac OS institute itself mired in a ghetto of cooperative multitasking and unprotected memory, QuickTime limps into 2009 with antiquated notions of concurrency and subsystem layering baked into its design.

    When it came time to write the video-handling code for the iPhone, the latest version of QuickTime, QuickTime 7, simply wasn't up to the task. It had grown too bloated and inefficient during its life on the desktop, and it lacked wonderful support for the GPU-accelerated video playback necessary to handle modern video codecs on a handheld (even with a CPU sixteen times the clock hasten of any available in a Mac when QuickTime 1.0 was released). And so, Apple created a tight, modern, GPU-friendly video playback engine that could proper comfortably within the RAM and CPU constraints of the iPhone.

    Hmm. An aging desktop video API in exigency of a replacement. A fresh, recent video library with wonderful performance even on (comparatively) anemic hardware. Apple connected the dots. But the trick is always in the transition. Happily, this is Apple's forte. QuickTime itself has already lived on three different CPU architectures and three entirely different operating systems.

    The switch to 64-bit is yet another (albeit less dramatic) inflection point, and Apple has chosen it to mark the limit between the faded QuickTime 7 and the recent QuickTime X. It's done this in Snow Leopard by limiting everyone employ of QuickTime by 64-bit applications to the QTKit Objective-C framework.

    QTKit's recent world order

    QTKit is not new; it began its life in 2005 as a more native-feeling interface to QuickTime 7 for Cocoa applications. This extra layer of abstraction is the key to the QuickTime X transition. QTKit now hides within its object-oriented walls both QuickTime 7 and QuickTime X. Applications employ QTKit as before, and behind the scenes QTKit will choose whether to employ QuickTime 7 or QuickTime X to fulfill each request.

    If QuickTime X is so much better, why doesn't QTKit employ it for everything? The acknowledge is that QuickTime X, relish its Mac OS X namesake, has very limited capabilities in its initial release. While QuickTime X supports playback, capture, and exporting, it does not support general-purpose video editing. It also supports only "modern" video formats—basically, anything that can breathe played by an iPod, iPhone, or Apple TV. As for other video codecs, well, you can forget about handling them with plug-ins because QuickTime X doesn't support those either.

    For every one of the cases where QuickTime X is not up to the job, QuickTime 7 will fill in. Cutting, copying, and pasting portions of a video? QuickTime 7. Extracting individual tracks from a movie? QuickTime 7. Playing any movie not natively supported by an existing Apple handheld device? QuickTime 7. Augmenting QuickTime's codec support using a plug-in of any kind? You guessed it: QuickTime 7.

    But wait a second. If QTKit is the only route for a 64-bit application to employ QuickTime, and QTKit multiplexes between QuickTime 7 and QuickTime X behind the scenes, and QuickTime 7 is 32-bit-only, and Mac OS X does not support "mixed mode" processes that can execute both 32-bit and 64-bit code, then how the heck does a 64-bit process consequence anything that requires the QuickTime 7 back-end?

    To find out, fire up the recent 64-bit QuickTime Player application (which will breathe addressed separately later) and open a movie that requires QuickTime 7. Let's say, one that uses the Sorenson video codec. (Remember that? wonderful times.) sure enough, it plays just fine. But search for "QuickTime" in the Activity Monitor application and you'll survey this:

    Pretty sneaky, sis: 32-bit QTKitServer processPretty sneaky, sis: 32-bit QTKitServer process

    And the acknowledge is revealed. When a 64-bit application using QTKit requires the services of the 32-bit-only QuickTime 7 back-end, QTKit spawns a separate 32-bit QTKitServer process to consequence the toil and communicate the results back to the originating 64-bit process. If you leave Activity Monitor open while using the recent QuickTime Player application, you can watch the QTKitServer processes forward and lunge as needed. This is everyone handled transparently by the QTKit framework; the application itself exigency not breathe conscious of these machinations.

    Yes, it's going to breathe a long, long time before QuickTime 7 disappears completely from Mac OS X (at least Apple was kindhearted enough not to call it "QuickTime Classic"), but the path forward is clear. With each recent release of Mac OS X, await the capabilities of QuickTime X to expand, and the number of things that quiet require QuickTime 7 to decrease. In Mac OS X 10.7, for example, I imagine that QuickTime X will gain support for plug-ins. And surely by Mac OS X 10.8, QuickTime X will believe complete video editing support. everyone this will breathe happening beneath the unifying facade of QTKit until, eventually, the QuickTime 7 back-end is no longer needed at all.

    Say what you mean

    In the meantime, perhaps surprisingly, many of the current limitations of QuickTime X actually highlight its unique advantages and inform the evolving QTKit API. Though there is no direct route for a developer to request that QTKit employ the QuickTime X back-end, there are several indirect means to influence the decision. The key is the QTKit API, which relies heavily on the concept of intent.

    QuickTime versions 1 through 7 employ a solitary representation of everyone media resources internally: a Movie object. This representation includes information about the individual tracks that build up the movie, the sample tables for each track, and so on—all the information QuickTime needs to understand and maneuver the media.

    This sounds considerable until you realize that to consequence anything with a media resource in QuickTime requires the construction of this comprehensive Movie object. reckon playing an MP3 file with QuickTime, for example. QuickTime must create its internal Movie demur representation of the MP3 file before it can launch playback. Unfortunately, the MP3 container format seldom contains comprehensive information about the structure of the audio. It's usually just a stream of packets. QuickTime must laboriously scan and parse the entire audio stream in order to complete the Movie object.

    QuickTime 7 and earlier versions build this process less painful by doing the scanning and parsing incrementally in the background. You can survey this in many QuickTime-based player applications in the shape of a progress bar overlaid on the movie controller. The image below shows a 63MB MP3 podcast loading in the Leopard version of QuickTime Player. The shaded portion of the movie timeline slowly fills the dotted area from left to right.

    QuickTime 7 doing more toil than necessary

    QuickTime 7 doing more toil than necessary

    Though playback can launch almost immediately (provided you play from the beginning, that is) it's worthwhile to choose a step back and reckon what's going on here. QuickTime is creating a Movie demur suitable for any operation that QuickTime can perform: editing, track extraction or addition, exporting, you designation it. But what if everyone I want to consequence is play the file?

    The grief is, the QuickTime 7 API lacks a route to express this kindhearted of intent. There is no route to sigh to QuickTime 7, "Just open this file as quickly as feasible so that I can play it. Don't bother reading every solitary byte of the file from the disk and parsing it to determine its structure just in case I resolve to edit or export the content. That is not my intent. Please, just open it for playback."

    The QTKit API in Snow Leopard provides exactly this capability. In fact, the only route to breathe eligible for the QuickTime X back-end at everyone is to explicitly express your intent not to consequence anything QuickTime X cannot handle. Furthermore, any attempt to effect an operation that lies outside your previously expressed intent will cause QTKit to raise an exception.

    The intent mechanism is also the route that the recent features of QuickTime X are exposed, such as the capacity to asynchronously load large or distantly located (e.g., over a unhurried network link) movie files without blocking the UI running on the main thread of the application.

    Indeed, there are many reasons to consequence what it takes to salvage on board the QuickTime X train. For the media formats it supports, QuickTime X is less taxing on the CPU during playback than QuickTime 7. (This is beyond the fact that QuickTime X does not fritter time preparing its internal representation of the movie for editing and export when playback is everyone that's desired.) QuickTime X also supports GPU-accelerated playback of H.264, but, in this initial release, only on Macs equipped with an NVIDIA 9400M GPU (i.e., some 2009 iMacs and several models of MacBooks from 2008 and 2009). Finally, QuickTime X includes comprehensive ColorSync support for video, which is long overdue.

    The X factor

    This is just the start of a long journey for QuickTime X, and seemingly not a very auspicious one, at that. A QuickTime engine with no editing support? No plug-ins? It seems ridiculous to release it at all. But this has been Apple's route in recent years: steady, deliberate progress. Apple aims to ship no features before their time.

    As anxious as developers may breathe for a full-featured, 64-bit successor to the QuickTime 7 engine, Apple itself is sitting on top of one of the largest QuickTime-riddled (and Carbon-addled, to boot) code bases in the industry: Final slash Studio. Thus far, It remains stuck in 32-bit. To sigh that Apple is "highly motivated" to extend the capabilities of QuickTime X would breathe an understatement.

    Nevertheless, don't await Apple to rush forward foolishly. Duplicating the functionality of a continually developed, 18-year-old API will not occur overnight. It will choose years, and it will breathe even longer before every necessary Mac OS X application is updated to employ QTKit exclusively. Transitions. Gotta love 'em.

    File system API unification

    Mac OS X has historically supported many different ways of referring to files on disk from within an application. Plain-old paths (e.g., /Users/john/Documents/myfile) are supported at the lowest levels of the operating system. They're simple, predictable, but perhaps not such a considerable view to employ as the only route an application tracks files. reckon what happens if an application opens a file based on a path string, then the user moves that file somewhere else while it's quiet being edited. When the application is instructed to deliver the file, if it only has the file path to toil with, it will cessation up creating a recent file in the faded location, which is almost certainly not what the user wanted.

    Classic Mac OS had a more sophisticated internal representation of files that enabled it to track files independent of their actual locations on disk. This was done with the support of the unique file ids supported by HFS/HFS+. The Mac OS X incarnation of this concept is the FSRef data type.

    Finally, in the modern age, URLs believe become the de facto representation for files that may breathe located somewhere other than the local machine. URLs can also advert to local files, but in that case they believe everyone the selfsame disadvantages as file paths.

    This diversity of data types is reflected in Mac OS X's file system APIs. Some functions choose file path as arguments, some await opaque references to files, and quiet others toil only with URLs. Programs that employ these APIs often disburse a lot of their time converting file references from one representation to another.

    The situation is similar when it comes to getting information about files. There are a huge number of file system metadata retrieval functions at everyone levels of the operating system, and no solitary one of them is comprehensive. To salvage everyone available information about a file on disk requires making several separate calls, each of which may await a different kind of file reference as an argument.

    Here's an instance Apple provided at WWDC. Opening a solitary file in the Leopard version of the Preview image viewer application results in:

  • Four conversions of an FSRef to a file path
  • Ten conversions of a file path to an FSRef
  • Twenty-five calls to getattrlist()
  • Eight calls to stat()/lstat()
  • Four calls to open()/close()
  • In Snow Leopard, Apple has created a new, unified, comprehensive set of file system APIs built around a solitary data type: URLs. But these are URL "objects"—namely, the opaque data types NSURL and CFURL, with a toll-free bridge between them—that believe been imbued with everyone the desirable attributes of an FSRef.

    Apple settled on these data types because their opaque nature allowed this kindhearted of enhancement, and because there are so many existing APIs that employ them. URLs are also the most future-proof of everyone the choices, with the scheme portion providing nearly unlimited flexibility for recent data types and access mechanisms. The recent file system APIs built around these opaque URL types support caching and metadata prefetching for a further performance boost.

    There's also a recent on-disk representation called a Bookmark (not to breathe confused with a browser bookmark) which is relish a more network-savvy replacement for classic Mac OS aliases. Bookmarks are the most robust route to create a reference to a file from within another file. It's also feasible to attach capricious metadata to each Bookmark. For example, if an application wants to preserve a persistent list of "favorite" files plus some application-specific information about them, and it wants to breathe resilient to any movement of these files behind its back, Bookmarks are the best tool for the job.

    I mention everyone of this not because I await file system APIs to breathe everyone that lively to people without my particular fascination with this piece of the operating system, but because, relish Core Text before it, it's an indication of exactly how adolescent Mac OS X really is as a platform. Even after seven major releases, Mac OS X is quiet struggling to lunge out from the shadow of its three ancestors: NeXTSTEP, classic Mac OS, and BSD Unix. Or perhaps it just goes to exhibit how ruthlessly Apple's core OS team is driven to replace faded and crusty APIs and data types with new, more modern versions.

    It will breathe a long time before the benefits of these changes trickle down (or is it up?) to end-users in the shape of Mac applications that are written or modified to employ these recent APIs. Most well-written Mac applications already exhibit most of the desirable behavior. For example, the TextEdit application in Leopard will correctly detect when a file it's working on has moved.

    TextEdit: a wonderful Mac OS X citizenTextEdit: a wonderful Mac OS X citizen

    Of course, the key modifier here is "well-written." Simplifying the file system APIs means that more developers will breathe willing to expend the effort—now greatly reduced—to provide such user-friendly behaviors. The accompanying performance boost is just icing on the cake, and one more intuition that developers might choose to alter their existing, working application to employ these recent APIs.

    Doing more with more

    Moore's Law is widely cited in technology circles—and also widely misunderstood. It's most often used as shorthand for "computers double in hasten every year or so," but that's not what Gordon Moore wrote at all. His 1965 article in Electronics magazine touched on many topics in the semiconductor industry, but if it had to breathe summed up in a solitary "law", it would be, roughly, that the number of transistors that proper onto a square inch of silicon doubles every 12 months.

    Moore later revised that to two years, but the time period is not what people salvage wrong. The problem is confusing a doubling of transistor density with a doubling of "computer speed." (Even more problematic is declaring a "law" based on a solitary paper from 1965, but we'll allocate that aside for now. For a more thorough discussion of Moore's Law, please read this classic article by Jon Stokes.)

    For decades, each expand in transistor density was, in fact, accompanied by a comparable expand in computing hasten thanks to ever-rising clock speeds and the dawn of superscalar execution. This worked great—existing code ran faster on each recent CPU—until the grim realities of power density allocate an cessation to the fun.

    Moore's Law continues, at least for now, but their capacity to build code rush faster with each recent expand in transistor density has slowed considerably. The free lunch is over. CPU clock speeds believe stagnated for years, many times actually going backwards. (The latest top-of-the-line 2009 Mac Pro contains a 2.93 GHz CPU, whereas the 2008 model could breathe equipped with a 3.2 GHz CPU.) Adding execution units to a CPU has also long since reached the point of diminishing returns, given the limits of instruction-level parallelism in common application code.

    And yet we've quiet got everyone these recent transistors raining down on us, more every year. The challenge is to find recent ways to employ them to actually build computers faster.

    Thus far, the semiconductor industry's acknowledge has been to give us more of what they already have. Where once a CPU contained a solitary logical processing unit, now CPUs in even the lowliest desktop computers accommodate two processor cores, with high-end models sporting two chips with eight logical cores each. Granted, the cores themselves are also getting faster, usually by doing more at the selfsame clock hasten as their predecessors, but that's not happening at nearly the rate that the cores are multiplying.

    Unfortunately, generally speaking, a dual-core CPU will not rush your application twice as speedy as a single-core CPU. In fact, your application probably won't rush any faster at everyone unless it was written to choose advantage of more than just a solitary logical CPU. Presented with a glut of transistors, chipmakers believe turned around and provided more computing resources than programmers know what to consequence with, transferring much of the responsibility for making computers faster to the software guys.

    We're with the operating system and we're here to help

    It's into this environment that Snow Leopard is born. If there's one responsibility (aside from security) that an operating system vendor should feel in the year 2009, it's finding a route for applications—and the OS itself—to utilize the ever-growing wealth of computing resources at their disposal. If I had to pick solitary technological "theme" for Snow Leopard, this would breathe it: helping developers utilize everyone this newfound silicon; helping them consequence more with more.

    To that end, Snow Leopard includes two significant recent APIs backed by several smaller, but equally necessary infrastructure improvements. We'll start at the bottom with, believe it or not, the compiler.

    LLVM and Clang

    Apple made a strategic investment in the LLVM open source project several years ago. I covered the fundamentals of LLVM in my Leopard review. (If you're not up to speed, please enmesh up on the topic before continuing.) In it, I described how Leopard used LLVM to provide dramatically more efficient JIT-compiled software implementations of OpenGL functions. I ended with the following admonition:

    Don't breathe misled by its humble employ 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 recent LLVM-based (but gcc-compatible) compiler system? That project is called Clang, and it's already yielded some impressive performance results.

    With the introduction of Snow Leopard, it's official: Clang and LLVM are the Apple compiler strategy going forward. LLVM even has a snazzy recent logo, a not-so-subtle homage to a well-known compiler design textbook:

    LLVM! Clang! Rawr!

    LLVM! Clang! Rawr!

    Apple now offers a total of four compilers for Mac OS X: GCC 4.0, GCC 4.2, LLVM-GCC 4.2 (the GCC 4.2 front-end combined with an LLVM back-end), and Clang, in order of increasing LLVM-ness. Here's a diagram:

    Mac OS X compilers

    Mac OS X compilers

    All of these compilers are binary-compatible on Mac OS X, which means you can, for example, build a library with one compiler and link it into an executable built with another. They're also everyone command-line and source-compatible—in theory, anyway. Clang does not yet support some of the more esoteric features of GCC. Clang also only supports C, Objective-C, and a tiny bit of C++ (Clang(uage), salvage it?) whereas GCC supports many more. Apple is committed to complete C++ support for Clang, and hopes to toil out the remaining GCC incompatibilities during Snow Leopard's lifetime.

    Clang brings with it the two headline attributes you await in a hot, recent compiler: shorter compile times and faster executables. In Apple's testing with its own applications such as iCal, Address Book, and Xcode itself, plus third-party applications relish Adium and Growl, Clang compiles nearly three times faster than GCC 4.2. As for the hasten of the finished product, the LLVM back-end, whether used in Clang or in LLVM-GCC, produces executables that are 5-25% faster than those generated by GCC 4.2.

    Clang is also more developer-friendly than its GCC predecessors. I concede that this topic doesn't believe much to consequence with taking advantage of multiple CPU cores and so on, but it's sure to breathe the first thing that a developer actually notices when using Clang. Indulge me.

    For starters, Clang is embeddable, so Xcode can employ the selfsame compiler infrastructure for interactive features within the IDE (symbol look-up, code completion, etc.) as it uses to compile the final executable. Clang also creates and preserves more extensive metadata while compiling, resulting in much better error reporting. For example, when GCC tells you this:

    GCC error message for an unknown type

    It's not exactly transparent what the problem is, especially if you're recent to C programming. Yes, everyone you hotshots already know what the problem is (especially if you saw this instance at WWDC), but I contemplate everyone can agree that this error, generated by Clang, is a lot more helpful:

    Clang error message for an unknown type

    Maybe a novice quiet wouldn't know what to do, but at least it's transparent where the problem lies. Figuring out why the compiler doesn't know about NSString is a much more focused chore than can breathe derived from GCC's cryptic error.

    Even when the message is clear, the context may not be. choose this error from GCC:

    GCC error message for unpleasant operands

    Sure, but there are four "+" operators on that solitary line. Which one has the problematic operands? Thanks to its more extensive metadata, Clang can pinpoint the problem:

    Clang error message for unpleasant operands

    Sometimes the error is perfectly clear, but it just seems a bit off, relish this situation where jumping to the error as reported by GCC puts you on the line below where you actually want to add the missing semicolon:

    GCC error message for missing semicolon

    The tiny things count, you know? Clang goes that extra mile:

    Clang error message for missing semicolon

    Believe it or not, stuff relish this means a lot to developers. And then there are the not-so-little things that weighin even more, relish the LLVM-powered static analyzer. The image below shows how the static analyzer displays its discovery of a feasible bug.

    OH HAI I institute UR BUGOH HAI I institute UR BUG

    Aside from the whimsy of the tiny arrows (which, admit it, are adorable), the actual bug it's highlighting is something that every programmer can imagine creating (say, through some hasty editing). The static analyzer has determined that there's at least one path through this set of nested conditionals that leaves the myName variable uninitialized, thus making the attempt to route the mutableCopy message in the final line potentially dangerous.

    I'm sure Apple is going hog-wild running the static analyzer on everyone of its applications and the operating system itself. The prospect of an automated route to discover bugs that may believe existed for years in the depths of a huge codebase is almost pornographic to developers—platform owners in particular. To the degree that Mac OS X 10.6.0 is more bug-free than the previous 10.x.0 releases, LLVM surely deserves some significant piece of the credit.

    Master of the house

    By committing to a Clang/LLVM-powered future, Apple has finally taken complete control of its development platform. The CodeWarrior experience apparently convinced Apple that it's unwise to trust on a third party for its platform's development tools. Though it's taken many years, I contemplate even the most diehard Metrowerks fan would believe to agree that Xcode in Snow Leopard is now a pretty damn wonderful IDE.

    After years of struggling with the disconnect between the goals of the GCC project and its own compiler needs, Apple has finally slash the apron strings. OK, granted, GCC 4.2 is quiet the default compiler in Snow Leopard, but this is a transitional phase. Clang is the recommended compiler, and the focus of everyone of Apple's future efforts.

    I know what you're thinking. This is swell and all, but how are these compilers helping developers better leverage the expanding swarm of transistors at their disposal? As you'll survey in the following sections, LLVM's scaly, metallic head pops up in a few key places.


    In Snow Leopard, Apple has introduced a C language extension called "blocks." Blocks add closures and anonymous functions to C and the C-derived languages C++, Objective-C, and Objective C++.

    These features believe been available in dynamic programming languages such as Lisp, Smalltalk, Perl, Python, Ruby, and even the unassuming JavaScript for a long time (decades, in the case of Lisp—a fact gladly offered by its practitioners). While dynamic-language programmers choose closures and anonymous functions for granted, those who toil with more traditional, statically compiled languages such as C and its derivatives may find them quite exotic. As for non-programmers, they likely believe no interest in this topic at all. But I'm going to attempt an explanation nonetheless, as blocks shape the foundation of some other lively technologies to breathe discussed later.

    Perhaps the simplest route to define blocks is that they build functions another shape of data. C-derived languages already believe role pointers, which can breathe passed around relish data, but these can only point to functions created at compile time. The only route to influence the behavior of such a role is by passing different arguments to the role or by setting global variables which are then accessed from within the function. Both of these approaches believe stout disadvantages

    Passing arguments becomes cumbersome as their number and complexity grows. Also, it may breathe that you believe limited control over the arguments that will breathe passed to your function, as is often the case with callbacks. To compensate, you may believe to bundle up everyone of your lively state into a context demur of some kind. But when, how, and by whom that context data will breathe disposed of can breathe difficult to pin down. Often, a second callback is required for this. It's everyone quite a pain.

    As for the employ of global variables, in addition to being a well-known anti-pattern, it's also not thread-safe. To build it so requires locks or some other shape of mutual exclusion to obviate multiple invocations of the selfsame role from stepping on each other's toes. And if there's anything worse than navigating a sea of callback-based APIs, it's manually dealing with thread safety issues.

    Blocks bypass everyone of these problems by allowing functional blobs of code—blocks—to breathe defined at runtime. It's easiest to understand with an example. I'm going to start by using JavaScript, which has a bit friendlier syntax, but the concepts are the same.

    b = get_number_from_user(); multiplier = function(a) { return a * b };

    Here I've created a role named multiplier that takes a solitary argument, a, and multiplies it by a second value, b, that's provided by the user at runtime. If the user supplied the number 2, then a call to multiplier(5) would return the value 10.

    b = get_number_from_user(); // assume it's 2 multiplier = function(a) { return a * b }; r = multiplier(5); // 5 * 2 = 10

    Here's the instance above done with blocks in C.

    b = get_number_from_user(); // assume it's 2 multiplier = ^ int (int a) { return a * b; }; r = multiplier(5); // 5 * 2 = 10

    By comparing the JavaScript code to the C version, I hope you can survey how it works. In the C example, that tiny caret ^ is the key to the syntax for blocks. It's kindhearted of ugly, but it's very C-like in that it parallels the existing C syntax for role pointers, with ^ in Place of *, as this instance illustrates:

    /* A role that takes a solitary integer dispute and returns a pointer to a role that takes two integer arguments and returns a floating-point number. */ float (*func2(int a))(int, int); /* A role that takes a solitary integer dispute and returns a shroud that takes two integer arguments and returns a floating-point number. */ float (^func1(int a))(int, int);

    You'll just believe to trust me when I disclose you that this syntax actually makes sense to seasoned C programmers.

    Now then, does this weighin that C is suddenly a dynamic, high-level language relish JavaScript or Lisp? Hardly. The existing distinction between the stack and the heap, the rules governing automatic and static variables, and so on are everyone quiet in complete effect. Plus, now there's a entire recent set of rules for how blocks interact with each of these things. There's even a recent __block storage kind assign to further control the scope and lifetime of values used in blocks.

    All of that said, blocks are quiet a huge win in C. Thanks to blocks, the friendlier APIs long enjoyed by dynamic languages are now feasible in C-derived languages. For example, suppose you want to apply some operation to every line in a file. To consequence so in a low-level language relish C requires some amount of boilerplate code to open and read from the file, handle any errors, read each line into a buffer, and antiseptic up at the end.

    FILE *fp = fopen(filename, "r"); if (fp == NULL) { perror("Unable to open file"); } else { char line[MAX_LINE]; while (fgets(line, MAX_LINE, fp)) { work; work; work; } fclose(fp); }

    The piece in bold is an abstract representation of what you're planning to consequence to each line of the file. The rest is the literal boilerplate code. If you find yourself having to apply varying operations to every line of many different files, this boilerplate code gets tedious.

    What you'd relish to breathe able to consequence is factor it out into a role that you can call. But then you're faced with the problem of how to express the operation you'd relish to effect on each line of the file. In the middle of each shroud of boilerplate may breathe many lines of code expressing the operation to breathe applied. This code may reference or modify local variables which are affected by the runtime behavior of the program, so traditional role pointers won't work. What to do?

    Thanks to blocks, you can define a role that takes a filename and a shroud as arguments. This gets everyone the uninteresting code out of your face.

    foreach_line(filename, ^ (char *line) { work; work; work; });

    What's left is a much clearer expression of your intent, with less surrounding noise. The dispute after filename is a literal shroud that takes a line of text as an argument.

    Even when the volume of boilerplate is small, the simplicity and clarity reward is quiet worthwhile. reckon the simplest feasible loop that executes a fixed number of times. In C-based languages, even that basic construct offers a surprising number of opportunities for bugs. Let's do_something() 10 times:

    for (int i = 0; i <= 10; i++) { do_something(); }

    Oops, I've got a tiny bug there, don't I? It happens to the best of us. But why should this code breathe more complicated than the sentence describing it. consequence something 10 times! I never want to screw that up again. Blocks can help. If they just invest a tiny endeavor up front to define a helper function:

    typedef void (^work_t)(void); void repeat(int n, work_t block) { for (int i = 0; i < n; ++i) block(); }

    We can expatriate the bug for good. Now, repeating any capricious shroud of code a specific number of times is everyone but idiot-proof:

    repeat(10, ^{ do_something() }); repeat(20, ^{ do_other_thing() });

    And remember, the shroud dispute to repeat() can accommodate exactly the selfsame kindhearted of code, literally copied and pasted, that would believe appeared within a traditional for loop.

    All these possibilities and more believe been well explored by dynamic languages: map, reduce, collect, etc. Welcome, C programmers, to a higher order.

    Apple has taken these lessons to heart, adding over 100 recent APIs that employ blocks in Snow Leopard. Many of these APIs would not breathe feasible at everyone without blocks, and everyone of them are more elegant and concise than they would breathe otherwise.

    It's Apple intent to submit blocks as an official extension to one or more of the C-based languages, though it's not yet transparent which standards bodies are receptive to the proposal. For now, blocks are supported by everyone four of Apple's compilers in Mac OS X.

    Concurrency in the actual world: a prelude

    The struggle to build efficient employ of a large number of independent computing devices is not new. For decades, the sphere of high-performance computing has tackled this problem. The challenges faced by people writing software for supercomputers many years ago believe now trickled down to desktop and even mobile computing platforms.

    In the PC industry, some people saw this coming earlier than others. Almost 20 years ago, breathe Inc. was formed around the view of creating a PC platform unconstrained by legacy limitations and entirely prepared for the coming abundance of independent computing units on the desktop. To that end, breathe created the BeBox, a dual-CPU desktop computer, and BeOS, a brand-new operating system.

    The signature enmesh phrase for BeOS was "pervasive multithreading." The BeBox and other machines running BeOS leveraged every ounce of the diminutive (by today's standards, anyway) computing resources at their disposal. The demos were impressive. A dual 66 MHz machine (don't build me exhibit another graph) could play multiple videos simultaneously while also playing several audio tracks from a CD—some backwards— and everyone the while, the user interface remained completely responsive.

    Let me disclose you, having lived through this period myself, the experience was mind-blowing at the time. BeOS created instant converts out of hundreds of technology enthusiasts, many of whom maintain that today's desktop computing experience quiet doesn't match the responsiveness of BeOS. This is certainly precise emotionally, if not necessarily literally.

    After nearly purchasing breathe in the late 1990s, Apple bought NeXT instead, and the rest is history. But had Apple gone with method breathe instead, Mac developers might believe had a scabrous road ahead. While everyone that pervasive multithreading made for impressive technology demos and a considerable user experience, it could breathe extremely demanding on the programmer. BeOS was everyone about threads, going so far as to maintain a separate thread for each window. Whether you liked it or not, your BeOS program was going to breathe multithreaded.

    Parallel programming is notoriously hard, with the manual management of POSIX-style threads representing the abysmal cessation of that pool. The best programmers in the world are hard-pressed to create large multithreaded programs in low-level languages relish C or C++ without finding themselves impaled on the spikes of deadlock, race conditions, and other perils inherent in the employ of in multiple simultaneous threads of execution that participate the selfsame remembrance space. Extremely mindful application of locking primitives is required to avoid performance-robbing levels of contention for shared data—and the bugs, oh the bugs! The term "Heisenbug" may as well believe been invented for multithreaded programming.

    Nineteen years after breathe tilted at the windmill of the widening swath of silicon in desktop PCs, the challenge has only grown. Those transistors are out there, man—more than ever before. Single-threaded programs on today's high-end desktop Macs, even when using "100%" CPU, extend but a solitary glowing tower in a sea of sixteen otherwise blank lanes on a CPU monitor window.

    A wide-open simple of transistorsA wide-open simple of transistors

    And woe breathe unto the user if that pegged CPU core is running the main thread of a GUI application on Mac OS X. A CPU-saturated main thread means no recent user inputs are being pulled off the event queue by the application. A few seconds of that and an faded friend makes its appearance: the spinning beach ball of death.


    Nooooooooo!!! Image from The Iconfactory

    This is the enemy: hardware with more computing resources than programmers know what to consequence with, most of it completely idle, and everyone the while the user is utterly blocked in his attempts to employ the current application. What's Snow Leopard's answer? Read on…

    Grand Central Dispatch Apple's GCD branding: <a href="">Railfan</a> <a href="">service</a>Apple's GCD branding: Railfan service

    Snow Leopard's acknowledge to the concurrency conundrum is called august Central Dispatch (GCD). As with QuickTime X, the designation is extremely apt, though this is not entirely transparent until you understand the technology.

    The first thing to know about GCD is that it's not a recent Cocoa framework or similar special-purpose frill off to the side. It's a simple C library baked into the lowest levels of Mac OS X. (It's in libSystem, which incorporates libc and the other code that sits at the very bottom of userspace.)

    There's no exigency to link in a recent library to employ GCD in your program. Just #include <dispatch/dispatch.h> and you're off to the races. The fact that GCD is a C library means that it can breathe used from everyone of the C-derived languages supported on Mac OS X: Objective-C, C++, and Objective-C++.

    Queues and threads

    GCD is built on a few simple entities. Let's start with queues. A queue in GCD is just what it sounds like. Tasks are enqueued, and then dequeued in FIFO order. (That's "First In, First Out," just relish the checkout line at the supermarket, for those who don't know and don't want to supervene the link.) Dequeuing the chore means handing it off to a thread where it will execute and consequence its actual work.

    Though GCD queues will hand tasks off to threads in FIFO order, several tasks from the selfsame queue may breathe running in parallel at any given time. This animation demonstrates.

    A august Central Dispatch queue in action

    You'll notice that chore B completed before chore A. Though dequeuing is FIFO, chore completion is not. also note that even though there were three tasks enqueued, only two threads were used. This is an necessary feature of GCD which we'll dispute shortly.

    But first, let's view at the other kindhearted of queue. A serial queue works just relish a commonplace queue, except that it only executes one chore at a time. That means chore completion in a serial queue is also FIFO. Serial queues can breathe created explicitly, just relish commonplace queues, but each application also has an implicit "main queue" which is a serial queue that runs on the main thread.

    The animation above shows threads appearing as toil needs to breathe done, and disappearing as they're no longer needed. Where consequence these threads forward from and where consequence they lunge when they're done? GCD maintains a global pool of threads which it hands out to queues as they're needed. When a queue has no more pending tasks to rush on a thread, the thread goes back into the pool.

    This is an extremely necessary aspect of GCD's design. Perhaps surprisingly, one of the most difficult parts of extracting maximum performance using traditional, manually managed threads is figuring out exactly how many threads to create. Too few, and you risk leaving hardware idle. Too many, and you start to disburse a significant amount of time simply shuffling threads in and out of the available processor cores.

    Let's sigh a program has a problem that can breathe split into eight separate, independent units of work. If this program then creates four threads on an eight-core machine, is this an instance of creating too many or too few threads? Trick question! The acknowledge is that it depends on what else is happening on the system.

    If six of the eight cores are totally saturated doing some other work, then creating four threads will just require the OS to fritter time rotating those four threads through the two available cores. But wait, what if the process that was saturating those six cores finishes? Now there are eight available cores but only four threads, leaving half the cores idle.

    With the exception of programs that can reasonably await to believe the entire machine to themselves when they run, there's no route for a programmer to know ahead of time exactly how many threads he should create. Of the available cores on a particular machine, how many are in use? If more become available, how will my program know?

    The bottom line is that the optimal number of threads to allocate in flight at any given time is best determined by a single, globally conscious entity. In Snow Leopard, that entity is GCD. It will preserve zero threads in its pool if there are no queues that believe tasks to run. As tasks are dequeued, GCD will create and dole out threads in a route that optimizes the employ of the available hardware. GCD knows how many cores the system has, and it knows how many threads are currently executing tasks. When a queue no longer needs a thread, it's returned to the pool where GCD can hand it out to another queue that has a chore ready to breathe dequeued.

    There are further optimizations inherent in this scheme. In Mac OS X, threads are relatively heavyweight. Each thread maintains its own set of register values, stack pointer, and program counter, plus kernel data structures tracking its security credentials, scheduling priority, set of pending signals and signal masks, etc. It everyone adds up to over 512 KB of overhead per thread. Create a thousand threads and you've just burned about a half a gigabyte of remembrance and kernel resources on overhead alone, before even considering the actual data within each thread.

    Compare a thread's 512 KB of baggage with GCD queues which believe a mere 256 bytes of overhead. Queues are very lightweight, and developers are encouraged to create as many of them as they need—thousands, even. In the earlier animation, when the queue was given two threads to process its three tasks, it executed two tasks on one of the threads. Not only are threads heavyweight in terms of remembrance overhead, they're also relatively costly to create. Creating a recent thread for each chore would breathe the worst feasible scenario. Every time GCD can employ a thread to execute more than one task, it's a win for overall system efficiency.

    Remember the problem of the programmer trying to figure out how many threads to create? Using GCD, he doesn't believe to worry about that at all. Instead, he can concentrate entirely on the optimal concurrency of his algorithm in the abstract. If the best-case scenario for his problem would employ 500 concurrent tasks, then he can lunge ahead and create 500 GCD queues and divide his toil among them. GCD will figure out how many actual threads to create to consequence the work. Furthermore it will adjust the number of threads dynamically as the conditions on the system change.

    But perhaps most importantly, as recent hardware is released with more and more CPU cores, the programmer does not exigency to change his application at all. Thanks to GCD, it will transparently choose advantage of any and everyone available computing resources, up to—but not past!—the optimal amount of concurrency as originally defined by the programmer when he chose how many queues to create.

    But wait, there's more! GCD queues can actually breathe arranged in arbitrarily involved directed acyclic graphs. (Actually, they can breathe cyclic too, but then the behavior is undefined. Don't consequence that.) Queue hierarchies can breathe used to funnel tasks from disparate subsystems into a narrower set of centrally controlled queues, or to obligate a set of commonplace queues to delegate to a serial queue, effectively serializing them everyone indirectly.

    There are also several levels of priority for queues, dictating how often and with what urgency threads are distributed to them from the pool. Queues can breathe suspended, resumed, and cancelled. Queues can also breathe grouped, allowing everyone tasks distributed to the group to breathe tracked and accounted for as a unit.

    Overall, GCD's employ of queues and threads forms a simple, elegant, but also extremely pragmatic architecture.


    Okay, so GCD is a considerable route to build efficient employ of the available hardware. But is it really any better than BeOS's approach to multithreading? We've already seen a few ways that GCD avoids the pitfalls of BeOS (e.g., the reuse of threads and the maintenance of a global pool of threads that's correctly sized for the available hardware). But what about the problem of overwhelming the programmer by requiring threads in places where they complicate, rather than enhance the application?

    GCD embodies a philosophy that is at the opposite cessation of the spectrum from BeOS's "pervasive multithreading" design. Rather than achieving responsiveness by getting every feasible component of an application running concurrently on its own thread (and paying a massive price in terms of involved data sharing and locking concerns), GCD encourages a much more limited, hierarchical approach: a main application thread where everyone the user events are processed and the interface is updated, and worker threads doing specific jobs as needed.

    In other words, GCD doesn't require developers to contemplate about how best to split the toil of their application into multiple concurrent threads (though when they're ready to consequence that, GCD will breathe willing and able to help). At its most basic level, GCD aims to cheer developers to lunge from thinking synchronously to thinking asynchronous. Something relish this: "Write your application as usual, but if there's any piece of its operation that can reasonably breathe expected to choose more than a few seconds to complete, then for the love of Zarzycki, salvage it off the main thread!"

    That's it; no more, no less. Beach ball banishment is the cornerstone of user interface responsiveness. In some respects, everything else is gravy. But most developers know this intuitively, so why consequence they quiet survey the beach ball in Mac OS X applications? Why don't everyone applications already execute everyone of their potentially long-running tasks on background threads?

    A few reasons believe been mentioned already (e.g., the difficulty of knowing how many threads to create) but the stout one is much more pragmatic. Spinning off a thread and collecting its result has always been a bit of a pain. It's not so much that it's technically difficult, it's just that it's such an explicit shatter from coding the actual toil of your application to coding everyone this task-management plumbing. And so, especially in borderline cases, relish an operation that may choose 3 to 5 seconds, developers just consequence it synchronously and lunge onto the next thing.

    Unfortunately, there's a surprising number of very common things that an application can consequence that execute quickly most of the time, but believe the potential to choose much longer than a few seconds when something goes wrong. Anything that touches the file system may stall at the lowest levels of the OS (e.g., within blocking read() and write() calls) and breathe theme to a very long (or at least an "unexamined-by-the-application-developer") timeout. The selfsame goes for designation lookups (e.g., DNS or LDAP), which almost always execute instantly, but enmesh many applications completely off-guard when they start taking their sweet time to return a result. Thus, even the most meticulously constructed Mac OS X applications can cessation up throwing the beach ball in their face from time to time.

    With GCD, Apple is saw it doesn't believe to breathe this way. For example, suppose a document-based application has a button that, when clicked, will analyze the current document and display some lively statistics about it. In the common case, this analysis should execute in under a second, so the following code is used to connect the button with an action:

    - (IBAction)analyzeDocument:(NSButton *)sender { NSDictionary *stats = [myDoc analyze]; [myModel setDict:stats]; [myStatsView setNeedsDisplay:YES]; [stats release]; }

    The first line of the role carcass analyzes the document, the second line updates the application's internal state, and the third line tells the application that the statistics view needs to breathe updated to reflect this recent state. It everyone follows a very common pattern, and it works considerable as long as zero of these steps—which are everyone running on the main thread, remember—takes too long. Because after the user presses the button, the main thread of the application needs to handle that user input as speedy as feasible so it can salvage back to the main event loop to process the next user action.

    The code above works considerable until a user opens a very large or very involved document. Suddenly, the "analyze" step doesn't choose one or two seconds, but 15 or 30 seconds instead. Hello, beach ball. And still, the developer is likely to hem and haw: "This is really an exceptional situation. Most of my users will never open such a large file. And anyway, I really don't want to start reading documentation about threads and adding everyone that extra code to this simple, four-line function. The plumbing would dwarf the code that does the actual work!"

    Well, what if I told you that you could lunge the document analysis to the background by adding just two lines of code (okay, and two lines of closing braces), everyone located within the existing function? No application-global objects, no thread management, no callbacks, no dispute marshalling, no context objects, not even any additional variables. Behold, august Central Dispatch:

    - (IBAction)analyzeDocument:(NSButton *)sender { dispatch_async(dispatch_get_global_queue(0, 0), ^{ NSDictionary *stats = [myDoc analyze]; dispatch_async(dispatch_get_main_queue(), ^{ [myModel setDict:stats]; [myStatsView setNeedsDisplay:YES]; [stats release]; }); }); }

    There's a hell of a lot of packed into those two lines of code. everyone of the functions in GCD launch with dispatch_, and you can survey four such calls in the blue lines of code above. The key to the minimal invasiveness of this code is revealed in the second dispute to the two dispatch_async() calls. Thus far, I've been discussing "units of work" without specifying how, exactly, GCD models such a thing. The answer, now revealed, should look obvious in retrospect: blocks! The capacity of blocks to capture the surrounding context is what allows these GCD calls to breathe dropped birthright into some existing code without requiring any additional setup or re-factoring or other contortions in service of the API.

    But the best piece of this code is how it deals with the problem of detecting when the background chore completes and then showing the result. In the synchronous code, the analyze method call and the code to update the application display simply emerge in the desired sequence within the function. In the asynchronous code, miraculously, this is quiet the case. Here's how it works.

    The outer dispatch_async() call puts a chore on a global concurrent GCD queue. That task, represented by the shroud passed as the second argument, contains the potentially time-consuming analyze method call, plus another call to dispatch_async() that puts a chore onto the main queue—a serial queue that runs on the main thread, remember—to update the application's user interface.

    User interface updates must everyone breathe done from the main thread in a Cocoa application, so the code in the inner shroud could not breathe executed anywhere else. But rather than having the background thread route some kindhearted of special-purpose notification back to the main thread when the analyze method call completes (and then adding some code to the application to detect and handle this notification), the toil that needs to breathe done on the main thread to update the display is encapsulated in yet another shroud within the larger one. When the analyze call is done, the inner shroud is allocate onto the main queue where it will (eventually) rush on the main thread and consequence its toil of updating the display.

    Simple, elegant, and effective. And for developers, no more excuses.

    Believe it or not, it's just as simple to choose a serial implementation of a succession of independent operations and parallelize it. The code below does toil on matter elements of data, one after the other, and then summarizes the results once everyone the elements believe been processed.

    for (i = 0; i < count; i++) { results[i] = do_work(data, i); } total = summarize(results, count);

    Now here's the parallel version which puts a separate chore for each factor onto a global concurrent queue. (Again, it's up to GCD to resolve how many threads to actually employ to execute the tasks.)

    dispatch_apply(count, dispatch_get_global_queue(0, 0), ^(size_t i) { results[i] = do_work(data, i); }); total = summarize(results, count);

    And there you believe it: a for loop replaced with a concurrency-enabled equivalent with one line of code. No preparation, no additional variables, no impossible decisions about the optimal number of threads, no extra toil required to wait for everyone the independent tests to complete. (The dispatch_apply() call will not return until everyone the tasks it has dispatched believe completed.) Stunning.

    Grand Central Awesome

    Of everyone the APIs added in Snow Leopard, august Central Dispatch has the most far-reaching implications for the future of Mac OS X. Never before has it been so simple to consequence toil asynchronously and to spread workloads across many CPUs.

    When I first heard about august Central Dispatch, I was extremely skeptical. The greatest minds in computer science believe been working for decades on the problem of how best to extract parallelism from computing workloads. Now here was Apple apparently promising to solve this problem. Ridiculous.

    But august Central Dispatch doesn't actually address this issue at all. It offers no support whatsoever in deciding how to split your toil up into independently executable tasks—that is, deciding what pieces can or should breathe executed asynchronously or in parallel. That's quiet entirely up to the developer (and quiet a tough problem). What GCD does instead is much more pragmatic. Once a developer has identified something that can breathe split off into a separate task, GCD makes it as simple and non-invasive as feasible to actually consequence so.

    The employ of FIFO queues, and especially the existence of serialized queues, seems counter to the spirit of ubiquitous concurrency. But we've seen where the Platonic criterion of multithreading leads, and it's not a pleasant Place for developers.

    One of Apple's slogans for august Central Dispatch is "islands of serialization in a sea of concurrency." That does a considerable job of capturing the practical reality of adding more concurrency to run-of-the-mill desktop applications. Those islands are what insulate developers from the thorny problems of simultaneous data access, deadlock, and other pitfalls of multithreading. Developers are encouraged to identify functions of their applications that would breathe better executed off the main thread, even if they're made up of several sequential or otherwise partially interdependent tasks. GCD makes it simple to shatter off the entire unit of toil while maintaining the existing order and dependencies between subtasks.

    Those with some multithreaded programming experience may breathe unimpressed with the GCD. So Apple made a thread pool. stout deal. They've been around forever. But the angels are in the details. Yes, the implementation of queues and threads has an elegant simplicity, and baking it into the lowest levels of the OS really helps to lower the perceived barrier to entry, but it's the API built around blocks that makes august Central Dispatch so attractive to developers. Just as Time Machine was "the first backup system people will actually use," august Central Dispatch is poised to finally spread the heretofore black know-how of asynchronous application design to everyone Mac OS X developers. I can't wait.

    OpenCL Somehow, OpenCL got in on the <a href="">"core" branding</a>Somehow, OpenCL got in on the "core" branding

    So far, we've seen a few examples of doing more with more: a new, more modern compiler infrastructure that supports an necessary recent language feature, and a powerful, pragmatic concurrency API built on top of the recent compilers' support for said language feature. everyone this goes a long route towards helping developers and the OS itself build maximum employ of the available hardware.

    But CPUs are not the only components experiencing a glut of transistors. When it comes to the proliferation of independent computation engines, another piece of silicon inside every Mac is the undisputed title holder: the GPU.

    The numbers disclose the tale. While Mac CPUs accommodate up to four cores (which may exhibit up as eight logical cores thanks to symmetric multithreading), high-end GPUs accommodate well over 200 processor cores. While CPUs are just now edging over 100 GFLOPS, the best GPUs are capable of over 1,000 GFLOPS. That's one trillion floating-point operations per second. And relish CPUs, GPUs now forward more than one on a board.

    Writing for the GPU

    Unfortunately, the cores on a GPU are not general-purpose processors (at least not yet). They're much simpler computing engines that believe evolved from the fixed-function silicon of their ancestors that could not breathe programmed directly at all. They don't support the moneyed set of instructions available on CPUs, the maximum size of the programs that will rush is often limited and very small, and not everyone of the features of the industry-standard IEEE floating-point computation specification are supported.

    Today's GPUs can breathe programmed, but the most common forms of programmability are quiet firmly planted in the world of graphics programming: vertex shaders, geometry shaders, pixel shaders. Most of the languages used to program GPUs are similarly graphically focused: HLSL, GLSL, Cg.

    Nevertheless, there are computational tasks outside the realm of graphics that are a wonderful proper for GPU hardware. It would breathe nice if there were a non-graphics-oriented language to write them in. Creating such a thing is quite a challenge, however. GPU hardware varies wildly in every imaginable way: number and kind of execution units, available data formats, instruction sets, remembrance architecture, you designation it. Programmers don't want to breathe exposed to these differences, but it's difficult to toil around the complete need of a feature or the unavailability of a particular data type.

    GPU vendor NVIDIA gave it a shot, however, and produced CUDA: a subset of the C language with extensions for vector data types, data storage specifiers that reflect typical GPU remembrance hierarchy, and several bundled computational libraries. CUDA is but one entrant in the burgeoning GPGPU sphere (General-Purpose computing on Graphics Processing Units). But coming from a GPU vendor, it faces an uphill battle with developers who really want a vendor-agnostic solution.

    In the world of 3D programming, OpenGL fills that role. As you've surely guessed by now, OpenCL aims to consequence the selfsame for general-purpose computation. In fact, OpenCL is supported by the selfsame consortium as OpenGL: the ominously named Khronos Group. But build no mistake, OpenCL is Apple's baby.

    Apple understood that OpenCL's best random of success was to become an industry standard, not just an Apple technology. To build that happen, Apple needed the cooperation of the top GPU vendors, plus an agreement with an established, widely-recognized standards body. It took a while, but now it's everyone forward together.

    OpenCL is a lot relish CUDA. It uses a C-like language with the vector extensions, it has a similar model of remembrance hierarchy, and so on. This is no surprise, considering how closely Apple worked with NVIDIA during the development of OpenCL. There's also no route any of the stout GPU vendors would radically alter their hardware to support an as-yet-unproven standard, so OpenCL had to toil well with GPUs already designed to support CUDA, GLSL, and other existing GPU programming languages.

    The OpenCL difference

    This is everyone well and good, but to believe any impact on the day-to-day life of Mac users, developers actually believe to employ OpenCL in their applications. Historically, GPGPU programming languages believe not seen much employ in traditional desktop applications. There are several reasons for this.

    Early on, writing programs for the GPU often required the employ of vendor-specific assembly languages that were far removed from the experience of writing a typical desktop application using a concomitant GUI API. The more C-like languages that came later remained either graphics-focused, vendor-specific, or both. Unless running code on the GPU would accelerate a core component of an application by an order of magnitude, most developers quiet could not breathe bothered to navigate this strange world.

    And even if the GPU did give a huge hasten boost, relying on graphics hardware for general-purpose computation was very likely to narrow the potential audience for an application. Many older GPUs, especially those institute in laptops, cannot rush languages relish CUDA at all.

    Apple's key decision in the design of OpenCL was to allow OpenCL programs to rush not just on GPUs, but on CPUs as well. An OpenCL program can query the hardware it's running on and enumerate everyone eligible OpenCL devices, categorized as CPUs, GPUs, or dedicated OpenCL accelerators (the IBM Cell Blade server—yes, that Cell—is apparently one such device). The program can then dispatch its OpenCL tasks to any available device. It's also feasible to create a solitary logical device consisting of any combination of eligible computing resources: two GPUs, a GPU and two CPUs, etc.

    The advantages of being able to rush OpenCL programs on both CPUs and GPUs are obvious. Every Mac running Snow Leopard, not just those with the recent-model GPUs, can rush a program that contains OpenCL code. But there's more to it than that.

    Certain kinds of algorithms actually rush faster on high-end multi-core CPUs than on even the very fastest available GPUs. At WWDC 2009, an engineer from Electronic Arts demonstrated an OpenCL port of a skinning engine from one of its games running over four times faster on a four-core Mac Pro than on an NVIDIA GeForce GTX285. Restructuring the algorithm and making many other changes to better suit the limitations (and strengths) of the GPU pushed it back ahead of the CPU by a wide margin, but sometimes you just want the system you believe to rush well as-is. Being able to target the CPU is extremely useful in those cases.

    Moreover, writing vector code for Intel CPUs "the old-fashioned way" can breathe a actual pain. There's MMX, SSE, SSE2, SSE3, and SSE4 to deal with, everyone with slightly different capabilities, and everyone of which obligate the programmer to write code relish this:

    r1 = _mm_mul_ps(m1, _mm_add_ps(x1, x2));

    OpenCL's native support for vector types de-clutters the code considerably:

    r1 = m1 * (x1 + x2);

    Similarly, OpenCL's support for implicit parallelism makes it much easier to choose advantage of multiple CPU cores. Rather than writing everyone the logic to split your data into pieces and divide those pieces to the parallel-computing hardware, OpenCL lets you write just the code to operate on a solitary piece of the data and then route it, along with the entire shroud of data and the desired level of parallelism, to the computing device.

    This arrangement is taken for granted in traditional graphics programming, where code implicitly works on everyone pixels in a texture or everyone vertices in a polygon; the programmer only needs to write code that will exist in the "inner loop," so to speak. An API with support for this kindhearted of parallelism that runs on CPUs as well as GPUs fills an necessary gap.

    Writing to OpenCL also future-proofs task- or data-parallel code. Just as the selfsame OpenGL code will salvage faster and faster as newer, more powerful GPUs are released, so too will OpenCL code effect better as CPUs and GPUs salvage faster. The extra layer of abstraction that OpenCL provides makes this possible. For example, though vector code written several years ago using MMX got faster as CPU clock speeds increased, a more significant performance boost likely requires porting the code to one of the newer SSE instruction sets.

    As newer, more powerful vector instruction sets and parallel hardware becomes available, Apple will update its OpenCL implementations to choose advantage of them, just as video card makers and OS vendors update their OpenGL drivers to choose advantage of faster GPUs. Meanwhile, the application developer's code remains unchanged. Not even a recompile is required.

    Here breathe dragons (and trains)

    How, you may wonder, can the selfsame compiled code cessation up executing using SSE2 on one machine and SSE4 on another, or on an NVIDIA GPU on one machine and an ATI GPU on another? To consequence so would require translating the device-independent OpenCL code to the instruction set of the target computing device at runtime. When running on a GPU, OpenCL must also ship the data and the newly translated code over to the video card and collect the results at the end. When running on the CPU, OpenCL must sort for the requested level of parallelism by creating and distributing threads appropriately to the available cores.

    Well, wouldn't you know it? Apple just happens to believe two technologies that solve these exact problems.

    Want to compile code "just in time" and ship it off to a computing device? That's what LLVM was born to do—and, indeed, what Apple did with it in Leopard, albeit on a more limited scale. OpenCL is a natural extension of that work. LLVM allows Apple to write a solitary code generator for each target instruction set, and concentrate everyone of its endeavor on a solitary device-independent code optimizer. There's no longer any exigency to duplicate these tasks, using one compiler to create the static application executable and having to jury-rig another for just-in-time compilation.

    (Oh, and by the way, remember Core Image? That's another API that needs to compile code just-in-time and ship it off to execute on parallel hardware relish GPUs and multi-core CPUs. In Snow Leopard, Core Image has been re-implemented using OpenCL, producing a hefty 25% overall performance boost.)

    To handle chore parallelism and provision threads, OpenCL is built on top of august Central Dispatch. This is such a natural proper that it's a bit surprising that the OpenCL API doesn't employ blocks. I contemplate Apple decided that it shouldn't press its luck when it comes to getting its home-grown technologies adopted by other vendors. This decision already seems to breathe paying off, as AMD has its own OpenCL implementation under way.

    The top of the pyramid

    Though the underlying technologies, Clang, blocks and august Central Dispatch, will undoubtedly breathe more widely used by developers, OpenCL represents the culmination of that particular technological thread in Snow Leopard. This is the gold criterion of software engineering: creating a recent public API by pile it on top of lower-level, but equally well-designed and implemented public APIs.

    A unified abstraction for the ever-growing heterogeneous collection of parallel computing silicon in desktop computers was sorely needed. We've got an increasing population of powerful CPU cores, but they quiet exist in numbers that are orders of magnitude lower than the hundreds of processing units in modern GPUs. On the other hand, GPUs quiet believe a ways to lunge to enmesh up with the power and flexibility of a full-fledged CPU core. But even with everyone the differences, writing code exclusively for either one of those worlds quiet smacks of leaving money on the table.

    With OpenCL in hand, there's no longer a exigency to allocate everyone your eggs in one silicon basket. And with the advent of hybrid CPU/GPU efforts relish Intel's Larabee, which employ CPU-caliber processing engines, but in much higher numbers, OpenCL may prove even more necessary in the coming years.

    Transistor harvest

    Collectively, the concurrency-enabling features introduced in Snow Leopard delineate the biggest boost to asynchronous and parallel software development in any Mac OS X release—perhaps in any desktop operating system release ever. It may breathe difficult for end-users to salvage excited about "plumbing" technologies relish august Central Dispatch and OpenCL, let lonesome compilers and programming language features, but it's upon these foundations that developers will create ever-more-impressive edifices of software. And if those applications tower over their synchronous, serial predecessors, it will breathe because they stand on the shoulders of giants.

    QuickTime Player's recent
 icon (Not a fan)QuickTime Player's recent icon (Not a fan) QuickTime Player

    There's been some confusion surrounding QuickTime in Snow Leopard. The earlier section about QuickTime X explains what you exigency to know about the present and future of QuickTime as a technology and an API. But a few of Apple's decisions—and the extremely overloaded meaning of the word "QuickTime" in the minds of consumers—have blurred the picture somewhat.

    The first head-scratcher occurs during installation. If you occur to click on the "Customize…" button during installation, you'll survey the following options:

    QuickTime 7 is an optional install?QuickTime 7 is an optional install?

    We've already talked about Rosetta being an optional install, but QuickTime 7 too? Isn't QuickTime severely crippled without QuickTime 7? Why in the world would that breathe an optional install?

    Well, there's no exigency to panic. That detail in the installer should actually read "QuickTime Player 7." QuickTime 7, the faded but extremely capable media framework discussed earlier, is installed by default in Snow Leopard—in fact, it's mandatory. But the player application, the one with the faded blue "Q" icon, the one that many casual users actually contemplate of as being "QuickTime," that's been replaced with a recent QuickTime-X-savvy version sporting a pudgy recent icon (see above right).

    The recent player application is a stout departure from the old. Obviously, it leverages QuickTime X for more efficient video playback, but the user interface is also completely new. Gone are the gray verge and bottom-mounted playback controls from the faded QuickTime Player, replaced by a frameless window with a black title bar and a floating, moveable set of controls.

    The recent
 QuickTime Player: boldly going where <a href="">NicePlayer</a> has gone before Enlarge / The recent QuickTime Player: boldly going where NicePlayer has gone before

    It's relish a combination of the window treatment of the excellent NicePlayer application and the full-screen playback controls from the faded QuickTime Player. I'm a bit bothered by two things. First, the ever-so-slightly clipped corners look relish a unpleasant idea. Am I just supposititious to give up those dozen-or-so pixels? NicePlayer does it right, showing crisp, square corners.

    Second, the floating playback controls obscure the movie. What if I'm scrubbing around looking for something in that piece of the frame? Yes, you can lunge the controls, but what if I'm looking for something in an unknown location in the frame? Also, the title bar obscures an entire swath of the top of the frame, and this can't breathe moved. I prize the compactness of this approach, but it'd breathe nice if the title bar overlap could breathe disabled and the controls could breathe dragged off the movie entirely and docked to the bottom or something.

    (One blessing for people who participate my OCD tendencies: if you lunge the floating controls, they don't remember their position the next time you open a movie. Why is that a blessing? Because if it worked the other way, we'd everyone disburse route too much time fretting about their inability to restore the controller to its default, precisely centered position. Sad, but true.)

    The recent QuickTime Player presents a decidedly iMovie-like (or is it iPhone-like, nowadays?) interface for trimming video. Still-frame thumbnails are placed side-by-side to shape a timeline, with adjustable stops at each cessation for trimming.

    Trimming in the recent
 QuickTime Player Enlarge / Trimming in the recent QuickTime Player

    Holding down the option key changes from a thumbnail timeline to an audio waveform display:

    Trimming with audio waveform view Enlarge / Trimming with audio waveform view

    In both the video and audio cases, I believe to phenomenon exactly how useful the fancy timeline appearances are. The audio waveform is quite minute and compressed, and the limited horizontal space of the in-window display means a movie can only exhibit a handful of video frames in its timeline. Also, if there's any capacity to consequence fine adjustments using something other than extremely mindful mouse movements (which are necessarily theme to a limited resolution) then I couldn't find it. Final slash Pro this is not.

    QuickTime Player has scholarly another recent trick: screen recording. The controls are limited, so more demanding users will quiet believe a exigency for a full-featured screen recorder, but QuickTime Player gets the job done.

    Screen recording in QuickTime PlayerScreen recording in QuickTime Player

    There's also an audio-only option, with a similarly simplified collection of settings.

    Audio recordingAudio recording

    Finally, the recent QuickTime Player has the capacity to upload a movie directly to YouTube and MobileMe, route one via e-mail, or add it to your iTunes library. The export options are also vastly simplified, with preset options for iPhone/iPod, Apple TV, and HD 480p and 720p.

    Unfortunately, the list of things you can't consequence with the recent QuickTime Player is quite long. You can't cut, copy, and paste capricious portions of a movie (trimming only affects the ends); you can't extract or delete individual tracks or overlay one track onto another (optionally scaling to fit); you can't export a movie by choosing from the complete set of available QuickTime audio and video codecs. everyone of these things were feasible with the faded QuickTime Player—if, that is, you paid the $30 for a QuickTime Pro license. In the past, I've described this extra fee as "criminally stupid", but the features it enabled in QuickTime Player were really useful.

    It's tempting to assign their absence in the recent QuickTime Player to the previously discussed limitations of QuickTime X. But the recent QuickTime Player is built on top of QTKit, which serves as a front-end for both QuickTime X and QuickTime 7. And it does, after all, feature some limited editing features relish trimming, plus some previously "Pro"-only features relish full-screen playback. Also, the recent QuickTime Player can indeed play movies using third-party plug-ins—a feature clearly powered by QuickTime 7.

    Well, Snow Leopard has an extremely pleasant surprise waiting for you if you install the optional QuickTime Player 7. When I did so, what I got was the faded QuickTime Player—somewhat insultingly installed in the "Utilities" folder—with everyone of its "Pro" features permanently unlocked. Yes, the tyranny of QuickTime Pro seems to breathe at an end…

    QuickTime Pro: now free for everyone?QuickTime Pro: now free for everyone?

    …but perhaps the key word above is "seems," because QuickTime Player 7 does not believe everyone "pro" features unlocked for everyone. I installed Snow Leopard onto an blank disk, and QuickTime 7 was not automatically installed (as it is when the installer detects an existing QuickTime Pro license on the target disk). After booting from my fresh Snow Leopard volume, I manually installed the "QuickTime 7" optional component using the Snow Leopard installer disk.

    The result for me was a QuickTime Player 7 application with everyone pro features unlocked and with no visible QuickTime Pro registration information. I did, however, believe a QuickTime Pro license on one of the attached drives. Apparently, the installer detected this and gave me an unlocked QuickTime Player 7 application, even though the boot volume never had a QuickTime Pro license on it.

    The Dock

    The recent appearance of some aspects of the Dock are accompanied by some recent functionality as well. Clicking and holding on a running application's Dock icon now triggers Expos�, but only for the windows belonging to that application. Dragging a file onto a docked application icon and holding it there for a bit produces the selfsame result. You can then continue that selfsame drag onto one of the Exposé window thumbnails and hover there a bit to bring that window to the front and drop the file into it. It's a pretty handy technique, once you salvage in the employ of doing it.

    The Exposé display itself is also changed. Now, minimized windows are displayed in smaller shape on the bottom of the screen below a thin line.

    Dock Exposé with recent
 placement of minimized windows Enlarge / Dock Exposé with recent placement of minimized windows

    In the screenshot above, you'll notice that zero of the minimized windows emerge in my Dock. That's thanks to another welcome addition: the capacity to minimize windows "into" the application icon. You'll find the setting for this in the Dock's preference pane.

    New Dock preference: Minimize windows into application iconNew Dock preference: Minimize windows into application icon Minimized windows in a Dock application menuMinimized window denoted by a diamond

    Once set, minimized windows will slip behind the icon of their parent application and then disappear. To salvage them back, either right-click the application icon (see right) or trigger Exposé.

    The Dock's grid view for folders now incorporates a scroll bar when there are too many items to proper comfortably. Clicking on a folder icon in the grid now shows that folder's contents within the grid, allowing you to navigate down several folders to find a buried item. A minute "back" navigation button appears once you descend.

    These are everyone useful recent behaviors, and quite a reward considering the supposititious "no recent features" stance of Snow Leopard. But the fundamental nature of the Dock remains the same. Users who want a more supple or more powerful application launcher/folder organizer/window minimization system must quiet either sacrifice some functionality (e.g., Dock icon badges and bounce notifications) or continue to employ the Dock in addition to a third-party application.

    The option to preserve minimized windows from cluttering up the Dock was long overdue. But my enthusiasm is tempered by my frustration at the continued inability to click on a docked folder and believe it open in the Finder, while also retaining the capacity to drag items into that folder. This was the default behavior for docked folders for the first six years of Mac OS X's life, but it changed in Leopard. Snow Leopard does not improve matters.

    Docking an alias to a folder provides the single-click-open behavior, but items cannot breathe dragged into a docked folder alias for some inexplicable reason. (Radar 5775786, closed in March 2008 with the terse explanation, "not currently supported.") Worse, dragging an detail to a docked folder alias looks relish it will toil (the icon highlights) but upon release, the dragged detail simply springs back to its original location. I really hoped this one would salvage fixed in Snow Leopard. No such luck.

    Dock grid view's in-place navigation with back buttonDock grid view's in-place navigation with back button The Finder

    One of the earliest leaked screenshots of Snow Leopard included an innocuous-looking "Get Info…" window for the Finder, presumably to exhibit that its version number had been updated to 10.6. The more lively tidbit of information it revealed was that the Finder in Snow Leopard was a 64-bit application.

    The Mac OS X Finder started its life as the designated "dog food" application for the Carbon backward-compatibility API for Mac OS X. Over the years, the Finder has been a frequent target of dissatisfaction and scorn. Those unpleasant feelings frequently spilled over into the parallel debate over API supremacy: Carbon vs. Cocoa.

    "The Finder sucks because it's a Carbon app. What they exigency is a Cocoa Finder! Surely that will solve everyone their woes." Well, Snow Leopard features a 64-bit Finder, and as they everyone know, Carbon was not ported to 64-bit. Et voila! A Cocoa Finder in Snow Leopard. (More on the woes in a bit.)

    The conversion to Cocoa followed the Snow Leopard formula: no recent features… except for maybe one or two. And so, the "new" Cocoa Finder looks and works almost exactly relish the faded Carbon Finder. The biggest indicator of its "Cocoa-ness" is the extensive employ of Core Animation transitions. For example, when a Finder window does its schizophrenic transformation from a sidebar-bedecked browser window to its minimally-adorned form, it no longer happens in a blink. Instead, the sidebar slides away and fades, the toolbar shrinks, and everything tucks in to shape its recent shape.

    Despite crossing the line in a few cases, the Core Animation transitions consequence build the application feel more polished, and yes, "more Cocoa." And presumably the employ of Cocoa made it so darn simple to add features that the developers just couldn't resist throwing in a few.

    The number-one feature request from massive column-view users has finally been implemented: sortable columns. The sort order applies to everyone columns at once, which isn't as nice as per-column sorting, but it's much better than nothing at all. The sort order can breathe set using a menu command (each of which has a keyboard shortcut) or by right-clicking in an unoccupied area of a column and selecting from the resulting context menu.

    Column view sorting context menu Enlarge / Column view sorting context menu Column view sorting menu Enlarge / Column view sorting menu

    Even the lowly icon view has been enhanced in Snow Leopard. Every icon-view window now includes a minute slider to control the size of the icons.

    The Finder's icon view with its recent
 slider controlThe Finder's icon view with its recent slider control

    This may look a bit odd—how often consequence people change icon sizes?—but it makes much more sense in the context of previewing images in the Finder. This employ case is made even more relevant by the recent expansion of the maximum icon size to 512x512 pixels.

    The icon previews themselves believe been enhanced to better match the abilities available in Quick Look. allocate it everyone together and you can smoothly zoom a minute PDF icon, for example, into the impressively high-fidelity preview shown below, complete with the capacity to rotate pages. One press of the space bar and you'll progress to the even larger and more supple Quick view view. It's a pretty smooth experience.

    Not your father's icon: 512x512 pixels of multi-page PDF previewingNot your father's icon: 512x512 pixels of multi-page PDF previewing

    QuickTime previews believe been similarly enhanced. As you zoom in on the icon, it transforms into a miniature movie player, adorned with an odd circular progress indicator. Assuming users are willing to wrangle with the vagaries of the Finder's view settings successfully enough to salvage icon view to stick for the windows where it's most useful, I contemplate that odd tiny slider is actually going to salvage a lot of use.

    The Finder's QuickTime preview. (The "glare" overlay is a bit much.)The Finder's QuickTime preview. (The "glare" overlay is a bit much.)

    List view also has a few enhancements—accidental, incidental, or otherwise. The drag area for each list view detail now spans the entire line. In Leopard, though the entire line was highlighted, only the file designation or icon portion could breathe dragged. Trying to drag anywhere else just extended the selection to other items in the list view as the cursor was moved. I'm not sure whether this change in behavior is intentional or if it's just an unexamined consequence of the underlying control used for list view in the recent Cocoa Finder. Either way, thumbs up.

    Double-clicking on the dividing line between two column headers in list view will "right-size" that column. For most columns, this means expanding or shrinking to minimally proper the widest value in the column. Date headers will progressively shrink to exhibit less verbose date formats. Supposedly, this worked intermittently in Leopard as well. But whether Cocoa is bringing this feature for the first time or is just making it toil correctly for the first time, it's a change for the better.

    Searching using the Finder's browser view is greatly improved by the implementation of one of those tiny things that many users believe been clamoring for year after year. There's now a preference to select the default scope of the search sphere in the Finder window toolbar. Can I salvage an amen?

    Default Finder search location: configurable at last.Default Finder search location: configurable at last.

    Along similar lines, there are other long-desired enhancements that will lunge a long route towards making the desktop environment feel more solid. A wonderful instance is the improved handling of the dreaded "cannot eject, disk in use" error. The obvious follow-up question from the user is, "Okay, so what's using it?" Snow Leopard finally provides that information.

    No more guessingNo more guessing

    (Yes, Mac OS X will decline to evict a disk if your current working directory in a command-line shell is on that disk. kindhearted of cool, but also kindhearted of annoying.)

    Another feasible user response to a disk-in-use error is, "I don't care. I'm in a hurry. Just evict it!" That's an option now as well.

    Forcible ejection in progressForcible ejection in progress

    Hm, but why did I salvage information about the offending application in one dialog, an option to obligate ejection in the other, but neither one presented both choices? It's a mystery to me, but presumably it's related to exactly what information the Finder has about the contention for the disk. (As always, the lsof command is available if you want to figure it out the old-fashioned way.)


    So does the recent Cocoa Finder finally expatriate everyone of those embarrassing bugs from the bad-old days of Carbon? Not quite. This is essentially the "1.0" release of the Cocoa Finder, and it has its participate of 1.0 bugs. Here's one discovered by Glen Aspeslagh (see image right).

    Do you survey it? If not, view closer at the order of the dates in the supposedly sorted "Date Modified" column. So yeah, that faded Finder magic has not been entirely extinguished.

    There also remains some weirdness in the operation of the icon grid. In a view where grid snap is turned on (or is enabled transiently by holding down the command key during a drag) icons look terrified of each other, leaving huge distances between themselves and their neighbors when they select which grid spot to snap to. It's as if the Finder lives in mortal terror that one of these files will someday salvage a 200-character filename that will overlap with a neighboring file's name.

    The worst incarnation of this behavior happens along the birthright edge of the screen where mounted volumes emerge on the desktop. (Incidentally, this is not the default; if you want to survey disks on your desktop, you must enable this preference in the Finder.) When I mount a recent disk, I'm often surprised to survey where it ends up appearing. If there are any icons remotely nearby to the birthright edge of the screen, the disk icon will decline to emerge there. Again, the Finder is not avoiding any actual designation or icon overlapping. It appears to breathe avoiding the mere possibility of overlapping at some unspecified point in the future. Silly.

    Finder report card

    Overall, the Snow Leopard Finder takes several significant steps forward—64-bit/Cocoa future-proofing, a few new, useful features, added polish—and only a few shuffles backwards with the slight overuse of animation and the continued presence of some puzzling bugs. Considering how long it took the Carbon Finder to salvage to its pre-Snow-Leopard feature set and level of polish, it's quite an achievement for a Cocoa Finder to match or exceed its predecessor in its very first release. I'm sure the Carbon vs. Cocoa warriors would believe had a sphere day with that statement, were Carbon not allocate out to pasture in Leopard. But it was, and to the victor lunge the spoils.


    Snow Leopard's headline "one recent feature" is support for Microsoft Exchange. This appears to be, at least partially, yet another hand-me-down from the iPhone, which gained support for Exchange in its 2.0 release and expanded on it in 3.0. Snow Leopard's Exchange support is weaved throughout the expected crop of applications in Mac OS X: iCal, Mail, and Address Book.

    The stout caveat is that it will only toil with a server running Exchange 2007 (Service Pack 1, Update Rollup 4) or later. While I'm sure Microsoft greatly appreciates any additional upgrade revenue this decision provides, it means that for users whose workplaces are quiet running older versions of Exchange, Snow Leopard's "Exchange support" might as well not exist.

    Those users are probably already running the only other viable Mac OS X Exchange client, Microsoft Entourage, so they'll likely just sit taut and wait for their IT departments to upgrade. Meanwhile, Microsoft is already making overtures to these users with the promised creation—finally—of an honest-to-goodness version of Outlook for Mac OS X.

    In my admittedly brief testing, Snow Leopard's Exchange support seems to toil as expected. I had to believe one of the Microsoft mavens in the Ars Orbiting HQ spin up an Exchange 2007 server just for the purposes of this review. However it was configured, everyone I had to enter in the Mail application was my complete name, e-mail address, and password, and it automatically discovered everyone relevant settings and configured iCal and Address reserve for me.

    Exchange setup: surprisingly easyExchange setup: surprisingly easy

    Windows users are no doubt accustomed to this kindhearted of Exchange integration, but it's the first time I've seen it on the Mac platform—and that includes my many years of using Entourage.

    Access to Exchange-related features is decidedly subdued, in keeping with the existing interfaces for Mail, iCal, and Address Book. If you're expecting the swarm of panels and toolbar buttons institute in Outlook on Windows, you're in for a bit of a shock. For example, here's the "detail" view of a meeting in iCal.

    iCal event detailiCal event detail

    Clicking the "edit" button hardly reveals more.

    Event editor: that's it?Event editor: that's it?

    The "availability" window also includes the bare minimum number of controls and displays to salvage the job done.

    Meeting availability checker Enlarge / Meeting availability checker

    The integration into Mail and Address reserve is even more subtle—almost entirely transparent. This is to breathe construed as a feature, I suppose. But though I don't know enough about Exchange to breathe completely sure, I can't shiver the sentiment that there are Exchange features that remain inaccessible from Mac OS X clients. For example, how consequence I reserve a "resource" in a meeting? If there's a route to consequence so, I couldn't discover it.

    Still, even basic Exchange integration out-of-the-box goes long route towards making Mac OS X more welcome in corporate environments. It remains to breathe seen how convinced IT managers are of the "realness" of Snow Leopard's Exchange integration. But I've got to contemplate that being able to route and receive mail, create and respond to meeting invitations, and employ the global corporate address reserve is enough for any Mac user to salvage along reasonably well in an Exchange-centric environment.


    The thing is, there's not really much to sigh about performance in Snow Leopard. Dozens of benchmark graphs lead to the selfsame simple conclusion: Snow Leopard is faster than Leopard. Not shockingly so, at least in the aggregate, but it's faster. And while isolating one particular subsystem with a micro-benchmark may divulge some impressive numbers, it's the route these minute changes combine to improve the real-world experience of using the system that really makes a difference.

    One instance Apple gave at WWDC was making an initial Time Machine backup over the network to a Time Capsule. Apple's approach to optimizing this operation was to address each and every subsystem involved.

    Time Machine itself was given support for overlapping i/o. Spotlight indexing, which happens on Time Machine volumes as well, was identified as another time-consuming chore involved in backups, so its performance was improved. The networking code was enhanced to choose advantage of hardware-accelerated checksums where possible, and the software checksum code was hand-tuned for maximum performance. The performance of HFS+ journaling, which accompanies each file system metadata update, was also improved. For Time Machine backups that write to disk images rather than native HFS+ file systems, Apple added support for concurrent access to disk images. The amount of network traffic produced by AFP during backups has also been reduced.

    All of this adds up to a respectable 55% overall improvement in the hasten of an initial Time Machine backup. And, of course, the performance improvements to the individual subsystems benefit everyone applications that employ them, not just Time Machine.

    This holistic approach to performance improvement is not likely to knock anyone's socks off, but every time you rush across a piece of functionality in Snow Leopard that disproportionately benefits from one of these optimized subsystems, it's a pleasure.

    For example, Snow Leopard shuts down and restarts much faster than Leopard. I'm not talking about boot time; I weighin the time between the selection of the Shutdown or Restart command and when the system turns off or begins its recent boot cycle. Leopard doesn't choose long at everyone to consequence this; only a few dozen of seconds when there are no applications open. But in Snow Leopard, it's so speedy that I often thought the operating system had crashed rather than shut down cleanly. (That's actually not too far from the truth.)

    The performance boosts offered by earlier major releases of Mac OS X quiet dwarf Snow Leopard's speedup, but that's mostly because Mac OS X was so excruciatingly sluggish in its early years. It's simple to create a stout performance delta when you're starting from something abysmally slow. The fact that Snow Leopard achieves consistent, measurable improvements over the already-speedy Leopard is everyone the more impressive.

    And yes, for the seventh consecutive time, a recent release of Mac OS X is faster on the selfsame hardware than its predecessor. (And for the first time ever, it's smaller, too.) What more can you interrogate for, really? Even that faded performance bugaboo, window resizing, has been completely vanquished. Grab the corner of a fully-populated iCal window—the worst-case scenario for window resizing in the faded days—and shiver it as speedy as you can. Your cursor will never breathe more than a few millimeters from the window's grab handle; it tracks your frantic motion perfectly. On most Macs, this is actually precise in Leopard as well. It just goes to exhibit how far Mac OS X has forward on the performance front. These days, they everyone just choose it for granted, which is exactly the route it should be.

    Grab bag

    In the "grab bag" section, I usually examine smaller, mostly unrelated features that don't warrant full-blown sections of their own. But when it comes to user-visible features, Snow Leopard is kindhearted of "all grab bag," if you know what I mean. Apple's even got its own incarnation in the shape of a giant webpage of "refinements." I'll probably overlap with some of those, but there'll breathe a few recent ones here as well.

    New columns in open/save dialogs

    The list view in open and deliver dialog boxed now supports more than just "Name" and "Date Modified" columns. Right-click on any column to salvage a altenative of additional columns to display. I've wanted this feature for a long time, and I'm lighthearted someone finally had time to implement it.

    Configurable columns in open/save dialogsConfigurable columns in open/save dialogs Improved scanner support

    The bundled Image Capture application now has the capacity to talk to a wide compass of scanners. I plugged in my Epson Stylus CX7800, a device that previously required the employ of third-party software in order to employ the scanning feature, and Image Capture detected it immediately.

    Epson scanner + Image Capture - Epson software Enlarge / Epson scanner + Image Capture - Epson software

    Image Capture is also not a unpleasant tiny scanning application. It has pretty wonderful automatic demur detection, including support for multiple objects, obviating the exigency to manually crop items. Given the sometimes-questionable character of third-party printer and scanner drivers for Mac OS X, the capacity to employ a bundled application is welcome.

    System Preferences bit wars

    System Preferences, relish virtually everyone other applications in Snow Leopard, is 64-bit. But since 64-bit applications can't load 32-bit plug-ins, that presents a problem for the existing crop of 32-bit third-party preference panes. System Preferences handles this situation with a reasonable amount of grace. On launch, it will display icons for everyone installed preference panes, 64-bit or 32-bit. But if you click on a 32-bit preference pane, you'll breathe presented with a notification relish this:

    64-bit application vs. 32-bit plug-in: fight!64-bit application vs. 32-bit plug-in: fight!

    Click "OK" and System Preferences will relaunch in 32-bit mode, which is conveniently indicated in the title bar. Since everyone of the first-party preference panes are compiled for both 64-bit and 32-bit operation, System Preferences does not exigency to relaunch again for the duration of its use. This raises the question, why not believe System Preferences launch in 32-bit mode everyone the time? I suspect it's just another route for Apple to "encourage" developers to build 64-bit-compatible binaries.

    Safari plug-ins

    The inability of of 64-bit applications load 32-bit plug-ins is a problem for Safari as well. Plug-ins are so necessary to the Web experience that relaunching in 32-bit mode is not really an option. You'd probably exigency to relaunch as soon as you visited your first webpage. But Apple does want Safari to rush in 64-bit mode due to some significant performance enhancements in the JavaScript engine and other areas of the application that are not available in 32-bit mode.

    Apple's solution is similar to what it did with QuickTime X and 32-bit QuickTime 7 plug-ins. Safari will rush 32-bit plug-ins in separate 32-bit processes as needed.

    Separate processes for 32-bit Safari plug-insSeparate processes for 32-bit Safari plug-ins

    This has the added, extremely significant benefit of isolating potentially buggy plug-ins. According to the automated crash reporting built into Mac OS X, Apple has said that the number one cause of crashes is Web browser plug-ins. That's not the number one cause of crashes in Safari, repartee you, it's the number one cause when considering everyone crashes of everyone applications in Mac OS X. (And though it was not mentioned by name, I contemplate they everyone know the primary culprit.)

    As you can survey above, the QuickTime browser plug-in gets the selfsame treatment as flash and other third-party 32-bit Safari plug-ins. everyone of this means that when a plug-in crashes, Safari in Snow Leopard does not. The window or tab containing the crashing plug-in doesn't even close. You can simply click the reload button and give the problematic plug-in another random to role correctly.

    While this is quiet far from the much more robust approach employed by Google Chrome, where each tab lives in its own independent process, if Apple's crash statistics are to breathe believed, isolating plug-ins may generate most of the benefit of truly separate processes with a significantly less radical change to the Safari application itself.

    Resolution independence

    When they last left Mac OS X in its seemingly interminable march towards a truly scalable user interface, it was almost ready for prime time. I'm downhearted to sigh that resolution independence was obviously not a priority in Snow Leopard, because it hasn't gotten any better, and may believe actually regressed a bit. Here's what TextEdit looks relish at a 2.0 scale factor in Leopard and Snow Leopard.

    TextEdit at scale factor 2.0 in LeopardTextEdit at scale factor 2.0 in Leopard TextEdit at scale factor 2.0 in Snow LeopardTextEdit at scale factor 2.0 in Snow Leopard

    Yep, it's a bummer. I quiet remember Apple advising developers to believe their applications ready for resolution independence by 2008. That's one of the few dates that the Jobs-II-era Apple has not been able to hit, and it's getting later everyone the time. On the other hand, it's not relish 200-DPI monitors are raining from the sky either. But I'd really relish to survey Apple salvage going on this. It will undoubtedly choose a long time for everything to view and toil correctly, so let's salvage started.

    Terminal splitters

    The Terminal application in Tiger and earlier versions of Mac OS X allowed each of its windows to breathe split horizontally into two separate panes. This was invaluable for referencing some earlier text in the scrollback while also typing commands at the prompt. Sadly, the splitter feature disappeared in Leopard. In Snow Leopard, it's back with a vengeance.

    Arbitrary splitters, baby!Arbitrary splitters, baby!

    (Now if only my favorite text editor would salvage on board the train to splittersville.)

    Terminal in Snow Leopard also defaults to the recent Menlo font. But perverse to earlier reports, the One precise Monospaced Font, Monaco, is most definitely quiet included in Snow Leopard (see screenshot above) and it works just fine.

    System Preferences shuffle

    The seemingly obligatory rearrangement of preference panes in the System Preferences application accompanying each release of Mac OS X continues in Snow Leopard.

    System Preferences: shuffled yet again Enlarge / System Preferences: shuffled yet again System Preferences (not running) with Dock menuSystem Preferences (not running) with Dock menu

    This time, the "Keyboard & Mouse" preference pane is split into separate "Keyboard" and "Mouse" panes, "International" becomes "Language & Text," and the "Internet & Network" section becomes "Internet & Wireless" and adopts the Bluetooth preference pane.

    Someday in the distant future, perhaps Apple will finally arrive at the "ultimate" arrangement of preference panes and they can everyone finally lunge more than two years without their muscle remembrance being disrupted.

    Before piteous on, System Preferences has one antiseptic trick. You can launch directly into a specific preference pane by right-clicking on System Preferences's Dock icon. This works even when System Preferences is not yet running. kindhearted of creepy, but useful.

    Core location

    One more gift from the iPhone, Core Location, allows Macs to figure out where in the world they are. The "Date & Time" preference pane offers to set your time zone automatically based on your current location using this newfound ability.

    Set your Mac's time zone automatically based on your current location, thanks to Core Location.Set your Mac's time zone automatically based on your current location, thanks to Core Location. Keyboard magic

    Snow Leopard includes a simple facility for system-wide text auto-correction and expansion, accessible from the "Language & Text" preference pane. It's not quite ready to give a dedicated third-party application a rush for its money, but hey, it's free.

    Global text expansion and auto-correction Enlarge / Global text expansion and auto-correction

    The keyboard shortcuts preference pane has also been rearranged. Now, instead of a single, long list of system-wide keyboard shortcuts, they're arranged into categories. This reduces clutter, but it also makes it a bit more difficult to find the shortcut you're interested in.

    Keyboard shortcuts: now with categories Enlarge / Keyboard shortcuts: now with categories The sleeping Mac dilemma

    I don't relish to leave my Mac Pro turned on 24 hours a day, especially during the summer in my un-air-conditioned house. But I consequence want to believe access to the files on my Mac when I'm elsewhere—at work, on the road, etc. It is feasible to wake a sleeping Mac remotely, but doing so requires being on the selfsame local network.

    My solution has been to leave a smaller, more power-efficient laptop on at everyone times on the selfsame network as my Mac Pro. To wake my Mac Pro remotely, I ssh into the laptop, then route the magic "wake up" packet to my Mac Pro. (For this to work, the "Wake for Ethernet network administrator access" checkbox must breathe checked in the "Energy Saver" preference pane in System Preferences.)

    Snow Leopard provides a route to consequence this without leaving any of my computers running everyone day. When a Mac running Snow Leopard is allocate to sleep, it attempts to hand off ownership of its IP address to its router. (This only works with an AirPort Extreme ground station from 2007 or later, or a Time Capsule from 2008 or later with the latest (7.4.2) firmware installed.) The router then listens for any attempt to connect to the IP address. When one occurs, it wakes up the original owner, hands back the IP address, and forwards traffic appropriately.

    You can even wake some recent-model Macs over WiFi. Combined with MobileMe's "Back to My Mac" dynamic DNS thingamabob, it means I can leave everyone my Macs asleep and quiet believe access to their contents anytime, anywhere.

    Back to my hack

    As has become traditional, this recent release of Mac OS X makes life a bit harder for developers whose software works by patching the in-memory representation of other running applications or the operating system itself. This includes Input Managers, SIMBL plug-ins, and of course the dreaded "Haxies."

    Input Managers salvage the worst of it. They've actually been unsupported and non-functional in 64-bit applications since Leopard. That wasn't such a stout deal when Mac OS X shipped with a whopping two 64-bit applications. But now, with almost every application in Snow Leopard going 64-bit, it's suddenly very significant.

    Thanks to Safari's need of an officially sanctioned extension mechanism, developers looking to enhance its functionality believe most often resorted to the employ of Input Managers and SIMBL (which is an Input-Manager-based framework). A 64-bit Safari puts a damper on that entire market. Though it is feasible to manually set Safari to launch in 32-bit mode—Get Info on the application in the Finder and click a checkbox—ideally, this is not something developers want to obligate users to do.

    Happily, at least one commonly used Safari enhancement has the wonderful fortune to breathe built on top of the officially supported browser plug-in API used by Flash, QuickTime, etc. But that may not breathe a feasible approach for Safari extensions that enhance functionality in ways not tied directly to the display of particular types of content within a webpage.

    Though I method to rush Safari in its default 64-bit mode, I'll really miss Saft, a Safari extension I employ for session restoration (yes, I know Safari has this feature, but it's activated manually—the horror) and address bar shortcuts (e.g., "w noodles" to view up "noodles" in Wikipedia). I'm hoping that ingenious developers will find a route to overcome this recent challenge. They always look to, in the end. (Or Apple could add a proper extension system to Safari, of course. But I'm not holding my breath.)

    As for the Haxies, those usually shatter with each major operating system update as a matter of course. And each time, those determined fellows at Unsanity, against everyone odds, manage to preserve their software working. I salute them for their effort. I delayed upgrading to Leopard for a long time based solely on the absence of my beloved WindowShade X. I hope I don't believe to wait too long for a Snow-Leopard-compatible version.

    The general trend in Mac OS X is away from any sort of involuntary remembrance space sharing, and towards "external" plug-ins that live in their own, separate processes. Even contextual menu plug-ins in the Finder believe been disabled, replaced by an enhanced, but quiet less-powerful Services API. Again, I believe faith that developers will adapt. But the waiting is the hardest part.


    It looks relish we'll everyone breathe waiting a while longer for a file system in shining armor to replace the venerable HFS+ (11 years young!) as the default file system in Mac OS X. Despite rumors, outright declarations, and much actual pre-release code, support for the impressive ZFS file system is not present in Snow Leopard.

    That's a shame because Time Machine veritably cries out for some ZFS magic. What's more, Apple seems to agree, as evidenced by a post from an Apple employee to a ZFS mailing list last year. When asked about a ZFS-savvy implementation of Time Machine, the reply was encouraging: "This one is necessary and likely will forward sometime, but not for SL." ("SL" is short for Snow Leopard.)

    There are many reasons why ZFS (or a file system with similar features) is a flawless proper for Time Machine, but the most necessary is its capacity to route only the block-level changes during each backup. As Time Machine is currently implemented, if you build a minute change to a giant file, the entire giant file is copied to the Time Machine volume during the next backup. This is extremely wasteful and time consuming, especially for large files that are modified constantly during the day (e.g., Entourage's e-mail database). Time Machine running on top of ZFS could transfer just the changed disk blocks (a maximum of 128KB each in ZFS, and usually much smaller).

    ZFS would also bring vastly increased robustness for data and metadata, a pooled storage model, constant-time snapshots and clones, and a pony. People sometimes interrogate what, exactly, is wrong with HFS+. Aside from its obvious need of the features just listed, HFS+ is limited in many ways by its dated design, which is based on HFS, a twenty-five year-old file system.

    To give just one example, the centrally located Catalog File, which must breathe updated for each change to the file system's structure, is a frequent and inevitable source of contention. Modern file systems usually spread their metadata around, both for robustness (multiple copies are often kept in separate locations on the disk) and to allow for better concurrency.

    Practically speaking, contemplate about those times when you rush Disk Utility on an HFS+ volume and it finds (and hopefully repairs) a bunch of errors. That's bad, okay? That's something that should not occur with a modern, thoroughly checksummed, always-consistent-on-disk file system unless there are hardware problems (and a ZFS storage pool can actually deal with that as well). And yet it happens everyone the time with HFS+ disks in Mac OS X when various bits of metadata salvage corrupted or become out of date.

    Apple gets by year after year, tacking recent features onto HFS+ with duct tape and a prayer, but at a inescapable point there simply has to breathe a successor—whether it's ZFS, a home-grown Apple file system, or something else entirely. My fingers are crossed for Mac OS X 10.7.

    The future soon

    Creating an operating system is as much a social exercise as a technological one. Creating a platform, even more so. everyone of Snow Leopard's considerable technical achievements are not just designed to benefit users; they're also intended to goad, persuade, and otherwise herd developers in the direction that Apple feels will breathe most profitable for the future of the platform.

    For this to work, Snow Leopard has to actually find its route into the hands of customers. The pricing helps a lot there. But even if Snow Leopard were free, there's quiet some cost to the consumer—in time, worry, software updates, etc.—when performing a major operating system upgrade. The selfsame goes for developers who must, at the very least, certify that their existing applications rush correctly on the recent OS.

    The accustomed route to overcome this kindhearted of upgrade hesitation has been to pack the OS with recent features. recent features sell, and the more copies of the recent operating system in use, the more motivated developers are to update their applications to not just rush on the recent OS, but also choose advantage of its recent abilities.

    A major operating system upgrade with "no recent features" must play by a different set of rules. Every party involved expects some counterbalance to the need of recent features. In Snow Leopard, developers stand to reap the biggest benefits thanks to an impressive set of recent technologies, many of which cover areas previously unaddressed in Mac OS X. Apple clearly feels that the future of the platform depends on much better utilization of computing resources, and is doing everything it can to build it simple for developers to lunge in this direction.

    Though it's obvious that Snow Leopard includes fewer external features than its predecessor, I'd wager that it has just as many, if not more internal changes than Leopard. This, I fear, means that the initial release of Snow Leopard will likely suffer the typical 10.x.0 bugs. There believe already been reports of recent bugs introduced to existing APIs in Snow Leopard. This is the exact opposite of Snow Leopard's implied engage to users and developers that it would concentrate on making existing features faster and more robust without introducing recent functionality and the accompanying recent bugs.

    On the other side of the coin, I imagine everyone the teams at Apple that worked on Snow Leopard absolutely reveled in the opportunity to polish their particular subsystems without being burdened by supporting the marketing-driven feature-of-the-month. In any long-lived software product, there needs to breathe this kindhearted of release valve every few years, lest the entire code ground lunge off into the weeds.

    There's been one other "no recent features" release of Mac OS X. Mac OS X 10.1, released a mere six months after version 10.0, was handed out for free by Apple at the 2001 Seybold publishing conference and, later, at Apple retail stores. It was also available from Apple's online store for $19.95 (along with a copy of Mac OS 9.2.1 for employ in the Classic environment). This was a different time for Mac OS X. Versions 10.0 and 10.1 were slow, incomplete, and extremely immature; the transition from classic Mac OS was far from over.

    Judged as a modern incarnation of the 10.1 release, Snow Leopard looks pretty darned good. The pricing is similar, and the benefits—to developers and to users—are greater. So is the risk. But again, that has more to consequence with how horrible Mac OS X 10.0 was. Choosing not to upgrade to 10.1 was unthinkable. Waiting a while to upgrade to Snow Leopard is reasonable if you want to breathe sure that everyone the software you keeping about is compatible. But don't wait too long, because at $29 for the upgrade, I await Snow Leopard adoption to breathe quite rapid. Software that will rush only on Snow Leopard may breathe here before you know it.

    Should you buy Mac OS X Snow Leopard? If you're already running Leopard, then the acknowledge is a resounding "yes." If you're quiet running Tiger, well, then it's probably time for a recent Mac anyway. When you buy one, it'll forward with Snow Leopard.

    As for the future, it's tempting to view Snow Leopard as the "tick" in a recent Intel-style "tick-tock" release strategy for Mac OS X: radical recent features in version 10.7 followed by more Snow-Leopard-style refinements in 10.8, and so on, alternating between "feature" and "refinement" releases. Apple has not even hinted that they're considering this kind of plan, but I contemplate there's a lot to recommend it.

    Snow Leopard is a unique and pleasing release, unlike any that believe forward before it in both scope and intention. At some point, Mac OS X will surely exigency to salvage back on the bullet-point-features bandwagon. But for now, I'm content with Snow Leopard. It's the Mac OS X I know and love, but with more of the things that build it frail and bizarre engineered away.

    Snowy eyes Looking back

    This is the tenth review of a complete Mac OS X release, public beta, or developer preview to rush on Ars, dating back to December 1999 and Mac OS X DP2. If you want to jump into the Wayback Machine and survey how far Apple has forward with Snow Leopard (or just want to bone up on everyone of the stout cat monikers), we've gone through the archives and dug up some of their older Mac OS X articles. gratified reading!

  • Five years of Mac OS X, March 24, 2006
  • Mac OS X 10.5 Leopard, October 28, 2007
  • Mac OS X 10.4 Tiger, April 28, 2005
  • Mac OS X 10.3 Panther, November 9, 2003
  • Mac OS X 10.2 Jaguar, September 5, 2002
  • Mac OS X 10.1 (Puma), October 15, 2001
  • Mac OS X 10.0 (Cheetah), April 2, 2001
  • Mac OS X Public Beta, October 3, 2000
  • Mac OS X Q & A, June 20, 2000
  • Mac OS X DP4, May 24, 2000
  • Mac OS X DP3: affliction by Water, February 28, 2000
  • Mac OS X Update: Quartz & Aqua, January 17, 2000
  • Mac OS X DP2, December 14, 1999

  • Mozilla to cessation Firefox support for OS X 10.6, 10.7, and 10.8 in August | actual questions and Pass4sure dumps

    Yesterday, Mozilla announced the cessation of Firefox support for Apple customers using Mac OS X versions 10.6, 10.7, and 10.8. The cutoff date is August 2016.

    Mozilla says it took this step following Apple's decision to cessation support for these OS X versions as well.

    Apple released Mac OS X 10.6 (Snow Leopard) in August 2009, Mac OS X 10.7 (Lion) in July 2011, and Mac OS X 10.8 (Mountain Lion) in July 2012. Apple announced the cessation of official support for Snow Leopard in February 2014, for Lion in October 2014, and for Mountain Lion in December 2014.

    Now, Mozilla is saw that, after August 2016, Firefox versions running on these operating systems will no longer receive recent features or security updates.

    Firefox ESR (Extended support Release) will continue to support these three OS versions until mid-August 2017, when it will also stop delivering recent features or security updates.

    At the start of the month, Google also pulled the plug on Google Chrome for OS X 10.6, 10.7, and 10.8, along with Windows XP and Vista.

    According to statistics at the cessation of October 2015, zero of the aforementioned OS X versions had a market participate above 10% among Mac users. The biggest chunk belonged to Snow Leopard, but most Mac users already started migrating to Mavericks (10.9), Yosemite (10.10) and El Capitan (10.11).

    "Mozilla strongly encourages their users to upgrade to a version of OS X currently supported by Apple. Unsupported operating systems receive no security updates, believe known exploits, and are perilous for you to use," Mozilla advised customers yesterday.

    Discovering Mac OS X 10.6 Snow Leopard | actual questions and Pass4sure dumps

    See what Apple gives you in this Mac OS X update for just $29. You won't survey stout interface changes, but there has been a lot of toil done under the hood. Eric Geier discusses most of the performance enhancements and recent features.

    Like this article? They recommend 

    Apple released an update to the Mac OS X operating system (OS), Snow Leopard, at the cessation of August. This makes it version 10.6. Although it might not believe as many visual changes as Windows 7 does from Vista, it does believe many notable enhancements and additions. The first thing you'll probably notice is the price: It's only $29 to upgrade from version 10.5.

    Since Tiger, Apple has been adding more and more 64-bit support. The Mac OS X kernel in Snow Leopard and most of the OS applications believe been rebuilt to rush at 64-bit in addition to 32-bit. However, this excludes iTunes, Front Row, Grapher, and DVD Player applications. Plus birthright now only a select number of Apple computers are compatible with everyone the added support.

    If you aren't a power user and believe a typical 32-bit processor, this doesn't support you out. But if you consequence invest in a more powerful system, Mac OS X is ready more than ever.

    Running a 64-bit processor means it can process bigger chunks of data more quickly, giving you a faster, higher-performing computer.

    Direct Download of over 5500 Certification Exams

    3COM [8 Certification Exam(s) ]
    AccessData [1 Certification Exam(s) ]
    ACFE [1 Certification Exam(s) ]
    ACI [3 Certification Exam(s) ]
    Acme-Packet [1 Certification Exam(s) ]
    ACSM [4 Certification Exam(s) ]
    ACT [1 Certification Exam(s) ]
    Admission-Tests [13 Certification Exam(s) ]
    ADOBE [93 Certification Exam(s) ]
    AFP [1 Certification Exam(s) ]
    AICPA [2 Certification Exam(s) ]
    AIIM [1 Certification Exam(s) ]
    Alcatel-Lucent [13 Certification Exam(s) ]
    Alfresco [1 Certification Exam(s) ]
    Altiris [3 Certification Exam(s) ]
    Amazon [2 Certification Exam(s) ]
    American-College [2 Certification Exam(s) ]
    Android [4 Certification Exam(s) ]
    APA [1 Certification Exam(s) ]
    APC [2 Certification Exam(s) ]
    APICS [2 Certification Exam(s) ]
    Apple [69 Certification Exam(s) ]
    AppSense [1 Certification Exam(s) ]
    APTUSC [1 Certification Exam(s) ]
    Arizona-Education [1 Certification Exam(s) ]
    ARM [1 Certification Exam(s) ]
    Aruba [6 Certification Exam(s) ]
    ASIS [2 Certification Exam(s) ]
    ASQ [3 Certification Exam(s) ]
    ASTQB [8 Certification Exam(s) ]
    Autodesk [2 Certification Exam(s) ]
    Avaya [96 Certification Exam(s) ]
    AXELOS [1 Certification Exam(s) ]
    Axis [1 Certification Exam(s) ]
    Banking [1 Certification Exam(s) ]
    BEA [5 Certification Exam(s) ]
    BICSI [2 Certification Exam(s) ]
    BlackBerry [17 Certification Exam(s) ]
    BlueCoat [2 Certification Exam(s) ]
    Brocade [4 Certification Exam(s) ]
    Business-Objects [11 Certification Exam(s) ]
    Business-Tests [4 Certification Exam(s) ]
    CA-Technologies [21 Certification Exam(s) ]
    Certification-Board [10 Certification Exam(s) ]
    Certiport [3 Certification Exam(s) ]
    CheckPoint [41 Certification Exam(s) ]
    CIDQ [1 Certification Exam(s) ]
    CIPS [4 Certification Exam(s) ]
    Cisco [318 Certification Exam(s) ]
    Citrix [47 Certification Exam(s) ]
    CIW [18 Certification Exam(s) ]
    Cloudera [10 Certification Exam(s) ]
    Cognos [19 Certification Exam(s) ]
    College-Board [2 Certification Exam(s) ]
    CompTIA [76 Certification Exam(s) ]
    ComputerAssociates [6 Certification Exam(s) ]
    Consultant [2 Certification Exam(s) ]
    Counselor [4 Certification Exam(s) ]
    CPP-Institue [2 Certification Exam(s) ]
    CPP-Institute [1 Certification Exam(s) ]
    CSP [1 Certification Exam(s) ]
    CWNA [1 Certification Exam(s) ]
    CWNP [13 Certification Exam(s) ]
    Dassault [2 Certification Exam(s) ]
    DELL [9 Certification Exam(s) ]
    DMI [1 Certification Exam(s) ]
    DRI [1 Certification Exam(s) ]
    ECCouncil [21 Certification Exam(s) ]
    ECDL [1 Certification Exam(s) ]
    EMC [129 Certification Exam(s) ]
    Enterasys [13 Certification Exam(s) ]
    Ericsson [5 Certification Exam(s) ]
    ESPA [1 Certification Exam(s) ]
    Esri [2 Certification Exam(s) ]
    ExamExpress [15 Certification Exam(s) ]
    Exin [40 Certification Exam(s) ]
    ExtremeNetworks [3 Certification Exam(s) ]
    F5-Networks [20 Certification Exam(s) ]
    FCTC [2 Certification Exam(s) ]
    Filemaker [9 Certification Exam(s) ]
    Financial [36 Certification Exam(s) ]
    Food [4 Certification Exam(s) ]
    Fortinet [12 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 [746 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 [1530 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 [63 Certification Exam(s) ]
    LEED [1 Certification Exam(s) ]
    Legato [5 Certification Exam(s) ]
    Liferay [1 Certification Exam(s) ]
    Logical-Operations [1 Certification Exam(s) ]
    Lotus [66 Certification Exam(s) ]
    LPI [24 Certification Exam(s) ]
    LSI [3 Certification Exam(s) ]
    Magento [3 Certification Exam(s) ]
    Maintenance [2 Certification Exam(s) ]
    McAfee [8 Certification Exam(s) ]
    McData [3 Certification Exam(s) ]
    Medical [69 Certification Exam(s) ]
    Microsoft [368 Certification Exam(s) ]
    Mile2 [2 Certification Exam(s) ]
    Military [1 Certification Exam(s) ]
    Misc [1 Certification Exam(s) ]
    Motorola [7 Certification Exam(s) ]
    mySQL [4 Certification Exam(s) ]
    NBSTSA [1 Certification Exam(s) ]
    NCEES [2 Certification Exam(s) ]
    NCIDQ [1 Certification Exam(s) ]
    NCLEX [2 Certification Exam(s) ]
    Network-General [12 Certification Exam(s) ]
    NetworkAppliance [36 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 [269 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 [11 Certification Exam(s) ]
    PEOPLECERT [4 Certification Exam(s) ]
    PMI [15 Certification Exam(s) ]
    Polycom [2 Certification Exam(s) ]
    PostgreSQL-CE [1 Certification Exam(s) ]
    Prince2 [6 Certification Exam(s) ]
    PRMIA [1 Certification Exam(s) ]
    PsychCorp [1 Certification Exam(s) ]
    PTCB [2 Certification Exam(s) ]
    QAI [1 Certification Exam(s) ]
    QlikView [1 Certification Exam(s) ]
    Quality-Assurance [7 Certification Exam(s) ]
    RACC [1 Certification Exam(s) ]
    Real-Estate [1 Certification Exam(s) ]
    RedHat [8 Certification Exam(s) ]
    RES [5 Certification Exam(s) ]
    Riverbed [8 Certification Exam(s) ]
    RSA [15 Certification Exam(s) ]
    Sair [8 Certification Exam(s) ]
    Salesforce [5 Certification Exam(s) ]
    SANS [1 Certification Exam(s) ]
    SAP [98 Certification Exam(s) ]
    SASInstitute [15 Certification Exam(s) ]
    SAT [1 Certification Exam(s) ]
    SCO [10 Certification Exam(s) ]
    SCP [6 Certification Exam(s) ]
    SDI [3 Certification Exam(s) ]
    See-Beyond [1 Certification Exam(s) ]
    Siemens [1 Certification Exam(s) ]
    Snia [7 Certification Exam(s) ]
    SOA [15 Certification Exam(s) ]
    Social-Work-Board [4 Certification Exam(s) ]
    SpringSource [1 Certification Exam(s) ]
    SUN [63 Certification Exam(s) ]
    SUSE [1 Certification Exam(s) ]
    Sybase [17 Certification Exam(s) ]
    Symantec [134 Certification Exam(s) ]
    Teacher-Certification [4 Certification Exam(s) ]
    The-Open-Group [8 Certification Exam(s) ]
    TIA [3 Certification Exam(s) ]
    Tibco [18 Certification Exam(s) ]
    Trainers [3 Certification Exam(s) ]
    Trend [1 Certification Exam(s) ]
    TruSecure [1 Certification Exam(s) ]
    USMLE [1 Certification Exam(s) ]
    VCE [6 Certification Exam(s) ]
    Veeam [2 Certification Exam(s) ]
    Veritas [33 Certification Exam(s) ]
    Vmware [58 Certification Exam(s) ]
    Wonderlic [2 Certification Exam(s) ]
    Worldatwork [2 Certification Exam(s) ]
    XML-Master [3 Certification Exam(s) ]
    Zend [6 Certification Exam(s) ]

    References :

    Dropmark :
    Wordpress :
    Scribd :
    Issu :
    weSRCH :
    Dropmark-Text :
    Blogspot :
    Youtube :
    RSS Feed :
    Vimeo :
    Google+ : :
    Calameo : : :

    Back to Main Page
    About Killexams exam dumps | |