Mac OS X Architecture and Terminology


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 Extreme, 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: Darwin

Mac OS X is built on 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:

  • Protected memory Mach provides a separate memory area in which each application can run. It ensures that each application remains in its own memory space and so does not affect other applications. Therefore, if a running application crashes or hangs, other applications aren't affected. You can safely shut down the hung application and continue working in the others.

    In contrast, previous versions of the Mac OS did not have protected memory. When one application crashed, it usually took down others and often the OS itself, which resulted in your losing unsaved data in all the applications. Under Mac OS X, only the data in the crashing application is at risk.

  • Automatic memory management Mac OS X manages RAM for you; it automatically allocates RAM to applications that need it. Under Mac OS X, you don't need to think about how RAM is being used; the OS takes care of it for you (if you have ever struggled to manually allocate RAM under OS 9 and earlier, you know why not having to do this is a very good thing).

  • Preemptive multitasking Under Mac OS X (or, more specifically, Mach), the operating system controls the processes that the processor is performing to ensure that all applications and system services have the resources they need and that the processors are used efficiently. This ensures both stability and maximum performance for both foreground and background processes.

    This is in contrast to the cooperative multitasking in previous versions of the Mac OS. Under that scheme, applications had to fight among themselves for the resources they needed. This resulted in instability when applications couldn't get the resources they needed and poor performance for those applications that were not able to "grab" the system resources they needed (this is why some processes stopped when you moved them to the background).

  • Advanced virtual memory The Mach core uses a virtual memory system that is always on. It manages the virtual memory use efficiently so that virtual memory is used only as necessary to ensure maximum performance.

Under previous versions of the Mac OS, you had to control how virtual memory was used manually. Because the virtual memory system was not very efficient, you had to be careful about when you had it turned on because it would cause the performance of some applications to slow to a crawl, even if you had plenty of RAM.

NOTE

Darwin is open source. This means that the code of which Darwin is composed is freely available to anyone who wants to use it. A programmer can download the Darwin code and modify it. Thus, it is possible to provide alternative versions of the Darwin core to change and enhance Mac OS X. The Darwin code and documentation can be found at developer.apple.com/darwin/.



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 file systems under Mac OS X, including the following:

  • Mac OS Extended (Case-sensitive) Format Also known as Hierarchical File System Plus (HFS+), this file system efficiently supports large hard drives by minimizing the smallest size used to store a single file. This format also makes filenames and folder names case-sensitive (for example, filename.file is not the same as FileName.File).

  • Mac OS Extended (Journaled) OS X also supports the Mac OS Extended Journaled format. This enables the OS to track changes while they are being made so the process of recovering from errors is much more reliable.

  • Mac OS Extended (Case-sensitive, Journaled) Format This file format uses the journaling feature and makes filenames and folder names case-sensitive.

    NOTE

    Unix is a case-sensitive operating system. The ability for Mac OS X to support case-sensitive file systems makes Unix on the Mac purer.


  • Mac OS Extended Format This file system efficiently supports large hard drives by minimizing the smallest size used to store a single file. It does not use journaling or case-sensitivity.

  • Unix File System The standard file system for Unix systems.

  • UDF The Universal Disk Format, it's used for DVD volumes.

  • ISO 9660 A standard for CD-ROMs.

Darwin supports many major network file protocols. It supports Apple File Protocol (AFP) over IP client, which is the file-sharing protocol for Macs running Mac OS 8 and Mac OS 9. Network File System (NFS) client, which is the dominant file-sharing protocol on Unix platforms, is also supported. Mac OS X also provides support for Windows-based network protocols, meaning you can interact with Windows machines as easily as you can with other Macs.

Because of Darwin, Mac OS X supports 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. The three types of bundles under Mac OS X are as follows:

  • Applications Under Mac OS X, applications are provided in bundles. Frequently, these bundles are designed as file packages so the user sees only the files with which he needs to work, such as the file to launch the application. The rest of the application resources might be hidden from the user. This makes installing such applications simple.

  • Framework A framework bundle is similar to an application bundle except that a framework provides services that are shared across the OS; frameworks are system resources. A framework contains a dynamic shared library, meaning different areas of the OS as well as applications can access the services provided by that framework. Frameworks are always available to the applications and services running in the system. For example, under Mac OS X, QuickTime is a framework; applications can access QuickTime services by accessing the QuickTime framework. Frameworks are not provided as file packages, so the user sees the individual files that make up that framework.

  • Loadable bundle Loadable bundles are executable code (just like applications) available to other applications and the system (similar to frameworks) but must be loaded into an application to provide their services. The two main types of loadable bundles are plug-ins (such as those used in web browsers) and palettes (which are used in building application interfaces). Loadable bundles can also be presented as a package so the user sees and works with only one file.

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 the system uses are not as intuitive.


The Graphics Subsystem

Mac OS X includes an advanced graphics subsystem, which has three main components: Quartz Extreme, OpenGL, and QuickTime.

Quartz Extreme is the name of the part of the graphics subsystem that handles 2D graphics. Quartz Extreme provides the interface graphics, fonts, and other 2D elements of the system, as well as on-the-fly rendering and antialiasing of images. Under Mac OS X, the Portable Document Format (PDF) is native to the OS. This means 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 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 Extreme also supports TrueType, Type 1, and OpenType fonts and blends 3D and QuickTime content with the 2D content it provides directly.

Because of Quartz Extreme, you don't need to install a font-smoothing utility, such as Adobe Type Manager, to be able to view and use all sizes of PostScript fonts, as you had to do under Mac OS 9 and earlier.

The OpenGL component of the graphics subsystem provides 3D graphics support for 3D graphics applications and games. OpenGL is an industry standard that is also used on Windows and Unix systems. Because of this, it is easier to create 3D applications for the Mac from those that were designed to run on those other operating systems. The Mac OS X implementation of OpenGL provides many 3D graphics functions, such as texture mapping, transparency, antialiasing, atmospheric effects, other special effects, and more.

NOTE

Antialiasing reduces the pixelated appearance of a graphic to provide smooth edges instead of jagged ones.


QuickTime provides support for many types of digital media, such as digital video and audio, 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 Subsystem

Mac OS X includes four different application environments (Cocoa, Java, Carbon, and Classic) that enable you to run a wide variety of applications, which, after all, is the primary reason you have a computer.

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 major applications, and lots of minor ones, have been created using Cocoa, which is good news for all Mac users.

The Java 2 application 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 other two application environments are primarily provided as bridges to older versions of applications that were created for previous Mac OS releases.

The Classic environment enables Mac OS X to run applications that were written for previous versions of the OS (Mac OS 9.2 and earlier) without modification. Classic applications run as they did 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).

NOTE

Because Mac OS X has been around for a number of years now, it isn't likely that you will need to run any Classic applications. However, it is nice to know that you can should you ever need to.


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. Like Classic, Carbon was really intended as a means to make as many applications available under Mac OS X as possible. It is a transition environment rather than a permanent one (like Cocoa).

The User Interface

The 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.



Special Edition Using MAC OS X Tiger
Special Edition Using Mac OS X Tiger
ISBN: 0789733919
EAN: 2147483647
Year: 2003
Pages: 317
Authors: Brad Miser

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net