天天看點

Layers of Mac OS X

The implementation of Mac OS X can be viewed as a set of layers. At the lower layers of the system are the fundamental services on which all software relies. Subsequent layers contain more sophisticated services and technologies that build on (or complement) the layers below. Figure 1-1 provides a graphical view of this layered approach, highlighting a few of the key technologies found in each layer of Mac OS X.

Figure 1-1  Layers of Mac OS X

Layers of Mac OS X

The bottom layer consists of the core environment layer, of which Darwin is the most significant component. Darwin is the name given to the FreeBSD environment that comprises the heart of Mac OS X. FreeBSD is a variant of the Berkeley Software Distribution UNIX environment, which provides a secure and stable foundation for building software. Included in this layer are the kernel environment, device drivers, security support, interprocess communication support, and low-level commands and services used by all programs on the system. Besides Darwin, this layer contains several core services and technologies, many of which are simply higher-level wrappers for the data types and functions in the Darwin layer. Among the available core services are those for doing collection management, data formatting, memory management, string manipulation, process management, XML parsing, stream-based I/O, and low-level network communication. For details about the technologies in this layer, see “Darwin and Core Technologies.”

The Graphics and Media layer implements specialized services for playing audio and video and for rendering 2D and 3D graphics. One of the key technologies in this layer is Quartz, which provides the main rendering environment and window management support for Mac OS X applications. QuickTime is Apple’s technology for displaying video, audio, virtual reality, and other multimedia-related information. Apple’s core technologies, including Core Image, Core Video, Core Animation, and Core Audio, provide advanced behavior for different types of media. OpenGL is an implementation of the industry-standard application programming interface (API) for rendering graphics and is used both as a standalone technology and as an underlying technology for accelerating all graphics operations. For details about the technologies in this layer, see “Graphics and Multimedia Technologies.”

The Application Frameworks layer embodies the technologies for building applications. At the heart of this layer are the basic environments used to develop applications: Cocoa, Carbon, Java, and others. Each environment is designed to provide a level of familiarity to certain types of developers. For example, Cocoa and Java provide object-oriented environments using the Objective-C and Java languages while Carbon provides a C-based environment. This layer also contains numerous supporting technologies, such as Core Data, Address Book, Image Services, Keychain Services, Launch Services, HTML rendering, and many others. These technologies provide advanced user features and can be used to shorten your overall development cycle. For details about the technologies in this layer, see “Application Technologies.”

The User Experience layer identifies the methodologies, technologies, and applications that make Mac OS X software unique. Apple provides countless technologies to implement the overall user experience. Many of these technologies simply work, but some require interactions with the software you create. Understanding what interactions are expected of your software can help you integrate it more smoothly into the Mac OS X ecosystem. For details about the technologies in this layer, see“User Experience.”

繼續閱讀