Section 1.4. Strategies


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:

  • The Mac OS Extended file system (HFS Plus), which was introduced with Mac OS 8.1

  • A search engine that could search on local drives, network servers, and the Internet (released as Sherlock)

  • The Copland API, which gradually evolved into Carbon

  • The Platinum-look user interface

  • Multiple users, with support for per-user preferences

Mac OS 8 had a multithreaded Finder that allowed several file-oriented operations simultaneously. Other notable features included the following:

  • Contextual menus activated by a control-click

  • Spring-loaded folders[19]

    [19] Spring-loaded folders are a feature of the Finder's user interface. If the user pauses briefly while dragging an item onto a folder icon, a window springs open, displaying the folder's contents. This allows the user to choose where to put the item. Continuing to hold the item causes a subfolder to spring open, and so on.

  • Personal web hosting

  • Web browsers (Microsoft Internet Explorer and Netscape Navigator) bundled with the system

  • Macintosh Runtime for Java (MRJApple's implementation of the Java environment) as part of the system

  • Enhancements to power management, USB, and FireWire

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


Nanokernel

System 7.1.2 was the first Apple operating system to run on the PowerPC, even though much of the code was not PowerPC-native. A nanokernel was used to "drive" the PowerPC. Executing in supervisor mode, the nanokernel acted as the hardware abstraction layer. It exported low-level interfaces for interrupt management, exception handling, memory management, and so on. Only the system software, and possibly debuggers, could use the nanokernel interface.


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:

  • The kernel and related subsystems that were based on Mach and BSD

  • A Mac OScompatibility subsystem (the Blue Box)

  • An extended OpenStep API implementation (the Yellow Box)

  • A Java virtual machine

  • A Display PostScriptbased windowing system

  • A user interface that was similar to Mac OS but also had features from OPENSTEP

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.

  1. Foundation was a collection of base classes with APIs for allocating, deallocating, examining, storing, notifying, and distributing objects.

  2. Application Kit was a set of APIs for creating user interfaces; managing and processing events; and using services such as color and font management, printing, cut and paste, and text manipulation.

  3. Display PostScript was a set of APIs for drawing in PostScript, compositing images, and performing other visual operations. It could be considered as a subset of Application Kit.

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:

  • The Mach Emulation Daemon (the machd service)

  • The Netname Server (the nmserver service)

  • The Window Server (the WindowServer application)

  • The Pasteboard Server (the pbs application)

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.




Mac OS X Internals. A Systems Approach
Mac OS X Internals: A Systems Approach
ISBN: 0321278542
EAN: 2147483647
Year: 2006
Pages: 161
Authors: Amit Singh

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