Mac OS X Internals: A Systems Approach
1.4. Strategies
The first release of an Apple operating system after Apple announced that it would purchase NeXT was in late 1996 with version 7.6. This release represented the initial stage of Apple's new operating system roadmap. It was the first system to be called "Mac OS." Apple's plan was to release full stand-alone installations once a year, with updates in between. Many Power Macintosh and PowerBook models that were not supported by Mac OS 7.6 were supported by the 7.6.1 incremental update. The system originally slated to be version 7.7 would eventually become Mac OS 8. Mac OS 7.6 required a compatible computer that was 32-bit clean, with at least a 68030 processor. It offered performance enhancements in several areas such as virtual memory, memory management, PowerPC Resource Manager routines, system startup, and the File Manager's caching scheme. It also integrated key Apple technologies such as Cyberdog, OpenDoc, Open Transport, and QuickTime. Two phenomena were sweeping the computer world at that time: the Internet and Microsoft Windows 95. Apple emphasized compatibility of Mac OS 7.6 with Windows 95 and highlighted the system's Internet prowess. Mac OS 7.6 included built-in support for TCP/IP, PPP, and Apple Remote Access (ARA). Its integrated Cyberdog technology could be used to incorporate Internet features into documents that used "Live Objects." For example, live web links and email addresses could reside on the Desktop and could be activated from the Finder. 1.4.1. Mac OS 8 and 9
As we saw earlier, Copland and Pink were potential candidates for Mac OS 8 at one time or another. Similarly, Gershwin was a candidate for Mac OS 9. Over the years, some important features that were either created or improved for Copland were added to Mac OS 8 and 9, as was originally intended. The following are examples of such features:
Mac OS 8 had a multithreaded Finder that allowed several file-oriented operations simultaneously. Other notable features included the following:
Mac OS 8.5 (Figure 17) was only for PowerPCs. The system's nanokernel[20] was overhauled in Mac OS 8.6 to integrate multitasking and multiprocessing. It included a preemption-safe memory allocator. The multiprocessor (MP) API library could now run with virtual memory enabled, although virtual memory was still optional. [20] A term sometimes used to refer to a kernel that is even smaller than a microkernel. Figure 17. Mac OS 8
When Mac OS 9 (Figure 18) was released in 1999, it was hailed by Apple as the "best Internet operating system ever."[21] It was the first Mac OS version that could be updated over the Internet. It could also use the AppleTalk protocol over TCP/IP. Its useful security features included file encryption and the Keychain mechanism for storing passwords securely. [21] As stated by Steve Jobs during a special event introducing Mac OS 9 on October 5, 1999. Figure 18. Mac OS 9
An important component of Mac OS 9 was a mature installation of the Carbon APIs, which at the time represented about 70% of the legacy Mac OS APIs. Carbon provided compatibility with Mac OS 8.1 and later. The last release of Mac OS 9 occurred in late 2001 as version 9.2.2. With the advent of Mac OS X, this "old" Mac OS would eventually be referred to as Classic. 1.4.2. Rhapsody
We saw that after acquiring NeXT, Apple based its next-generation operating system, Rhapsody (Figure 19), on NeXT's OPENSTEP. Rhapsody was first demonstrated at the 1997 Worldwide Developers Conference (WWDC). It consisted of the following primary components:
Figure 19. Rhapsody
Apple had plans to port to Rhapsody most key Mac OS frameworks: QuickTime, QuickDraw 3D, QuickDraw GX, ColorSync, and so on. Rhapsody was also to support numerous file systems such as Apple Filing Protocol (AFP), FAT, HFS, HFS Plus, ISO9660, and UFS. There were two developer releases of Rhapsody, dubbed DR1 and DR2. These were released for both the PowerPC and x86 platforms. 1.4.2.1. Blue Box
Shortly after Rhapsody DR1 was released, Apple extended the PowerPC version with a Mac OScompatibility environment called the Blue Box. Implemented by a Rhapsody application (MacOS.app), the Blue Box was a virtual environment that appeared as a new Macintosh hardware model. MacOS.app loaded a Macintosh ROM file from disk and created an environment within which Mac OS ran mostly unchanged. Blue Box initially ran Mac OS 8.x, full-screen, with the ability to switch between Rhapsody and Mac OS using the cmd-return key combination. It placed certain restrictions on the applications that ran within it. For example, an application could neither access the hardware directly nor use undocumented Mac OS APIs. The implementers' initial goal was to achieve 90% to 115% of native Mac OS performance. Blue Box beta 1.0 used Open Transportrather than BSD socketsfor networking. Support for newer versions of Mac OS, as well as for running the Blue Box windowed, was added later. The Blue Box environment would be known as the Classic environment in Mac OS X, provided by an application named Classic Startup.app.[22] [22] The application was called Classic.app in earlier versions of Mac OS X.
The Blue Box environment is a virtualization layernot an emulation layer. "Harmless" instructions execute natively on the processor, whereas "harmful" instructionssuch as those that can affect the hardwareare trapped and handled appropriately. 1.4.2.2. Yellow Box
Rhapsody's development platform was called the Yellow Box (Figure 110). Besides being hosted on the Power Macintosh and x86 versions of Rhapsody, it was also available independently for Microsoft Windows. Figure 110. Yellow Box running on Microsoft Windows XP
Yellow Box included most of OPENSTEP's integrated frameworks, which were implemented as shared object libraries. These were augmented by a runtime and development environment. There were three core object frameworks whose APIs were available in Objective-C and Java.
Yellow Box included NeXT's Project Builder integrated development environment and the Interface Builder visual tool for creating graphical user interfaces. The Windows NT implementation of Yellow Box provided a very similar environment through a combination of the following Apple-provided Windows system services and applications:
Earlier implementations of the OpenStep API for platforms such as Solaris used a similar architecture. Yellow Box evolved into the Mac OS X Cocoa APIs. |
Категории