February 25, 2005

My Workstation OS: Mac OS X

Author: Joshua Wood

My work involves administering Unix Web servers and a mix of office desktops, along with developing the applications we run on them. I use Mac OS X to do it because it is something like a superset of those other popular OS choices. While much of the software I deploy is free, both as in speech and as in beer, I'm willing to open my wallet for OS X.

I need to connect to, and develop for, more than one platform, and OS X lets me keep all the tools I need in one (really shiny) toolbox. The Mac helps filter complexity for me as I use it, working with a variety of systems, standards, languages, and networking protocols, but presenting them in uncluttered, simple ways.

I can still choose to peek into the operating system source, because OS X's kernel and low-level services, together called Darwin, are free software. But I can also choose to work without distraction in beautiful surroundings, tuning and tweaking on software and servers instead of on the machine I should be using to do that work.

I can mount Windows or Samba shares by browsing for them in the Finder, the Mac file manager. Connecting to NFS to grab some files from my old Debian desktop is also built-in and easy. Both are common enough features today. Getting the open source applications I can't live without is generally a simple procedure as well, with either binary or source from two community-backed OS X package systems: BSD ports-inspired Darwinports, and Debian dpkg/apt-inspired Fink, both growing repositories of software ported to OS X. Even if I need to build an obscure package from vanilla source, the task has been made easier with each successive release of the OS, as the BSD core seems to grow more "stock" in its location and integration of standard Unix features. X11 applications are even accelerated by the Quartz 2D graphics engine, and also manage a good approximation of the OS X Aqua user interface (UI), thanks to the included rootless X server/window manager combo.

The free Developer Tools kit includes tons of utilities, example source, and documentation, organized under XCode, one of the slickest integrated development environments around. These tools can help tinkering-addicted Linux converts keep up bad habits, like compiling custom kernels. The time it takes me to do those chores is reduced by using XCode's support for distributed builds via distcc. I can automate and link my work together with familiar Python, Ruby, and PHP scripting, all included. Not to mention development using the native Application Programming Interfaces (APIs): Google for "OpenStep" to get an idea of the high regard developers have long held for the API that is today known as Cocoa. Tim Berners-Lee used Cocoa's predecessor to create the first browser for the World Wide Web.

A polished desktop system

Above the appealing microkernel-Unix system is a complete and polished multimedia desktop, with real-time scheduling for the media subsystems, standards-based format support, and simply the premiere features for personal video and audio/music editing, consumption, and sharing. This satisfies the "personal" part of "PC" for me. I no longer need a second machine for Quake, Unreal, home movies, iTunes, and the fun stuff I do with my computer. Other, Mac-only, commercial software is some of the most innovative around: Omni's excellent Graffle is one I use, an app that that has unique features for creating UML and network diagrams, while still importing and saving the common Visio XML file format.

The X11 implementation that ships with the system allows you to replace even these graphical proprietary apps with free choices, among which the GIMP runs especially well under OS X. Better yet, there is some very cool and totally free Cocoa software out there. Some of the better apps I've toyed with in this category are Books, a library cataloging app, and CocoaMySQL, a GUI database manager that I use almost every day.

My favorite OS X feature may be the Services concept, a simple interface for applications to expose their functions to other apps. I can highlight a URL in any OS X program, and a single click in the Services menu signals my Web browser to open it. Yes, other terminal apps exist that do some string highlighting or the like to open URLs, but OS X Services are a generalized, system-provided interface that any app can use to implement new features and share them. Existing services do things like total a selected string of integers, or search for a highlighted phrase at Google, and this is barely the tip of the iceberg.

Hardware support

Using a Mac makes it easy to forget how hard this can be in the PC world. Apple makes "the whole widget," as Steve Jobs likes to say, and this creates a setup experience unavailable anywhere else. You just turn it on. Attaching devices is similarly simple. Macs don't offer the broad hardware support that the Linux crowd might seek; hardware support under OS X is instead deep rather than broad. Everything that I and our small office needs just works, and usually with a smoother, simpler, more thoughtful software interface than the same hardware under other platforms. The only casualty of my Web-designer partner's upgrade to OS X was a decrepit scanner that was well past its prime. The rest of her OS9 graphics tablets, cameras, Zip and Jump drives came along to OS X. Standards like FireWire and USB, introduced in Apple products, have gained enough traction in the PC market to provide me with more than enough choices for add-ons.

OS X and its bundled "digital lifestyle" apps really shine when driving a camera, still or video. When it's that easy to be creative, you try it, and the camera capabilities have actually added a whole new dimension to my computing life since I switched to Macs both at home and work. Usually a command-line junkie, I find myself editing iMovies of our cat an awful lot these days. The OS X hardware experience follows the careful integration of the software and expands to include your LAN: iTunes music sharing and iPhoto sharing; remote camera and scanner control; discovery of file shares, printers, and Web sites on other computers. Services and devices across the LAN work when you plug them in, making network resources as perspicuous as USB devices. Seeing all the Rendezvous-enabled personal sharing features hooked up on a wireless home LAN, hearing an iTunes library broadcast through the air to a home stereo, is an impressive and futuristic glimpse of how things ought to work.

Envy steers me right

I needed a development and system management workstation to run all my infrastructure on (preferably RISC) multi-processor hardware, without forgoing the proprietary software I want (iTunes, OmniGraffle) or have (Word, Java) to use; that would let me build Python and PHP Web code against Apache and a free OS, but not get my hands dirty just keeping my desktop running; that would be friendly with the Windows and *nix machines around me, but without hand-configuring each connection; so I chose Mac OS X. Working with illustrators and artists led me to a choice I might not have considered otherwise. I'll admit my interest began with envy: of the drop-shadows, gorgeous fonts, and the System Preferences controls I saw running on their curvy dual-processor PowerPC machines. With OS X, having my Mac is like having access to the key features of several systems on one stunning piece of hardware, capped by a UI that's the cleanest, most conveniently integrated, and most elegant in form and function currently available.

I continue to use completely free software for everything but my personal workstations, and sometimes I feel a kind of claustrophobia with a partially closed system like OS X. However, OS X's flexibility without complexity trumps my hangups, and frees me to get useful work done with the free software our business is built on.

Josh Wood is systems administrator at Utopian.net, where he harnesses a heterogeneous herd of systems to help provide development, Web hosting, and consulting services for creative professionals.

What's your desktop OS of choice? Write an article of
less than 1,000 words telling us what you use and why. If we publish
it, we'll pay you $200. So far, we've heard from fans of FreeBSD,
, Debian, Xandros, Slackware, Windows XP, Lycoris, SUSE Professional, NetBSD, Ubuntu, FreeDOS, Libranet, Mandrakelinux, and Arch Linux. Coming soon: Linspire, Knoppix, Gentoo, Fedora Core 3, and more.

Click Here!