Mac OS X Internals: A Systems Approach

1.5. Toward Mac OS X

After Rhapsody's DR2 release, Apple would still alter its operating system strategy but would finally be on its way toward achieving its goal of having a new system. During the 1998 Worldwide Developers Conference, Adobe's Photoshop ran on what would be Mac OS X. However, the first shipping release of Mac OS X would take another three years. Figure 111 shows an approximation of the progression from Rhapsody toward Mac OS X.

Figure 111. An approximation of the Mac OS X timeline

1.5.1. Mac OS X Server 1.x

As people were expecting a DR3 release of Rhapsody, Apple announced Mac OS X Server 1.0 in March 1999. Essentially an improved version of Rhapsody, it was bundled with WebObjects, the QuickTime streaming server, a collection of developer tools, the Apache web server, and facilities for booting or administering over the network.

Apple also announced an initiative called Darwin: a fork of Rhapsody's developer release. Darwin would become the open source core of Apple's systems.

Over the next three years, as updates would be released for the server product, development of the desktop version would continue, with the server sharing many of the desktop improvements.

1.5.2. Mac OS X Developer Previews

There were four Developer Preview releases of Mac OS X, named DP1 through DP4. Substantial improvements were made during these DP releases.

1.5.2.1. DP1

An implementation of the Carbon API was added. Carbon represented an overhaul of the "classic" Mac OS APIs, which were pruned, extended, or modified to run in the more modern Mac OS X environment. Carbon was also meant to help Mac OS developers transition to Mac OS X. A Classic application would require an installation of Mac OS 9 to run under Mac OS X, whereas Carbon applications could be compiled to run as native applications under both Mac OS 9 and Mac OS X.

1.5.2.2. DP2

The Yellow Box evolved into Cocoa, originally alluding to the fact that besides Objective-C, the API would be available in Java. A version of the Java Development Kit (JDK) was included, along with a just-in-time (JIT) compiler. The Blue Box environment was provided via Classic.app (a newer version of MacOS.app) that ran as a process called truBlueEnvironment. The Unix environment was based on 4.4BSD. DP2 thus contained a multitude of APIs: BSD, Carbon, Classic, Cocoa, and Java. There was widespread dissatisfaction with the existing user interface. The Aqua user interface had not been introduced yet, although there were rumors that Apple was keeping the "real" user interface a secret.[23]

[23] Apple had referred to the Mac OS X user interface as "Advanced Mac OS Look and Feel."

Carbon is sometimes perceived as "the old" API. Although Carbon indeed contains modernized versions of many old APIs, it also provides functionality that may not be available through other APIs. Parts of Carbon are complementary to "new" APIs such as Cocoa. Nevertheless, Apple has been adding more functionality to Cocoa so that dependencies on Carbon can be eventually eliminated. For example, before Mac OS X 10.4, much of the QuickTime functionality was available only through Carbon. In Mac OS X 10.4, Apple introduced the QTKit Cocoa framework, which reduces or eliminates Carbon dependencies for QuickTime.

1.5.2.3. DP3

The Aqua user interface was first demonstrated during the San Francisco Macworld Expo in January 2000. Mac OS X DP3 included Aqua along with its distinctive elements: "water-like" elements, pinstripes, pulsating default buttons, "traffic-light" window buttons, drop shadows, transparency, animations, sheets, and so on. The DP3 Finder was Aqua-based as well. The Dock was introduced with support for photorealistic icons that were dynamically scalable up to 128x128 pixels.

1.5.2.4. DP4

The Finder was renamed the Desktop in DP4. The System Preferences application (Preferences.appthe precursor to System Preferences.app) made its first appearance in Mac OS X, allowing the user to view and set a multitude of system preferences such as Classic, ColorSync, Date & Time, Energy Saver, Internet, Keyboard, Login Items, Monitors, Mouse, Network, Password, and others. Prior to DP4, the Finder and the Dock were implemented within the same application. The Dock was an independent application (Dock.app) in DP4. It was divided into two sections: the left side for applications and the right side for the trash can, files, folders, and minimized windows. Other notable components of DP4 included an integrated development environment and OpenGL.

The Dock's visual indication of a running application underwent several changes. In DP3, an application's Dock icon had a bottom edge a few pixels high that was color-coded to indicate whether the application was running. This was replaced by an ellipsis in DP4 and was followed by a triangle in subsequent Mac OS X versions. DP4 also introduced the smoke cloud animation that ensues after an item is dragged off the Dock.

1.5.3. Mac OS X Public Beta

Apple released a beta version of Mac OS X (Figure 112) at the Apple Expo in Paris on September 13, 2000. Essentially a publicly available preview release for evaluation and development purposes, the Mac OS X Public Beta was sold for $29.95 at the Apple Store. It was available in English, French, and German. The software's packaging contained a message from Apple to the beta testers: "You are holding the future of the Macintosh in your hands." Apple also created a Mac OS X tab on its web site that contained information on Mac OS X, including updates on third-party applications, tips and tricks, and technical support.

Figure 112. Mac OS X Public Beta

Although the beta release was missing important features and ostensibly lacked in stability and performance, it demonstrated several important Apple technologies at work, particularly to those who had not been following the DP releases. The beta's key features were the following:

  • The Darwin core with its xnu kernel that offered "true" memory protection, preemptive multitasking, and symmetric multiprocessing

  • The PDF-based Quartz 2D drawing engine

  • OpenGL support

  • The Aqua interface and the Dock

  • Apple's new mail client, with support for IMAP and POP

  • A new version of the QuickTime player

  • The Music Player application for playing MP3s and audio CDs

  • A new version of the Sherlock Internet-searching tool

  • A beta version of Microsoft Internet Explorer

With Darwin, Apple would continually leverage a substantial amount of existing open source software by using it forand often integrating it withMac OS X. Apple and Internet Systems Consortium, Inc. (ISC), jointly founded the OpenDarwin project in April 2002 for fostering cooperative open source development of Darwin. GNU-Darwin is an open source Darwin-based operating system.

The New Kernel

Darwin's kernel is called xnu. It is unofficially an acronym for "X is Not Unix." It is also a coincidental tribute to the fact that it is indeed the NuKernel for Mac OS X. xnu is largely based on Mach and FreeBSD, but it includes code and concepts from various sources such as the formerly Apple-supported MkLinux project, the work done on Mach at the University of Utah, NetBSD, and OpenBSD.

1.5.4. Mac OS X 10.x

The first version of Mac OS X was released on March 24, 2001, as Mac OS X 10.0 Cheetah. Soon afterwards, the versioning scheme of the server product was revised to synchronize it with that of the desktop system. Since then, the trend has been that a new version of the desktop is released first, soon followed by the equivalent server revision.

Table 11 lists several major Mac OS X releases. Note that the codenames are all taken from felid taxonomy.

Table 11. Mac OS X Versions

Version

Codename

Release Date

10.0

Cheetah

March 24, 2001

10.1

Puma

September 29, 2001

10.2

Jaguar

August 23, 2002

10.3

Panther

October 24, 2003

10.4

Tiger

April 29, 2005

10.5

Leopard

2006/2007?

Let us look at some notable aspects of each major Mac OS X release.

1.5.4.1. Mac OS X 10.0

Apple dubbed Cheetah as "the world's most advanced operating system," which would become a frequently used tagline for Mac OS X.[24] Finally, Apple had shipped an operating system with features that it had long sought. However, it was clear that Apple had a long way to go in terms of performance and stability. Key features of 10.0 included the following:

[24] Mac OS X page on Apple's web site, www.apple.com/macosx/ (accessed April 26, 2006).

  • The Aqua user interface, with the Dock and the Finder as the primary user-facing tools

  • The PDF-based Quartz 2D graphics engine

  • OpenGL for 3D graphics

  • QuickTime for streaming audio and video (shipping for the first time as an integrated feature)

  • Java 2 Standard Edition (J2SE)

  • Integrated Kerberos

  • Mac OS X versions of the three most popular Apple applications available as free downloads: iMovie 2, iTunes, and a preview version of AppleWorks

  • Free IMAP service for Mac.com email accounts

When Mac OS X 10.0 was released, there were approximately 350 applications available for it.

1.5.4.2. Mac OS X 10.1

Puma was a free update released six months after 10.0's release. It offered significant performance enhancements, as indicated by Apple's following claims:

  • Up to 3x improvement in application launch speed

  • Up to 5x improvement in menu performance

  • Up to 3x improvement in window resizing

  • Up to 2x improvement in file copying

There were substantial performance boosts in other areas such as system startup, user login, Classic startup, OpenGL, and Java. Other key features of this release included the following:

  • The ability to move the Dock from its usual place at the bottom to the left or right

  • System status icons on the menu bar to provide easier access to commonly used functions such as volume control, display settings, date and time, Internet connection settings, wireless network monitoring, and battery charging

  • iTunes and iMovie as part of system installation, and the introduction of iDVD

  • A new DVD player with a simplified interface

  • Improved iDisk functionality based on WebDAV

  • A built-in image-capturing application to automatically download and enhance pictures from digital cameras

  • The ability to burn over 4GB of data to a DVD, with support for burning recordable DVD discs directly in the Finder

  • An integrated SMB/CIFS client

The Carbon API implementation in 10.1 was complete enough to allow important third-party applications to be released. Carbonized versions of Microsoft Office, Adobe Photoshop, and Macromedia Freehand were released soon after 10.1 went public.

1.5.4.3. Mac OS X 10.2

Jaguar was released at 10:20 P.M. to emphasize its version number. Its important feature additions included the following:

  • Quartz Extreme an integrated hardware acceleration layer for rendering on-screen objects by compositing them using primarily the graphics processing unit (GPU) on supported graphics cards

  • iChat an instant-messaging client compatible with AOL Instant Messaging (AIM)

  • An enhanced mail application (Mail.app) with built-in adaptive spam filtering

  • A new Address Book application with support for vCards, Bluetooth, and iSync synchronization with .Mac servers, PDAs, certain cell phones, and other Mac OS X computers (the Address Book's information was accessible to other applications)

  • QuickTime 6, with support for MPEG-4

  • An improved Finder with quick file searching from the toolbar and support for spring-loaded folders

  • Inkwell a handwriting recognition technology integrated with the text system, allowing text input using a graphics tablet

  • Rendezvous,[25] which was Apple's implementation of ZeroConf, a zero-configuration networking technology allowing enabled devices to find one another on the network

    [25] Rendezvous was later renamed Bonjour.

  • Better compatibility with Windows networks

  • Version 3 of the Sherlock Internet services tool

Hereafter, Apple introduced new applications and incorporated technologies in Mac OS X at a bewildering pace. Other notable additions to Mac OS X after the release of Jaguar included the iPhoto digital photo management application, the Safari web browser, and an optimized implementation of the X Window System.

1.5.4.4. Mac OS X 10.3

Panther added several productivity and security features to Mac OS X, besides providing general performance and usability improvements. Notable 10.3 features included the following:

  • An enhanced Finder, with a sidebar and support for labels

  • Audio and video conferencing through the iChat AV application

  • Exposé a user-interface feature that can "live shrink" each on-screen window such that no windows overlap, allowing the user to find a window visually, after which each window is restored to its original size and location

  • FileVault encryption of a user's home directory

  • Secure deletion of files in a user's trash can via a multipass overwriting algorithm

  • Fast user switching

  • Built-in faxing

  • Improved Windows compatibility courtesy of better support for SMB shares and Microsoft Exchange

  • Support for HFSXa case-sensitive version of the HFS Plus file system

1.5.4.5. Mac OS X 10.4

Besides providing typical evolutionary improvements, Tiger introduced several new technologies such as Spotlight and Dashboard. Spotlight is a search technology consisting of an extensible set of metadata importer plug-ins and a query API for searching files based on their metadata, even immediately after new files are created. Dashboard is an environment for creating and running lightweight desktop utilities called widgets, which normally remain hidden and can be summoned by a key-press. Other important Tiger features include the following:

  • Improved 64-bit support, with the ability to compile 64-bit binaries, and 64-bit support in the libSystem shared library

  • Automator a tool for automating common procedures by visually creating workflows

  • Core Image a media technology employing GPU-based acceleration for image processing

  • Core Video a media technology acting as a bridge between QuickTime and the GPU for hardware-accelerated video processing

  • Quartz 2D Extreme a new set of Quartz layer optimizations that use the GPU for the entire drawing path (from the application to the framebuffer)

  • Quartz Composer a tool for visually creating compositions using both graphical technologies (such as Quartz 2D, Core Image, OpenGL, and QuickTime) and nongraphical technologies (such as MIDI System Services and Rich Site Summary [RSS])

  • Support for a resolution-independent user interface

  • Improved iChat AV, with support for multiple simultaneous audio and video conferences

  • PDF Kit a Cocoa framework for managing and displaying PDF files from within applications

  • Improved Universal Access, with support for an integrated spoken interface

  • An embeddable SQL database engine (SQLite) allowing applications to use SQL databases without running a separate RDBMS[26] process

    [26] Relational database management system.

  • Core Data a Cocoa technology that integrates with Cocoa bindings and allows visual description of an application's data entities, whose instances can persist on a storage medium

  • Fast Logout and Autosave for improved user experience

  • Support for access control lists (ACLs)

  • New formalized and stable interfaces, particularly for kernel programming

  • Improvements to the Web Kit (including support for creating and editing content at the DOM level of an HTML document), the Safari web browser (including RSS support), QuickTime (including support for the H.264 code and a new QuickTime Kit Cocoa framework), the Audio subsystem (including support for OpenAL, the Open Audio Library), the Mac OS X installer application, Sync Services, the Search Kit, Xcode, and so on

The first shipping x86-based Macintosh computers used Mac OS X 10.4.4 as the operating system.

As we have seen in this chapter, Mac OS X is a long evolution of many disparate technologies. The next version of Mac OS X is expected to continue the remarkable pace of development, especially with the transition from the PowerPC to the x86 platform.

In Chapter 2, we will take a diverse tour of Mac OS X and its features, including brief overviews of the various layers. The remaining chapters discuss specific aspects and subsystems of Mac OS X in detail.

Категории