Understanding the architecture and terminology of Mac OS X is important to be able to use it effectively. Functionally, the Mac OS X architecture consists of several "layers" that are often shown graphically as in Figure 1.1. The base level of the operating system is its Unix core, which is called Darwin. Moving "up" through the layers, the next layer is the graphics subsystem, which consists of three parts: Quartz, OpenGL, and QuickTime. Then comes the application layer, which has four components, those being Classic, Carbon, Cocoa, and Java. Finally, the top layer is the user interface, which is called Aqua. Figure 1.1. You can think of Mac OS X being composed of four layers; the bottom layer provides the core OS services, whereas each layer toward the top provides services that are "closer" to the user.The Core OS: DarwinMac OS X is built upon a Unix core; the Darwin core is based on the Berkeley Software Distribution (BSD) version of Unix. The "heart" of the Darwin core is called Mach. This part of the operating system performs the fundamental tasks, such as data flow into and from the CPU, memory use, and so on. Mach's major features include the following:
NOTE
NOTE Another significant ramification of the way in which Darwin manages memory is that it dynamically assigns RAM to applications when they open. Under Mac OS X, the system handles all RAM management for you; there is no more manual RAM allocation for applications as there was under previous versions of the OS. Darwin also provides the Input/Output services for Mac OS X, and easily supports three key characteristics of modern devices: plug-and-play, hot-swapping, and power management. Darwin, through its Virtual File System (VFS) design, supports several different file systems under Mac OS X, including the following:
Darwin supports two major network file protocols: Apple File Protocol (AFP) over IP client; AFP is the file-sharing protocol for Macs running Mac OS 8 and Mac OS 9, and Network File System (NFS) client, which is the dominant file-sharing protocol on Unix platforms. Mac OS X also provides support for Windows-based networks and includes native support for SAMBA file servers. Mac OS X uses bundles; a bundle is a directory containing a set of files that provide services. A bundle contains executable files and all the resources associated with those executables; when they are a file package, a bundle can appear as a single file. There are three types of bundles under Mac OS X, as follows:
NOTE Because of its Unix architecture, you will see many more filename extensions under Mac OS X than there were under previous versions of the OS. Most of the extensions for files you will deal with directly are easily understood (for example, .app is used for applications), but others that the system uses are not as intuitive. The Graphics SubsystemMac OS X includes a very advanced graphics subsystem, which has three main components: Quartz, OpenGL, and QuickTime. NOTE
Quartz Extreme is the name for the part of the graphics subsystem that handles 2D graphics. Quartz provides the interface graphics, fonts, and other 2D elements of the system. Quartz provides on-the-fly rendering and anti-aliasing of images. Under Mac OS X, the Portable Document Format (PDF) is native to the OS. This means that you can create PDF versions of any document without using a third-party application, such as Adobe Acrobat (to get special features in PDF documents, such as navigation features, you will still need to use an application that provides those features). You can quickly create a PDF version of any document with which you work; that document can be viewed with Acrobat Reader or Mac OS X's own Preview application. Quartz also supports TrueType, Type 1, and OpenType fonts. Quartz Extreme also blends 3D and QuickTime content with the 2D content it provides directly. NOTE Anti-aliasing reduces the pixelated appearance of graphics to provide smooth edges instead of jagged ones. Because of Quartz, you no longer need to install a font-smoothing utility, such as Adobe Type Manager, to be able to view and use all sizes of PostScript fonts. The OpenGL component of the graphics subsystem provides 3D graphics support for 3D applications, such as 3D graphics applications and games. OpenGL is an industry standard that is also used on Windows and Unix systems. This means that it is easier to create 3D applications for the Mac from those that were designed to run on these other operating systems. The Mac OS X implementation of OpenGL provides many 3D graphics functions, such as texture mapping, transparency, anti-aliasing, atmospheric effects, other special effects, and more. QuickTime provides support for many different types of digital media, such as digital video, and is the primary enabler of video and audio streaming under Mac OS X. QuickTime enables both viewing applications, such as the QuickTime Player, and creative applications, such as iMovie, iTunes, and many more. QuickTime is also an industry standard, and QuickTime files can be used on Windows and other computer platforms. The Application SubsystemMac OS X provides the Classic environment to enable it to run Classic applications. It also includes three application development environments: Carbon, Cocoa, and Java 2. NOTE
The Classic environment enables Mac OS X to run applications that were written for previous versions of the OS without modification. This provides access to thousands of existing applications that will run under Mac OS X. Classic applications run as they do under previous versions of the Mac OS; in other words, they do not benefit from the advanced features of Mac OS X such as protected memory (Classic applications can be affected by other Classic applications, and the Classic environment itself can be affected when a Classic application has problems). The Carbon environment enables developers to port existing applications to use Carbon Application Program Interfaces (APIs); the process of porting a Classic application into the Carbon environment is called Carbonizing it. The Carbon environment offers the benefits of Darwin for Carbonized applications, such as protected memory and preemptive multitasking. Carbonizing an application is significantly less work than creating a new application from scratch, which enabled many applications to be delivered near the release of Mac OS X. The Cocoa environment offers developers a state-of-the-art, object-oriented application development environment. Cocoa applications are designed for Mac OS X from the ground up and take the most advantage of Mac OS X services and benefits. Most of the applications that are included with Mac OS X are Cocoa versions; as time passes, more and more Cocoa applications will become available and will eventually be the dominant type under Mac OS X. The Java environment enables you to run Java applications, including pure Java applications and Java applets. Java applications are widely used on the Web because they enable the same set of code to be executed on various platforms. You can also develop Java applications under Mac OS X. The User InterfaceThe Mac OS X user interface, called Aqua, provides Mac OS X's great visual experience as well as the tools you use to interact with and customize the interface to suit your preferences. From the drop shadows on open windows to the extensive use of color and texture to the extremely detailed icons, Aqua provides a user experience that is both pleasant and efficient. |