I’ve been meaning to give OS X for sometime now. I wasn’t very enthusiastic about the OS a couple years back, but lately my interest in it has been piqued.
Why OS X?
Why am I interested in OS X? The answer is probably not something you hear from most people —it’s the terminal.
Wha?! Yes, you heard me, the OS X terminal is what a modern shell should be, and Windows ought to be ashamed its command prompt that’s lacking basics such as tab completion for commands. I do a fair bit of sysadmin work and programming, so the console is a rather huge part of my workflow. Being UNIX-like, OS X has rsync, which is something pretty much unavoidable if you’re doing any sysadmin kind of work. I can’t understand why Windows still lacks a built-in delta-based diff backup/sync tool. Robocopy is great, but it’s just not the same. But I digress. This post isn’t about why, but how.
Pre-installation
First of all, Lifehacker has a useful, albet simplified guide to installing OS X Lion here. It’s a good start, but you’re going to have to branch off to the OSx86 wiki and tonymac’s forums now and then.
Most guides, the Lifehacker one included, assume you already own a Mac and starts off guiding you on how to create a bootable OS X Lion USB stick using Unibeast. Unibeast is an OS X only software, so that’s not going to be very helpful if you don’t already have Macs sitting around. And if you already have a Mac, I honestly don’t know why you’ll want to venture into the world of hurt that is installing OS X on non-Apple hardware. It seems if you want to install OS X, you need a Mac, but if you have a Mac, why would you need to install OS X? Sounds a little like a bit of a catch-22? Here’s where virtualization comes in.
Running OS X Lion as a VM
Windows 7 Hacker has a very well written and detailed post about getting OS X 10.7 Lion to run in VMWare. I managed to get it running on my first try. If you just want to fool around, and have no intentions of using OS X for anything serious, you’re probably fine with just using the VM. However, since the VM does not have graphics acceleration of any form, window animations are choppy, and any apps that rely on OpenGL will fail. Not a pleasant experience.
Now that you have OS X running in an VM, you’ll want to follow step 2 of Lifehacker’s guide. You can access USB devices connected to your computer through the VM by using the ‘USB pass through’ feature of VMWare. With that done, you’re ready to install on real hardware, also known as entering the world of hurt.
Hell and High Water
Depending on what hardware you have, things may or may not work. I went through countless reinstalls and various hardware configurations before finally settling on one that worked. I initially used a Asus P5K motherboard, but I couldn’t for the hell of me get the Attansic L1 Ethernet driver to work, even going after through various kext. The nVidia 7800 GT card also refused to play nice. Eventually I switched over to a Asus P5G31D-M board, and I managed to get things working after using the MultiBeast installer (from tonymac’s site) to install EasyBeast, Lnx2′s Realtek network kext and VoodooHDA audio kext. The onboard Intel GMA3100 graphics that came with the board wasn’t recognized, and I swapped it out for a nVidia 8800 GT card and that worked out of the box. I was able to output my monitor’s native resolution of 1920×1080.
You might what the hell are all this ‘kext’ things I am talking about. Kext stands for Kernel Extensions, which you can think of as being drivers on Windows. If you’re keen on reading more about the underpinnings of OS X, I highly suggest checking out http://www.puredarwin.org/. I happen to be taking an Operating Systems class this semester so it was a highly interesting read for me,
Post-Installation
I took two whole evenings (the second of which extended to 4am) to get the whole set up working. I’m very pleased with how it turned out. The first thing I tested I was if YouTube worked. Flash and GPU acceleration has always been something that was iffy with unsupported setups, but I’m pleased to report that it worked just fine streaming 720p and 1080p videos. Despite so, one caveat was that GPU decoding for x264 videos didn’t seem to be working, but the E7400 CPU was able to hold up, albet at about 50% load for a 1080p video.
Xcode works and I was able to run the default project in the iOS simulator, so this is a viable platform for iOS development. Chess and Rail Maze, both OpenGL based games were working. It’d seem at this point that all the basic functionality are there. I connected my iPhone and iPad and iTunes was able to pick them up. Also, the App Store works.
Feeling pretty good about myself, I went out and bought a Belkin Bluetooth dongle, F8T016 to be exact, along with an Apple Wireless keyboard, and the setup worked out of the box. The Apple Wireless keyboard is surprisingly comfortable to use, which surprised me. After using a Filco cherry mx blue, I was worried that other keyboards would feel inferior. It didn’t. The response of the keyboard was good with a decent amount of tactile feedback. The keys were also spaced apart just right that I didn’t have an issue touch typing on it. However, I did feel lost without the insert/home/end/page up/page down keys associated with a usual keyboard. I select lines by doing shift-home and shift-end a lot when writing or coding, and losing them feels like it hampers my productivity. One other complain I have is that for the price tag of S$98, it could have at least come with backlight, but I suppose Apple wouldn’t have been able to maintain the form factor with backlighting.

Windows and OS X side by side
So that’s how my setup looks like currently. I’m going try to do most of my work on OS X for the next couple of days and see how it’s like. Like I said before, I’m loving the terminal already. I’ll do more comprehensive testing in the upcoming days and report back.