Copland (operating system)


Copland is an operating system developed by Apple for Macintosh computers between 1994 and 1996 but never commercially released. It was intended to be released with the name System 8, and later after changing their naming style, Mac OS 8. Planned as a modern successor to the aging System 7, Copland introduced protected memory, preemptive multitasking, and several new underlying operating system features, while retaining compatibility with existing Mac applications. Copland's tentatively planned successor, codenamed Gershwin, was intended to add more advanced features such as application-level multithreading.
Development officially began in March 1994. Over the next several years, previews of Copland garnered much press, introducing the Mac audience to operating system concepts such as object orientation, crash-proofing, and multitasking. In August 1995, David Nagel, a senior vice president, announced at Macworld Expo that Copland would be released in mid-1996. The following May, Gil Amelio stated that Copland was the primary focus of the company, aiming for a late-year release. Internally, however, the development effort was beset with problems due to dysfunctional corporate personnel and project management. Development milestones and developer release dates were missed repeatedly.
Ellen Hancock was hired to get the project back on track, but quickly concluded it could never ship. In August 1996, it was announced that Copland was canceled and Apple would look outside the company for a new operating system. Among many choices, they selected NeXTSTEP and purchased NeXT in 1997 to obtain it. In the interim period, while NeXTSTEP was ported to the Mac, Apple released the much more legacy-oriented Mac OS 8 in 1997 based upon adding components from Copland, and Mac OS 9 in 1999 to transition forward. Mac OS X became Apple's next-generation operating system in 2001.
The Copland development effort has been described as an example of feature creep. In 2008, PC World included Copland on a list of the biggest project failures in information technology history.

Design

Mac OS legacy

Launched in 1984, the Macintosh and its operating system were designed from the start as a single-user, single-tasking system, which allowed the hardware development to be greatly simplified.
These limits meant that supporting the multitasking of more than one program at a time would be difficult, without rewriting all of this operating system and application code. Yet doing so would mean the system would run unacceptably slow on existing hardware. Instead, Apple adopted a system known as MultiFinder in 1987, which keeps the running application in control of the computer, as before, but allows an application to be rapidly switched to another, normally simply by clicking on its window. Programs that are not in the foreground are periodically given short bits of time to run, but as before, the entire process is controlled by the applications, not the operating system.
Because the operating system and applications all share one memory space, it is possible for a bug in any one of them to corrupt the entire operating system, and crash the machine. Under MultiFinder, any crash anywhere will crash all running programs. Running multiple applications potentially increases the chances of a crash, making the system potentially more fragile.
Adding greatly to the severity of the problem is the patching mechanism used to add functions to the operating system, known as CDEVs and INITs or Control Panels and Extensions. Third party developers also make use of this mechanism to add features, including screensavers and a hierarchical Apple menu. Some of these third-party control panels became almost universal, like the popular After Dark screensaver package. Because there was no standard for use of these patches, it is not uncommon for several of these add-ons — including Apple's own additions to the OS — to use the same patches, and interfere with each other, leading to more crashing.

Copland design

Copland was designed to consist of the Mac OS on top of a microkernel named Nukernel, which would handle basic tasks such as application startup and memory management, leaving all other tasks to a series of semi-special programs known as servers. For instance, networking and file services would not be provided by the kernel itself, but by servers that would be sending requests through interapplication communications. The Copland system as a whole consists of the combination of Nukernel, various servers, and a suite of application support libraries to provide implementations of the well-known classic Macintosh programming interface.
Application services are offered through a single program known officially as the Cooperative Program Address Space. Mac programs run much as they do under System 7, as cooperative tasks that use the non-reentrant Toolbox calls. Copland provided much improved stability for applications running compared to System 7 – "the system won’t crash as it can in System 7. Instead, because the Copland microkernel tracks all resources, it can reclaim them when it terminates the process associated with your application.". A worst-case scenario is that an application in the CPAS environment crashes, taking down the entire environment with it. This does not result in the system as a whole going down, however, and the Cooperative Program Address Space environment is automatically restarted. In addition, Copland provides pre-emptive scheduling of tasks where "the Process Manager gives each primary task the opportunity to be preemptively scheduled by the microkernel."
New applications, written with Copland in mind, are able to directly communicate with the system servers and thereby gain many advantages in terms of performance and scalability. They can also communicate with the kernel to launch separate applications or threads, which run as separate processes in protected memory, as in most modern operating systems. These separate applications cannot use non-reentrant calls like QuickDraw, however, and thus could have no user interface. Apple suggested that larger programs could place their user interface in a normal Macintosh application, which then start worker threads externally.
Copland is fully PowerPC native. System 7 had been ported to the PowerPC with great success; some parts of the system run as PPC code. There is enough 68k code left in the system to be run in emulation, and especially user applications, however that the operating system must map some data between the two environments. In particular, every call into the Mac OS requires a mapping between the interrupt systems of the 68k and PPC. Removing these mappings would greatly improve general system performance. At WWDC 1996, engineers claimed that system calls would execute as much as 50% faster.
Copland is also based on the then-recently defined Common Hardware Reference Platform, or CHRP, which standardized the Mac hardware to the point where it could be built by different companies and can run other operating systems. This was a common theme at the time; many companies were forming groups to define standardized platforms to offer an alternative to the "Wintel" platform that was rapidly becoming dominant — examples include 88open, Advanced Computing Environment, and the AIM alliance.
The fundamental challenge of Copland's development and adoption was getting all of these functions to fit into an ordinary Mac. System 7.5 already uses up about 2.5 megabytes of RAM, which is a significant portion of the total RAM in most contemporaneous machines. Copland is a hybrid of two systems, as its native foundation also hosts the Cooperative Program Address Space application environment as well as Copland native Server tasks. Copland thus uses a Mach-inspired memory management system and relies extensively on shared libraries, with the goal of being about 50% larger than 7.5.

History

Pink and Blue

In March 1988, technical middle managers at Apple held an offsite meeting to plan the future course of Mac OS development. Ideas were written on index cards; features that seemed simple enough to implement in the short term were written on blue cards; longer-term goals—such as preemptive multitasking—were on pink cards; and long-range ideas like an object-oriented file system were on red cards. Development of the ideas contained on the blue and pink cards was to proceed in parallel, and at first, the two projects were known simply as "blue" and "pink". Apple intended to have the Blue team release an updated version of the existing Macintosh operating system in the 1990–1991 timeframe, and the Pink team to release an all-new OS around 1993.
The Blue team, who came to call themselves the "Blue Meanies" after characters in the film Yellow Submarine, delivered what became known as System 7 on May 13, 1991, but the Pink team's efforts suffered from second-system effect and its release date continued to slip into the indefinite future. Some of the reason for this can be traced to problems that would become widespread at Apple as time went on; as Pink became delayed, its engineers moved to Blue instead. This left the Pink team constantly struggling for staffing, and suffering from the problems associated with high employee turnover. Management ignored these sorts of technical development issues, leading to continual problems delivering working products.
At this same time, the recently released NeXTSTEP was generating intense interest in the developer world. Features that were originally part of Red were folded into Pink, and the Red project was eventually canceled. This problem was also common at Apple during this period; to chase the "next big thing", middle managers added new features to their projects with little oversight, leading to enormous problems with feature creep. In the case of Pink, development eventually slowed to the point that the project appeared moribund.