My switch to OS X was not done lightly. In the summer of 2005, Apple released the mac mini. At that time they had not yet made the switch to Intel processors and were not as much in the spotlight. I had always wanted to try OS X, especially after hearing about it UNIX roots (FreeBSD). The Mac mini was lightweight compared to Apple's other offerings (512MB RAM, 40GB disk, 1.42GHz PowerPC G4, Bluetooth, 802.11g, keyboard and mouse required) but at $599 it provided a low-risk way to try a mac. With a $200 Amazon.com certificate my total investment was $399. I upgraded the memory to 1GB at the local CompUSA for $99.
When it came, I excitedly unpacked the computer from the very tiny box in which it shipped. I still do not understand why, in the era of 3lb laptops, desktop PCs are still the size of large toaster ovens. The Mac mini is the size of 5 stacked CDs. Apple took a computer and folded it into a different shape.
I loved the OS X user interface. Some of that was the newness, and some were a real joy. Everything was easy....once I got the Windows thinking out of my head. Installing/uninstalling software on OS X is usually a drag and drop process. Double click to mount the provided disk image and drag the application icon to the Applications folders. To uninstall, drag the icon to the trash can. This is the way I always thought this process should work and the way most naive computer users expect it to work.
Apple certainly does a lot of behind the scenes stuff to hide the complexities of the OS and make it get out of the way of the user. But......I had bought this computer for the UNIX stuff. I launched terminal and was happy to find Perl, PHP, GNU utils, and all my other open-source favourites. I found out that OS X makes a great AMP stack since it ships with Apache and MySQL. These are easily enabled via the "System Preferences" applet. I found out I had support for X11. I downloaded and installed NeoOffice, a port of Open Office for OS X. I discovered Fink and FinkCommander for downloading and installing stuff that I would have used apt-get or yum if I was on GNU/Linux. I downloaded and installed the Eclipse IDE for development. I installed X-Code from the Apple CD so that I had a C compiler and a full development environment.
In other words I realised I had what for me is the Holy Grail. I had an OS with the tight integration of Windows (there are lots of benefits to this ) and the freedom to a tinkerer of GNU/Linux. I feel that I have the best of both worlds. Yes, there are a lot of Open Source applications available on Windows, but with OS X inheriting code from FreeBSD, it has the advantage that most of what I want can either be compiled or has already been ported.
Last summer, I used some reward money from my employer ( monetary award for some forensics data collection I completed for security ) I bought a second mac; an Intel-based MacBook which has become my main computer. I purchased my first piece of OS X software ( free software roots run deep ); a virtual machine software called Parallels. I can now run Linux and Windows (XP and Vista). Parallels have a feature called "Coherence".
"With Parallels Desktop for Mac you can now run all the applications you need without switching between Windows and Mac OS X! Coherence, a new feature built-in to every copy of Parallels Desktop, shows Windows applications as if they were running natively on your Mac." - Parallels web site
I no longer have Linux at home. I use Linux and Windows only at work. My last remaining Windows computer ( actually my wife and kids each have a Windows computer) was converted to a network storage device running FreeNAS. FreeNAS is a BSD based Network Attached Storage software package that supports CIFS (Samba), Apple File Protocol (AFP), FTP, SSH, NFS and RSYNC. I downloaded an ISO, booted, answered three (3) questions, rebooted and had a NAS. Where's Linux?!
So yes, I swapped out one proprietary OS for another. But....given that OS X is FreeBSD based, given that the base code for OS X is available as Darwin, I can not think of what Apple can do to lock things up that someone with the code won't find a way around it. In fact it is already happening with OSX86project: