Mac OS Compatibility on Rhapsody

To ease transition issues for customers and developers, Apple's next-generation operating system (OS), Rhapsody, will include a compatibility environment that will support Mac OS applications and system extensions. This will be accomplished by hosting a complete implementation of the Mac OS runtime environment on the modern OS infrastructure, using the latest Mac OS source code and ROM image.

While the majority of Mac OS-compatible software will work in this environment, some software will need to be rewritten for the new OS. This includes both software that interfaces directly with hardware, and software that depends on some areas of the system that have been tightly integrated with the NeXT OPENSTEP environment.

This is a significant improvement over the compatibility strategy for Copland, Apple's earlier OS project, in which all previous system extensions were rendered obsolete and application compatibility was lower.

This paper outlines Apple's plans and expectations based on extensive internal review and comparisons with related products previously shipped by Apple, such as the Macintosh Application Environment. Please note that detailed specifications are still being developed.

Benefits for Customers and Developers

Mac OS Compatibility Overview

Apple's goal is that Rhapsody will support Mac OS software through a Mac OS compatibility environment. This environment will be a complete implementation of the then-current Mac OS, hosted on the modern operating system infrastructure provided by Rhapsody. Note that this is not an emulation layer.

The Mac OS compatibility environment will be based entirely on the same source code and ROM image as Apple's Mac OS. This will allow the Mac OS compatibility environment in Rhapsody to quickly inherit improvements to the Mac OS as it evolves.

Because this compatibility is provided by a complete Mac OS implementation, both 680x0 and PowerPC processor-based software will be supported. This includes the vast majority of Mac OS applications as well as most system extensions. To ensure the overall stability of Rhapsody, applications and extensions that interface directly with hardware will not be supported.

The compatibility environment will be implemented as an OPENSTEP process managed by the microkernel of the operating system. In this way, the compatibility environment will realize the benefits Rhapsody provides, such as modern PowerPC virtual memory system, file system, and networking services. Because each OPENSTEP process will be completely memory-protected, the compatibility environment will be protected from errant OPENSTEP applications. Perhaps more important, the operating system and OPENSTEP applications will be protected from errant Mac OS software that may cause the compatibility environment to crash. Such problems will not affect other elements of Rhapsody, and the Mac OS compatibility environment can be restarted without restarting the whole system.

Apple will support the ability to boot either Mac OS or Rhapsody on a single Mac OS-compatible computer.

The Mac OS compatibility environment will evolve through a series of Rhapsody releases. While the initial version will provide only basic compatibility services, subsequent releases will improve integration and compatibility with the full suite of Mac OS services.

Mac OS Compatibility Details

The sections below outline the details of Apple's goals and objectives based on current plans formulated through extensive internal review. Please note that specific technical details are still under development.

Implementation

Within Rhapsody, Mac OS compatibility will be implemented as a single OPENSTEP process. In the compatibility environment, all applications and system extensions will share a single preemptive thread of execution and the address space of this process. This approach provides a high degree of compatibility and stability. Crashing of a Mac OS application cannot affect OPENSTEP applications or other elements of the system, even if the application crashes the entire Mac OS environment. For example, network connections used by OPENSTEP applications would remain active.

Mac OS Compatibility Architecture

For Rhapsody to provide this high degree of compatibility and stability, Mac OS software will not be permitted to access OPENSTEP services. However, communication between the two environments will be possible using Apple events.

What Will Work and What Won't

The Mac OS compatibility environment will support Mac OS software that does not interface directly with hardware and does not manipulate certain system services that are shared with the OPENSTEP or core OS environments. These restrictions are necessary to ensure the stability and performance that Rhapsody offers.

Most applications, plug-ins, and desk accessories will work, including productivity, publishing, and Internet applications. Examples of applications that may not work include scanner, sound, and video applications that directly manipulate input devices.

System extensions (INITs) that interface directly with hardware will not work. Also, extensions that patch system services that are expected to be universal cannot work. For example, a Mac OS extension that provides file compression services patches the Mac OS file manager to intercept all file system accesses. However, the Rhapsody file system may be accessed by software outside the Mac OS compatibility environment, bypassing the file compression software. This would cause inconsistent data and potentially dangerous behavior. For extensions that do work, their effect will be isolated to the Mac OS compatibility environment. For example, a Mac OS extension that modifies the appearance of windows and menus will affect only the interface in the Mac OS compatibility environment.

Control panels (CDEVs) and Chooser devices (RDEVs) that contain INIT resources fall into the category of system extensions, described above. Other control panels and Chooser devices should work correctly.

Installers, fonts, sounds, sound sifters, and sound and video compressors/decompressors (CODECs) should work with the Mac OS compatibility environment. User Authentication Modules (UAMs) that work in conjunction with AppleShare, Translation Manager translators that work with Mac OS Easy Open, and Apple Shared Library Manager (ASLM) libraries should also work.

Network and serial-based printer drivers that don't interface directly with hardware should work. This applies to most printer drivers, as they generally make use of system networking and serial services.

Drivers that interface directly with hardware won't work; however, software-only drivers, such as disk image mounting utilities, should work. Most SCSI and ADB devices should work, including ADB-based copy-protection "dongles."

File System Manager (FSM) and Foreign File Access (FFA) modules such as PC Exchange and CD-ROM support may continue to work, depending on their implementations. However, most services that would use these modules will be provided to the Mac OS compatibility environment by the core OS and will be available in both environments simultaneously. Any services that aren't provided by the core OS but are provided by Mac OS-compatible software will be available only in the compatibility environment.

Text Services Manager (TSM) modules-such as input methods for Japanese, Chinese, and other languages may require modification because the Mac OS event system must be modified to support integration with the OPENSTEP environment.

Debuggers will require some modification to work with the Mac OS environment.

System Services

Networking services within the Mac OS compatibility environment for serial, AppleTalk (including the Chooser), and TCP/IP will be provided through Open Transport. Network and serial-based printing will also be supported.

Virtual memory will appear to be turned off for software in the Mac OS compatibility environment. However, because this environment is implemented within an OPENSTEP process, it takes full advantage of the high-performance demand-paged virtual memory system.

Interoperability

The entire Mac OS compatibility environment will appear in one window within the OPENSTEP display environment, so Mac OS windows can share the display with OPENSTEP windows. This Mac OS compatibility window can optionally take over the entire display to provide a user experience consistent with running the Mac OS. Also, Rhapsody will support multiple monitors as the Mac OS does today. The shared application menu will list all Mac OS and OPENSTEP applications.

Mac OS applications will be able to communicate with OPENSTEP applications via Apple events, to enable workflow solutions and factored applications.

Copy and paste operations between Mac OS and OPENSTEP applications will be supported. Drag and drop operations will work within each environment, but may not work between the two environments.

Performance

The Mac OS compatibility environment in Rhapsody will meet or exceed the end-user-level performance of the then-current Mac OS. This performance level assumes that while OPENSTEP applications might be open in the background, they are not active. The display performance of the Mac OS compatibility environment will be better when the Mac OS occupies the entire display.

Performance of large I/O reads and writes should improve significantly relative to the then-current Mac OS.

Summary

The Mac OS compatibility environment in Rhapsody will preserve customer investments in Mac OS-based hardware and software solutions through a complete implementation of the Mac OS. The vast majority of Mac OS applications and most system extensions are expected to work in this environment.

The information discussed in this document is based on features and functionality planned for a future product release. The discussion herein does not represent a commitment on the part of Apple Computer, Inc. to provide or ship the features and functionality discussed. Information is subject to change without notice. Statements in this document regarding future versions of the Mac OS and regarding Rhapsody are forward-looking statements that involve risks and uncertainties, including successful and timely development of future versions of the Mac OS and of Rhapsody. More information on potential factors that could affect the success of the products described in this document and the Company's financial results is included in the SEC filings of Apple, including Apple's Form 10-K for the 1996 fiscal year, and in Apple's Form 10-Q for the first fiscal quarter of 1997, to be filed with the SEC.

©1997 Apple Computer, Inc. All rights reserved. Apple, the Apple logo, AppleShare, AppleTalk, Mac, Macintosh, and Power Macintosh are trademarks of Apple Computer, Inc., registered in the U.S.A. and other countries. Foreign File Access and Macintosh Application Environment are trademarks of Apple Computer, Inc. PowerPC is a trademark of International Business Machines Corporation, used under license therefrom. January 1997.