Multicore, Virtualization, and the MacBook Pro - by Michael Jeronimo

When I was a kid in the San Francisco Bay Area, my friends and I loved to play baseball and follow our local pro teams. In our group you were either a San Francisco Giants fan or an Oakland A's fan; there was no middle ground. We would often talk about how cool it would be for the Giants to play the A's in the World Series so we could see which team was really the best. In the back of our minds, we knew it would never happen, but we wished for it every year just the same (eventually, in 1989, the two teams did finally meet in the World Series, but the series was interrupted by the Loma Prieta earthquake!).

Later, as a software developer at Intel, I had a similar feeling: how cool would it be if Apple used Intel microprocessors and ran the Mac OS! My developer friends and I wished and waited, but we figured it would never really happen. Then, we were caught by surprise: Paul Otellini took over as CEO at Intel and soon announced that Apple was actually going to use Intel processors.

By that time, I had been using Microsoft Windows on Intel platforms exclusively for over a decade and was quite familiar with the hassles of running Windows. I hadn't used an Apple computer in 20 years -- an Apple IIe with a 1 MHz processor, external floppy drive, and nifty green monochrome display that gave off an eerie glow.

Since the announcement of Apple's plans to use Intel processors, I have periodically tried out their computers, planning to eventually make the switch. The day has finally arrived. Last week I acquired a new Core 2 Duo-based MacBook Pro for work. After using it for a week, I feel like I could easily become an evangelist for these systems. They have a lot to offer a Windows developer. I have especially enjoyed having things just work instead of wasting time debugging problems. For example, the first time I plugged the MacBook into my Cinema Display, the new display was detected correctly and I automatically had a desktop that spanned the built-in display and the external Cinema Display. I popped in a DVD (Cream's concert at the Albert Hall). The DVD came up full screen on the Cinema Display and automatically began playing. Pleasant surprises like these have shown me how, on the Windows platform, I had become trained to expect things NOT to work.

I've also installed Parallels on the new MacBook (a virtualization product that allows one to run Windows in a virtual machine hosted on the Mac OS). This product takes advantage of the hardware virtualization support in the Core 2 Duo processor. The Parallels installation was also brain dead simple and allowed me to create a Windows Vista virtual machine by simply entering the license key, putting the Vista DVD in the drive, and clicking OK. This is how things should work.

Thanks to the horsepower of the Core 2 Duo and its VT support, I now have what I think is a near ideal situation: the elegance of the Mac user interface, the power of the underlying Mach/BSD operating system, and the ability to run Windows and Linux in virtual machines when needed. In fact, I will likely create a catalog of virtual machines, ready to run, so that I can develop and test software on different operating systems.

If you are a software developer and are not into virtualization yet, you should be. Multi-core processors combined with hardware virtualization allow you to do some amazing things (in fact, Sean Campbell and I gathered about a hundred ideas and wrote a book for Intel Press exclusively on virtualization usage models. We cover software development scenarios, software testing, marketing and sales, and more. Check out the Intel Press site for more information). While the Giants and A's series didn't turn out so well, the Intel/Apple combination was worth the wait. If you're a Windows developer considering a switch, go ahead. You won't be disappointed.

Michael Jeronimo
Для получения подробной информации о возможностях оптимизации компилятора обратитесь к нашему Уведомлению об оптимизации.