Please consider a donation to the Higher Intellect project. See https://preterhuman.net/donate.php or the Donate to Higher Intellect page for more info.

Apple Rhapsody: Difference between revisions

From Higher Intellect Vintage Wiki
No edit summary
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[File:Rhapmovie.png|thumb|Apple Rhapsody]]
[[File:Rhapmovie.png|thumb|Apple Rhapsody]]
[[File:Rhapsodycds.jpg|thumb]]


Rhapsody is the code name given to the project to port [[OPENSTEP]]/[[NeXTSTEP]] to the Macintosh PowerPC platform. The first developer releases of Rhapsody also supported x86 before being dropped prior to Rhapsody being shipped as [[Mac OS X Server]].
Rhapsody is the code name given to the project to port [[OPENSTEP]]/[[NeXTSTEP]] to the Macintosh PowerPC platform. The first developer releases of Rhapsody also supported x86 before being dropped prior to Rhapsody being shipped as [[Mac OS X Server]].
Line 6: Line 7:


==Supported Hardware==
==Supported Hardware==
Which computer systems are supported by the Rhapsody Developer Release for Power Macintosh?
Which computer systems are supported by the Rhapsody Developer Release for [[Power Macintosh]]?


The Rhapsody Developer Release for Power Macintosh supports Power Macintosh 8500 and 8600 systems as well as Power Macintosh 9500 and 9600 systems which use an Apple supplied display video card.
The Rhapsody Developer Release for Power Macintosh supports Power Macintosh 8500 and 8600 systems as well as Power Macintosh 9500 and 9600 systems which use an Apple supplied display video card.
Line 16: Line 17:
Power Macintosh)
Power Macintosh)


= Manuals =
==Rhapsody Benefits==
Rhapsody is a high-end operating system that combines the ease of use and capabilities of Mac OS with the reliability and throughput of systems from NeXT Software. Rhapsody provides:
 
* High performance and stability: Rhapsody will be an "industrial-strength" operating system (OS), a stable, modern, fully preempted and memory-protected multitasking environment, with built-in capabilities for symmetric multiprocessing.
* Superior Internet/intranet support: The advantages of Mac OS, together with mature network-optimized technology, and deep integration of Java, should make Rhapsody an unparalleled environment for users accessing and creating for the Internet and intranets.
* State-of-the-art multimedia: Apple's existing multimedia technologies, known collectively as the [[QuickTime Media Layer]] (QTML), will be optimized for Rhapsody, providing customers with a richer and leading edge environment for multimedia creation and playback.
* Ease of use: Rhapsody will build on the ease-of-use tradition long established by Apple. It will preserve the familiar "look and feel" of today's Mac OS user interface, while incorporating improvements from NeXT Software.
* Rapid prototyping and application development: Of particular interest to corporate environments, Rhapsody object-oriented environment and development tools increase developer productivity by streamlining application development.
* Compatibility: A key part of the Rhapsody architecture is a PowerPC-native compatibility environment for Mac OS, designed to ensure that both the vast majority of Mac OS applications as well as most system extensions can work without modification. This compatibility will be provided by a complete Mac OS implementation, allowing both 68K and PowerPC-based software to operate.
 
==Rhapsody for Developers==
Rhapsody features a powerful object-oriented application environment pioneered by [[NeXT]]. This extensive framework, referred to as the "Yellow Box," will be enhanced with key Apple technologies such as [[QuickTime]] and [[ColorSync]]. Importantly, the Yellow Box is not limited to Rhapsody on PowerPC-based Macintosh systems, but can also host applications on standard PCs running Windows. This opens the market opportunity much more broadly.
 
'''Key Benefits of the Yellow Box development platform:'''
 
* Develop "best of breed" applications: The Yellow Box is a highly efficient, full featured environment featuring powerful capabilities such as complete multitasking and multithreading, truly reusable object technology, Display PostScript for screen and printing, the [[QuickTime Media Layer]] for new media and much more.
* Shortening the development cycle: The Yellow Box features many of the world's leading development techniques such as visual programming, object-oriented code, and reusable software components.
* Enabling the full promise of Java: In addition to providing support for 100% Pure Java programs, the Yellow Box goes much further by offering a complete Java-based interface. Applications written in Java no longer need to be constrained by an incomplete environment.
* Delivering solutions across multiple platforms: The Yellow Box eliminates the need to determine which platform to develop for initially because it can host applications on Macintosh hardware, standard PCs and Window systems.
 
=Mac OS Rhapsody Architectural Diagram=
[[File:Archdiagram.gif]]
 
Apple's next generation OS, Rhapsody, aims to provide Apple with industry leading Internet and multimedia capabilities and give Macintosh customers a smooth upgrade path to next generation computing. Main features include:
 
'''Advanced Mac Look and Feel'''
 
Rhapsody expects to include an evolution of the Mac OS appearance, combining the best of Apple and NeXT user interface technology to provide an industry-leading user experience that will be familiar to today's Macintosh customers and exciting to new users.
 
'''OPENSTEP based Application Programming Interface (API)'''
 
Rhapsody aims to deliver preemptive multitasking, protected memory and symmetric multiprocessing - giving customers and developers a robust, next generation platform. Rhapsody should also offer software developers a rich set of new Application Programming Interfaces (APIs) from which to develop new classes of software products that highlight the differentiation of the Mac platform. These API's are based on NeXT Software Inc.'s market-leading OPENSTEP development environment. This area of the OS is refered to in some materials as "The Yellow Box" in the Rhapsody Architecture diagram.
 
'''Java VM'''
 
It is planned to fully integrate Java into Rhapsody - with Java Libraries and a Java Virtual Machine (VM), giving Apple market-leading Java capabilities. It is Apple's intention to make both Mac OS and Rhapsody preeminent development and delivery platforms for Java applications.
 
'''Mac OS Compatibility'''
 
Rhapsody aims to support today's software through a Mac OS compatibility environment. This environment is planned to be a complete native implementation of the Mac OS hosted on the next generation OS infrastructure provided by Rhapsody. This is not a software "emulation" layer. Instead Mac OS will be ported to the advanced Rhapsody base. This area of the OS is refered to in some materials as "The Blue Box" in the Rhapsody Architecture diagram.
 
'''Core OS'''
 
A modern kernel provides a next-generation high performance Input/Output (IO) architecture, file system, messaging and scheduling between applications, and networking.
 
'''PowerPC Platform Hardware'''
 
Apple's OS plans are underpinned by a hardware strategy that continues to take advantage of PowerPC performance. It is planned that Rhapsody will be optimized for PowerPC hardware.
 
=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 [[Apple Copland|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.
 
==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.
 
[[File:Osdiagram.gif]]
 
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.
 
=Mach Microkernel: The Five Key Points =
===Advanced Functionality===
Apple has chosen to implement the Mach microkernel, developed at Carnegie Mellon University and further refined by [[NeXT]] Software, Inc., as part of the core operating system for Rhapsody, Apple's next generation operating system. Mach is a well regarded, robust kernel designed to provide the low-level functionality of an operating system, such as memory management, tasking, synchronization, timing and messaging. These services form the basis of advanced operating system capabilities, including preemptive multitasking, memory protection and symmetric multiprocessing (SMP).
===Meets Key Kernel Criteria===
Apple selected the Mach kernel because it satisfied the company's key criteria in areas such as scalability from notebooks to servers; ease of evolution; and ease of integration with other parts of the Rhapsody architecture.
===Developer/Customer Issues===
The vast majority of software developers need not concern themselves with the kernel as they will write their applications to the OPENSTEP Applications Program Interface (API). As for customers, Apple's kernel decision has little impact as users will experience the benefits of the Mach kernel while being shielded from its complexity.
===Rhapsody Delivery On Track===
Apple met its commitment to provide a decision on the microkernel in January and remains on track to deliver a developer release of Rhapsody in mid-1997, a Premier customer release of Rhapsody in late-1997/early-1998, and a Unified customer release of Rhapsody in mid-1998.
===Compatibility===
Compatibility with current Mac OS applications is not dependent on the kernel, it is dependent on the hosting of the Mac OS environment in Rhapsody. Apple expects that the Unified release of Rhapsody in mid-1998 will have solid compatibility with Mac OS applications.
 
= Documentation/Articles =
* [[Apple Rhapsody Operating System Software]]
* [[Apple Rhapsody Operating System Software]]
* [[Apple Rhapsody Runtime Architecture]]
* [[Apple Rhapsody Runtime Architecture]]
* [[Information About Apple's OS Strategy - January 1997]]
* [[Yellow Box]]


=Product News=
=Product News=
Line 93: Line 234:
Steve Jobs' Next Software. Originally designed to serve large enterprises,
Steve Jobs' Next Software. Originally designed to serve large enterprises,
the OS under Apple became the source for a complicated OS development which
the OS under Apple became the source for a complicated OS development which
would apply to Power Macintosh computers and Intel- based computers.
would apply to [[Power Macintosh]] computers and Intel- based computers.
   
   
The version of Rhapsody for Power Macintoshes was code-named the "Blue Box,"
The version of Rhapsody for Power Macintoshes was code-named the "Blue Box,"
Line 108: Line 249:
fall, a couple of Mac OS 8.x upgrades after that, then Mac OS X sometime late
fall, a couple of Mac OS 8.x upgrades after that, then Mac OS X sometime late
in 1999. After that, Rhapsody is history.
in 1999. After that, Rhapsody is history.
===Yellow Box Unifies Developer Proposition From Apple ===
The [[Yellow Box]] is a development platform for building robust, content-rich desktop, Internet/intranet software applications. The Yellow Box will be a key component in three future operating system releases from Apple: Rhapsody, Mac OS, and Rhapsody for Intel.
The [[Yellow Box]] will also be hosted on a new Windows development and deployment platform slated from Apple, code named Yellow Box for Windows. This development and deployment platform will allow a Yellow Box application to be a first class Windows citizen, with complete Windows look and feel.
All Yellow Box-based products are an evolution of OPENSTEP--an operating system independent, object oriented application platform. Integrating the cross platform robustness of OPENSTEP technologies with Apple's market leading digital media and graphics technologies will differentiate the Yellow Box from other development platforms. Apple also confirmed at WWDC that The Yellow Box development environment will include the WebObjects framework that provides an HTML interface to its objects, enabling developers to easily create dynamic web-based applications.
Apple's intention is to release a cross-platform suite of application development tools for the Yellow Box . The "Prelude to Rhapsody" Program, announced in April, provides early access and releases of some of the tools. The initial suite of tools is expected to be introduced at the same time as the developer release of Rhapsody and will continue to support world-class object-oriented programming models. By integrating tools from Apple, Metrowerks and others, software developers will be able to leverage existing code and use programming languages such Java, C, C++, and Objective C to create next generation applications. Because of the rich collection of services and the dynamic nature of the Yellow Box, programmers will enjoy new found increases in productivity.


=Notes=
=Notes=
Line 119: Line 269:
It's rather easy to do: put a machine on the other subnet to act as a clone, and change its "broadcasthost" address to point at the master server instead of the broadcast address. You boot it, and once it binds to the master server, you go through the steps to set up a clone. Then you change broadcasthost back in the local domain. Done.  
It's rather easy to do: put a machine on the other subnet to act as a clone, and change its "broadcasthost" address to point at the master server instead of the broadcast address. You boot it, and once it binds to the master server, you go through the steps to set up a clone. Then you change broadcasthost back in the local domain. Done.  
</pre>
</pre>
=Screenshots=
<gallery mode="packed">
File:Rhapsdy1.jpg
File:Rhapsdy2.jpg
File:Rhapsdy3.jpg
File:Rhapsdy4.jpg
File:Rhapsdy5.jpg
File:Rhapsdy6.jpg
</gallery>


=See Also=
=See Also=
Line 125: Line 285:


[[Category:Operating Systems]] [[Category:Apple]]
[[Category:Operating Systems]] [[Category:Apple]]
[[Category:Software]]
[[Category:Macintosh System Software]]

Revision as of 23:44, 8 September 2021

Apple Rhapsody

Rhapsody is the code name given to the project to port OPENSTEP/NeXTSTEP to the Macintosh PowerPC platform. The first developer releases of Rhapsody also supported x86 before being dropped prior to Rhapsody being shipped as Mac OS X Server.

Mach, the kernel at the core of the Rhapsody OS, was designed by researchers at Carnegie Mellon University (CMU). Mach is a simple communication-oriented kernel, and is designed to support distributed and parallel computation while still providing BSD 4.4 compatibility. The Rhapsody version of the Mach kernel is a port of CMU Release 2.0, with additional features both from Apple and from later versions of CMU Mach. Apple-only features include the Bootstrap Server and loadable kernel servers. Features from CMU Release 2.5 and beyond include scheduling and some details of messaging.

Supported Hardware[edit]

Which computer systems are supported by the Rhapsody Developer Release for Power Macintosh?

The Rhapsody Developer Release for Power Macintosh supports Power Macintosh 8500 and 8600 systems as well as Power Macintosh 9500 and 9600 systems which use an Apple supplied display video card.

The systems which are officially supported, include Power Macintosh:

  • 8500/120,8500/132,8500/150,8500/180 8600/200, 8600/300, 9500/120,9500/132,9500/150,9500/180,9500/180MP*, 9500/200, 9600/200,9600/200MP*,9600/233, 9600/300, 9600/350

This multiprocessor model will support the Rhapsody Developer Release but will make use of only one processor. (Some unqualified systems may run Rhapsody Developer Release for Power Macintosh)

Rhapsody Benefits[edit]

Rhapsody is a high-end operating system that combines the ease of use and capabilities of Mac OS with the reliability and throughput of systems from NeXT Software. Rhapsody provides:

  • High performance and stability: Rhapsody will be an "industrial-strength" operating system (OS), a stable, modern, fully preempted and memory-protected multitasking environment, with built-in capabilities for symmetric multiprocessing.
  • Superior Internet/intranet support: The advantages of Mac OS, together with mature network-optimized technology, and deep integration of Java, should make Rhapsody an unparalleled environment for users accessing and creating for the Internet and intranets.
  • State-of-the-art multimedia: Apple's existing multimedia technologies, known collectively as the QuickTime Media Layer (QTML), will be optimized for Rhapsody, providing customers with a richer and leading edge environment for multimedia creation and playback.
  • Ease of use: Rhapsody will build on the ease-of-use tradition long established by Apple. It will preserve the familiar "look and feel" of today's Mac OS user interface, while incorporating improvements from NeXT Software.
  • Rapid prototyping and application development: Of particular interest to corporate environments, Rhapsody object-oriented environment and development tools increase developer productivity by streamlining application development.
  • Compatibility: A key part of the Rhapsody architecture is a PowerPC-native compatibility environment for Mac OS, designed to ensure that both the vast majority of Mac OS applications as well as most system extensions can work without modification. This compatibility will be provided by a complete Mac OS implementation, allowing both 68K and PowerPC-based software to operate.

Rhapsody for Developers[edit]

Rhapsody features a powerful object-oriented application environment pioneered by NeXT. This extensive framework, referred to as the "Yellow Box," will be enhanced with key Apple technologies such as QuickTime and ColorSync. Importantly, the Yellow Box is not limited to Rhapsody on PowerPC-based Macintosh systems, but can also host applications on standard PCs running Windows. This opens the market opportunity much more broadly.

Key Benefits of the Yellow Box development platform:

  • Develop "best of breed" applications: The Yellow Box is a highly efficient, full featured environment featuring powerful capabilities such as complete multitasking and multithreading, truly reusable object technology, Display PostScript for screen and printing, the QuickTime Media Layer for new media and much more.
  • Shortening the development cycle: The Yellow Box features many of the world's leading development techniques such as visual programming, object-oriented code, and reusable software components.
  • Enabling the full promise of Java: In addition to providing support for 100% Pure Java programs, the Yellow Box goes much further by offering a complete Java-based interface. Applications written in Java no longer need to be constrained by an incomplete environment.
  • Delivering solutions across multiple platforms: The Yellow Box eliminates the need to determine which platform to develop for initially because it can host applications on Macintosh hardware, standard PCs and Window systems.

Mac OS Rhapsody Architectural Diagram[edit]

Apple's next generation OS, Rhapsody, aims to provide Apple with industry leading Internet and multimedia capabilities and give Macintosh customers a smooth upgrade path to next generation computing. Main features include:

Advanced Mac Look and Feel

Rhapsody expects to include an evolution of the Mac OS appearance, combining the best of Apple and NeXT user interface technology to provide an industry-leading user experience that will be familiar to today's Macintosh customers and exciting to new users.

OPENSTEP based Application Programming Interface (API)

Rhapsody aims to deliver preemptive multitasking, protected memory and symmetric multiprocessing - giving customers and developers a robust, next generation platform. Rhapsody should also offer software developers a rich set of new Application Programming Interfaces (APIs) from which to develop new classes of software products that highlight the differentiation of the Mac platform. These API's are based on NeXT Software Inc.'s market-leading OPENSTEP development environment. This area of the OS is refered to in some materials as "The Yellow Box" in the Rhapsody Architecture diagram.

Java VM

It is planned to fully integrate Java into Rhapsody - with Java Libraries and a Java Virtual Machine (VM), giving Apple market-leading Java capabilities. It is Apple's intention to make both Mac OS and Rhapsody preeminent development and delivery platforms for Java applications.

Mac OS Compatibility

Rhapsody aims to support today's software through a Mac OS compatibility environment. This environment is planned to be a complete native implementation of the Mac OS hosted on the next generation OS infrastructure provided by Rhapsody. This is not a software "emulation" layer. Instead Mac OS will be ported to the advanced Rhapsody base. This area of the OS is refered to in some materials as "The Blue Box" in the Rhapsody Architecture diagram.

Core OS

A modern kernel provides a next-generation high performance Input/Output (IO) architecture, file system, messaging and scheduling between applications, and networking.

PowerPC Platform Hardware

Apple's OS plans are underpinned by a hardware strategy that continues to take advantage of PowerPC performance. It is planned that Rhapsody will be optimized for PowerPC hardware.

Mac OS Compatibility on Rhapsody[edit]

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.

Mac OS Compatibility Overview[edit]

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[edit]

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.

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.

Mach Microkernel: The Five Key Points[edit]

Advanced Functionality[edit]

Apple has chosen to implement the Mach microkernel, developed at Carnegie Mellon University and further refined by NeXT Software, Inc., as part of the core operating system for Rhapsody, Apple's next generation operating system. Mach is a well regarded, robust kernel designed to provide the low-level functionality of an operating system, such as memory management, tasking, synchronization, timing and messaging. These services form the basis of advanced operating system capabilities, including preemptive multitasking, memory protection and symmetric multiprocessing (SMP).

Meets Key Kernel Criteria[edit]

Apple selected the Mach kernel because it satisfied the company's key criteria in areas such as scalability from notebooks to servers; ease of evolution; and ease of integration with other parts of the Rhapsody architecture.

Developer/Customer Issues[edit]

The vast majority of software developers need not concern themselves with the kernel as they will write their applications to the OPENSTEP Applications Program Interface (API). As for customers, Apple's kernel decision has little impact as users will experience the benefits of the Mach kernel while being shielded from its complexity.

Rhapsody Delivery On Track[edit]

Apple met its commitment to provide a decision on the microkernel in January and remains on track to deliver a developer release of Rhapsody in mid-1997, a Premier customer release of Rhapsody in late-1997/early-1998, and a Unified customer release of Rhapsody in mid-1998.

Compatibility[edit]

Compatibility with current Mac OS applications is not dependent on the kernel, it is dependent on the hosting of the Mac OS environment in Rhapsody. Apple expects that the Unified release of Rhapsody in mid-1998 will have solid compatibility with Mac OS applications.

Documentation/Articles[edit]

Product News[edit]

Rhapsody OS Likely To End After Mac OS X Debuts 06/09/98 -- CUPERTINO, CALIFORNIA, U.S.A., 1998 JUN 9 (NB) -- By Patrick McKenna, Newsbytes.


Macintosh fans are reading confusing messages about Apple Computer's [ASDAQ: AAPL Rhapsody operating system (OS), as a recent report suggests the once highly touted OS is now dead. Last month, Rhapsody was identified as the core technology for Apple's next Macintosh OS, Mac OS X (ten), as well as a possible server OS. But Apple's evolving OS plans do not include an extended future for Rhapsody.

"It's a good headline, but it is not really an accurate picture," said Apple spokesperson Russell Brady, in responding to the "death" of Rhapsody.

A MacWeek article claimed "Rhapsody as a strategy is dead. But the technology lives on." Citing Ken Bereskin, Apple's director of OS technologies, the report claims Apple has changed its OS strategy in relation to Rhapsody.

"It is pretty clear coming out of WWDC (World Wide Developer Conference) that Rhapsody isn't a strategy anymore," said Bereskin. "As a strategy, it was incomplete -- it wasn't what the Mac OS development community wanted -- so we've changed the strategy." Although the strategy is changing, Brady said the rush to bury Rhapsody is a bit premature. Accordingly, he said Apple will release Rhapsody 1.0 sometime this fall. "I think it will be used primarily by developers and high-end users who want to get a feel for Mac OS X," he added.

"Rhapsody can be looked at as a parent for Mac OS X," continued Brady. "We are still developing Rhapsody and continue to develop the technologies it provides."

More than 10,000 Macintosh developers already have a "developers release" of Rhapsody.

A farewell to Rhapsody may be premature, but in terms of an evolving product, the OS will not be part of Apple's long-term plans. Even Brady said, "There are no plans to bring Rhapsody forward after version 1.0."

Other Apple watchers are more emphatic. "Mac OS X is Rhapsody," wrote well-known Apple commentator Don Crabb. Asked the difference between Rhapsody and Mac OS X, Apple analyst and consultant Peter Hartsook reiterated Crabb's statement by saying, "In fact, Rhapsody is Mac OS X."

In the MacWeek report, Bereskin endorsed Rhapsody 1.0 as a server platform for publishing applications. "As a product, Rhapsody doesn't represent the features, the technologies and the user experience that Mac OS X does, so it is not going to be pushed for any level of desktop deployment," Bereskin said. "But as a server, especially in Apple's core markets, it brings value."

Until recently, Apple indicated the company would pursue a parallel OS strategy with the Mac OS for desktops and Rhapsody as a server operating system. Now with a strategy which does not include future versions of Rhapsody, Apple is not going to make Rhapsody the foundation for a new OS server platform.

However, Apple could develop Mac OS X as a desktop OS and a server OS. "We are not saying Mac OS X will be a server OS," claimed Brady, "but it will include the functionality to operate as a server OS."

Hartsook said he did not see value in Apple's plans to make Rhapsody a sever OS. "That's never been clear to me exactly what that means," he added. "Yes, it (Rhapsody) has memory protection and pre-emptive multitasking and all the things you need for a server, but a server is more than just a relabeled desktop operating system."

"There are people who would buy Rhapsody as a server," Hartsook said, "but it will not be a cash cow. What hardware are you going to run it on? Well, the only thing it will run on is going to be Macintosh systems and Apple's not really building server systems at this time. It's building desktops."

Rhapsody is based on technology Apple received when the company acquired Steve Jobs' Next Software. Originally designed to serve large enterprises, the OS under Apple became the source for a complicated OS development which would apply to Power Macintosh computers and Intel- based computers.

The version of Rhapsody for Power Macintoshes was code-named the "Blue Box," and "Yellow Box" was a code-name for Rhapsody development on Windows NT, Windows 95 and eventually Mac OS platforms.

The issue of Apple developing Rhapsody or Mac OS X for Intel-based machines is no longer a likelihood. "Producing an operating system for Intel processors is not a short-term priority," Bereskin said, "From an exceptionally high level, processor independence and flexibility is always a good thing. But there are no specific product plans at all."

In summary, the Apple OS roadmap now looks as follows: Rhapsody 1.0 this fall, a couple of Mac OS 8.x upgrades after that, then Mac OS X sometime late in 1999. After that, Rhapsody is history.

Yellow Box Unifies Developer Proposition From Apple[edit]

The Yellow Box is a development platform for building robust, content-rich desktop, Internet/intranet software applications. The Yellow Box will be a key component in three future operating system releases from Apple: Rhapsody, Mac OS, and Rhapsody for Intel.

The Yellow Box will also be hosted on a new Windows development and deployment platform slated from Apple, code named Yellow Box for Windows. This development and deployment platform will allow a Yellow Box application to be a first class Windows citizen, with complete Windows look and feel.

All Yellow Box-based products are an evolution of OPENSTEP--an operating system independent, object oriented application platform. Integrating the cross platform robustness of OPENSTEP technologies with Apple's market leading digital media and graphics technologies will differentiate the Yellow Box from other development platforms. Apple also confirmed at WWDC that The Yellow Box development environment will include the WebObjects framework that provides an HTML interface to its objects, enabling developers to easily create dynamic web-based applications.

Apple's intention is to release a cross-platform suite of application development tools for the Yellow Box . The "Prelude to Rhapsody" Program, announced in April, provides early access and releases of some of the tools. The initial suite of tools is expected to be introduced at the same time as the developer release of Rhapsody and will continue to support world-class object-oriented programming models. By integrating tools from Apple, Metrowerks and others, software developers will be able to leverage existing code and use programming languages such Java, C, C++, and Objective C to create next generation applications. Because of the rich collection of services and the dynamic nature of the Yellow Box, programmers will enjoy new found increases in productivity.

Notes[edit]

  • Rhapsody DR2 will not boot on a Power Macintosh 7300 even though the installer works. Use DR1 instead on this model.
  • Hold down the "s" key during power on to boot into single user mode.
  • Rhapsody DR1 does not support the Power Macintosh G3

Tips[edit]

Using NetInfo across subnet boundaries[edit]

It's rather easy to do: put a machine on the other subnet to act as a clone, and change its "broadcasthost" address to point at the master server instead of the broadcast address. You boot it, and once it binds to the master server, you go through the steps to set up a clone. Then you change broadcasthost back in the local domain. Done. 

Screenshots[edit]

See Also[edit]