What is Mac OS X?

© Amit Singh. All Rights Reserved.Written in December 2003

A Sampling of Mac OS X Features

Mac OS X has many "cool", "interesting", and useful features, a number of which directly contribute to the overall usability of the system. This page briefly describes a few features representative of why Mac OS X is a good (Desktop) operating system.

Aqua

The graphical user interface of Mac OS X is called Aqua. This includes the look and feel, behavior, and integration of GUI elements. The GUI application environments of Mac OS X, Carbon, Cocoa, and Java, all support Aqua. Classic does not, and Mac OS 9 applications running under Classic look like they did on Mac OS 9. Finally, Mac OS X includes an optimized X Window server, including a native Aqua window manager (quartz-wm) that lets you run X11 applications alongside native Aqua programs. quartz-wm provides Aqua window controls, drop shadows, etc. However, the X11 application's own look and feel will be the one provided by the particular X11 toolkit being used.

Aqua has numerous distinctive features: Mac OS X uses high-quality photorealistic icons that are rendered at various sizes up to 128x128, allowing for features such as in-place document preview and in-icon status indication.

Mac OS X has a number of functional and unique user interface elements, such as sheets, which are document-modal dialogs that attached to and appear to come out of a document's title bar. The Desktop, Dock, and the Finder are also different (in my opinion, mostly better, from a productivity/usability point of view) from their counterparts on Windows and *nix.

Aqua Human Interface Guidelines is a thorough description (almost 300 pages) of what guidelines to adhere to while creating applications for Mac OS X as well as an overview of various Aqua GUI elements.

While the lucidity and attractiveness of Aqua is visible immediately as you look at a Mac OS X desktop (with the disclaimer that this is a subjective area, so many people may not like how it looks), it may take a little while to get used to before you appreciate Aqua's usability.

Data and Information Management

While not really Utopian, Mac OS X makes a very good attempt at keeping various data and information organized by context, rather than having files strewn all over the place. System and Application "preferences" can be global (system-wide) or per-user, and are kept organized as such. The various APIs make sure that (if used properly), all of a user's data is stored deterministically.

One of the most useful features of Mac OS X is its support for synchronization of your computer's configuration, or personality, if you will. Currently this data set includes the address book, calendar, and Safari bookmarks, although Apple should add more entities. If you are doing a new installation or clean upgrade of your system, it is a boon to have the following: on the "old" installation, click a button to synchronize the above information to a device, which can be your iPod, or your .Mac account. On the "new" machine, you can reverse synchronize and have this information injected.

Devices

Apple has excellent support for FireWire devices, hardly surprising since they invented FireWire. You can readily boot from external drives, treat a Mac to behave as if it were an external FireWire drive (boot it with the T key pressed, which puts the computer in Target Disk Mode), and even connect two computers together using TCP/IP over a FireWire cable. The iSight and the iPod use FireWire connections too.

Apple has also been pushing Bluetooth with their newer computers, although you can get adapters for older models. In addition to using Bluetooth for communicating with phones and PDAs, Apple also uses it for their wireless keyboard and mouse, which are very well designed and work well with Mac OS X (well, the mouse still has one button).

Even though Apple computers have custom "chips" (the KeyLargo IC, for example, is an I/O controller that provides USB, UDMA, EIDE, sound, communication support, etc. all on a single IC), Apple uses a number of "standard" components (RAM, IDE/SATA disk drives, optical drives, ...) in their machines, things are not always black and white. For example, an arbitrary DVD burner may not work with iDVD, though usually a workaround can be found.

I18N

Mac OS X is localized to a number of regions. It supports Unicode 4.0, various input methods, and multiscript support (a single document can contain multiple scripts). Apple provides tools, including support in Xcode, so that developer can internationalize their applications. Some specific components included are ICU, libiconv and support for wchar_t.

I was most impressed by how easy it is to input various Indian languages, including Hindi, on Mac OS X - out of the box. I can write an email containing English, Hindi, and other languages, using the QWERTY keyboard to input Hindi phonetically - it is very intuitive (assuming you do know Hindi, of course), and far better than my experience on other systems.

iLife

Apple's iLife suite (iDVD, iMovie, iPhoto, iTunes, and GarageBand) are quite possibly the best applications you can get bundled with any operating system. While I do not use iDVD and iMovie myself (I have been experimenting with their professional counterparts, DVD Studio Pro and Final Cut Pro), I find iTunes and iPhoto to be excellent at what they set out to do, although nitpickers can find "issues" no matter what. These two applications manage and organize your assets (music and digital photos), with the option of leaving the "originals" untouched. Asset metadata is stored in a relational database, into which you can have multiple views.

iPhoto

iPhoto can import images from a digital camera. It lets you do some basic operations on images, such as constraining as per various standard sizes, crop, resize, enhance, do red-eye reduction, retouch, convert to black and white, adjust brightness and contrast, etc. You can have a number of output channels for your photos: you can print them on a printer, order prints using Kodak's online print service, email pictures, create a slideshow, burn them onto optical media, create .Mac slides, export them to a thumbnailed web gallery, and even create a book in WYSIWYG fashion that Apple can print and bind for a fee.

iTunes

Unless you have some uniquely specific needs, have a gargantuan gripe against Apple, or are a masochist, you would probably find iTunes on Mac OS X to be the final word in music management. iTunes is a powerful and sophisticated jukebox, an interface to Apple's online music store, and a companion program to the iPod. I believe it represents the best that software can possibly do in making your music experience on a computer pleasant.

Power Management

Mac OS X in conjunction with Macintosh hardware make up for some impressive power and thermal management. The four independently controlled thermal zones and the nine fans of the Power Mac G5 have been discussed aplenty. Mac OS X includes drivers and other logic for the 21 temperature sensors in that machine. The PowerBooks have sophisticated thermal management as well. You can 'grep -i' for "thermal" and "temperature" in the output of 'ioreg -l' on Mac OS X for related miscellaneous information.

Based on power/thermal feedback, processor and bus speeds can be reduced to conserve power and control heat. All current Apple notebook batteries have remaining charge indicators. On the PowerBooks, you can change the battery without powering-off courtesy an internal backup battery that holds charge for a few minutes. Note that you do need to put the machine to sleep to do this.

Note that by default the system tries to keep network connections alive even if the machine sleeps. For example, if you login (via SSH, say) from one PowerBook to another, and both of them go to sleep, your login will stay alive.

Security

Mac OS X includes various security features, services, and APIs (including what's available on typical *nix systems), such as those for controlling/managing passwords, certificates, public/private keys, application-level privileged operations (capabilities), trust policies, etc. Mac OS X supports Kerberos, OpenSSL, and PAM as well.

Note that many of the above services are exposed through the Keychain Services API, which any application can use, for example, to "remember" your passwords. It is possible to have a single keychain password instead of multiple passwords across different applications.

root login is disabled by default, and sudo is used for administrative access. You can use /usr/bin/security from the command line to control the security framework.

Relatively recent security related enhancements include FileVault (encryption of a user's home directory) and Secure File Deletion (see above). As mentioned earlier, Mac OS X is not a trusted system, or as focussed on security as say, OpenBSD, but it should at least be as secure as any modern day *nix system. It does make use of a large amount of open source software, so it would share many of the weaknesses and strengths of those components. Potentially, Apple's integration of such components might create new weaknesses, but I have found their software engineering to be extremely admirable in general.

Speech Interface

Mac OS X includes both speech recognition (part of Carbon) and synthesis frameworks, that are fairly well integrated with the system. Applications can make use of APIs to these frameworks. "Speakable Items", a user customizable interface to the speech recognition engine, is available to arbitrary applications, wherein you can add your own items. You can do the following, for example:

As another example, you can play Chess by speaking your moves.

The speech interfaces also add to the accessibility features of Mac OS X. In addition to speech recognition and synthesis, Mac OS X offers visual assistance (zoom features, enhanced contrast, grayscale display), aural assistance (screen flashing), typing assistance (sticky keys, slow keys), and mouse assistance (mouse keys, full keyboard access).

Miscellaneous

Mac OS X 10.3 (Panther) introduced a number of new features. While some of these might be immature and even unstable, they should prove to be useful over time. Some of these are: iChat AV (video, audio, and text chat), FileVault (encryption of a user's home directory), Exposé, Secure Trash Deletion, etc.

While Panther does securely delete files via a multi-pass overwriting algorithm courtesy the srm utility, Mac OS X is not a trusted system (it's not intended to be either). If a "secure" file's contents are in the buffer cache, or an application's address space, and if some of it has been swapped out, the information is vulnerable. You should be able to shut the machine down, connect it to another computer, say using target disk mode, and see "interesting" information through a simple strings on the device. OpenBSD, for instance, supports encryption of virtual memory (swap).

Exposé is a feature of the user interface that, among other things, lets you shrink each window on the screen in-place to a point where no windows overlap on the screen. This is different from automatic window tiling, because the original positions of the windows are not disturbed. You activate the in-place shrinking via a key press: F9 arranges all windows on the screen so that they don't overlap. You can "find" the window you are looking for visually - although the windows are shrunk, they are the same as the original windows - movies keep playing, etc. Once you identify the window you are seeking, you can choose it, either through the keyboard or the mouse, and the windows grow back to their original size, in their original positions, with the selected window on top. Exposé has a few other similar features, and Apple might offer a desktop pager based on it soon.

Mac OS X also has an implementation of Zero Configuration Networking, which Apple calls Rendezvous.

<<< Programming on Mac OS X main Available Software on Mac OS X >>>