Copland (operating system)
From Wikipedia, the free encyclopedia
Copland was a project at Apple Computer to create an updated version of the Macintosh operating system. It was to have introduced protected memory, multitasking and a number of new underlying operating system features, yet still be compatible with the vast majority of existing Mac software. Begun in 1994, it was abandoned in August of 1996. Starting around 1995 the system was also commonly referred to as System 8 or Mac OS 8, although this name was later re-used for an unrelated operating system.
Contents |
[edit] Background
In 1989, managers at Apple had a 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 (like adding color to the user interface) were written on blue cards, while more advanced ideas (like an object-oriented file system) were written on pink cards. Development of the ideas contained on both sets of cards was to proceed in parallel, and the two projects were known simply as "blue" and "pink". Apple intended to have the "blue" team (which came to call themselves the "Blue Meanies" after characters in Yellow Submarine) release an updated version of the existing Macintosh operating system in the 1990–1991 timeframe, and the "pink" team to release an entirely new OS around 1993.
The "blue" team delivered what became known as System 7 on May 13, 1991, but the "pink" team suffered from second-system effect and continued to slip its release into the indefinite future. Some of the reason for this can be traced to problems that would become endemic as time went on. As "pink" started to become delayed, engineers on the project jumped ship to work on "blue" instead. This left the "pink" team constantly struggling for staffing, while upper management ignored the problems. Eventually Apple semi-abandoned the "pink" project by spinning it off to form Taligent.
Originally intended to support a single user running a single application on a non-networked machine with a floppy disk drive for storage, many parts of the System 7 operating system simply did not scale well to the increasing demands of users. In particular the architecture of QuickDraw made it very difficult to introduce multitasking into the system, and the file system was inefficient for devices with larger storage capacities, such as hard disks larger than 4 GB, something that many consumer operating systems of the time struggled with.
Several attempts were made by various teams to address these issues with an updated operating system, or at least parts of one, but they ran afoul of internal politics and turf wars. John Sculley, Apple's CEO during this period, largely ignored the engineering departments while he concentrated on sales and marketing.
[edit] Design
With System 7.5 released in autumn 1994, Apple management decided that the decade-old Macintosh operating system had run its course. The system not only lacked a number of features expected from a modern OS, but was growing increasingly unstable due to the lack of protected memory. The number of crashes suffered by users was increasing all the time, and was becoming a real concern. An entirely new operating system with more advanced features would be needed for the platform to compete with upcoming releases of Microsoft Windows.
As System 7.5 was code-named "Mozart," the next-generation operating system that was intended to address the looming architectural issues was dubbed Copland after composer Aaron Copland. Copland was to run 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 which would be sent requests though interapplication communications. Copland consisted of the combination of Nukernel, various servers, and a suite of application support libraries to provide the well-known Macintosh programming interface.
Application services would be offered through a single program known as the blue box, which essentially encapsulated an existing System 7 operating system inside a single process in a single address space. Mac programs would run inside the blue box much as they did under System 7, as 'co-operative tasks' that used non-re-entrant Toolbox calls. A worst-case scenario was that an application in the blue box would crash, taking down the entire box with it. This would not result in the system as a whole going down, and the blue box could be restarted.
New applications, those written with Copland in mind, would be able to directly communicate with the new servers and thereby gain many advantages in terms of performance and scalability. They could also communicate with the kernel to "spin off" separate applications or threads, which would run as separate processes in protected memory, as in most modern operating systems. However, these separate applications could not use QuickDraw or other non-re-entrant calls, and thus could have no user interface. Apple suggested that larger programs could place their user interface in a normal Macintosh application, which would then start the "work threads" externally. Doing so was not easy, however, as multithreaded code is difficult to write and debug.
Another key feature of Copland was that it would be completely PowerPC "native." System 7 had been recompiled on the PowerPC with great success, but the system still relied on the processor having certain characteristics of a member of the Motorola 68000 processor family. In particular, the sixteen-level interrupt handlers used in the Mac OS had to be emulated, requiring an expensive call into the OS to translate these to the PowerPC's much simpler two-level system. This was true even if the code on either side of the interrupt was PowerPC native, which was increasingly common as more and more of the OS and various applications moved to new compilers. Removing this translation step would allow Copland-native applications to run much faster, as much as 50%, with no special effort on the part of the developers.
The challenge in Copland would be getting all of this to fit into an ordinary Mac. System 7.5 already used up about 2.5 megabytes of RAM, and at the time this was a significant portion of all the RAM available in most machines. Copland would be running what was essentially a complete copy of System 7.5 and an entirely separate operating system under it as well. Copland therefore was to use a fiendishly complex memory management system and rely extensively upon shared libraries, with the goal being for Copland to be only some 50% larger than 7.5.
There were also a number of features that were not a part of the basic Copland system. Notably, Copland did not directly support multithreading in the original Mac OS libraries, although programs could be written that directly interacted with the kernel to get these services (the servers made use of this, for instance). Additionally, Nukernel did not support symmetric multiprocessing, meaning it could not natively utilize more than one processor on a multi-processor system. Both of these features were expected of a modern operating system, but for Copland it was felt that it was more important to get the new API out to developers so they could start moving their applications over to the new system. By the time these capabilities were ready, a good portion of the application base should already be running on the platform.
The plan was that, over time, more and more of the existing non-re-entrant code would be ported to new libraries or servers. Eventually it would become possible that new applications written to these interfaces would be able to be run completely separately as their own tasks. The follow-on system supporting these features became known internally as Gershwin.
[edit] Development
Parts of Copland, most notably an early version of the new file system, were demonstrated at Apple's Worldwide Developers Conference in May 1995. Apple also promised that a beta release of Copland would be ready by the end of the year, for full release in early 1996. Throughout the year, Apple released a number of mock-ups to various magazines showing what the new system would look like, and commented continually that the company was fully committed to this project. By the end of the year, however, the developer release was nowhere in sight.
As had happened in the past during the development of Blue/Pink, developers within Apple soon started abandoning their own projects in order to work on the new system. Middle management and project leaders fought back, by putting their own project "into" Copland in an attempt to ensure it could not be canceled and their employees "removed" to work on Copland. This process took on momentum over the next year.
Soon the project looked less like a new operating system than a huge collection of new technologies; QuickDraw GX, SOM and OpenDoc became core components of the system, while completely unrelated technologies like a new file management dialog box (the "open dialog") and "themes" support appeared as well. The feature list grew much faster than the features could be completed, a classic case of creeping featuritis. As the "package" grew, any hope of testing it thoroughly became increasingly difficult.
At WWDC '96 Apple's new CEO, Gil Amelio, talked exclusively about Copland, known as System 8. He repeatedly stated that it was the only focus of Apple engineering. Amelio announced that it would ship to developers only a few months later at the end of the summer, with a full release planned for late fall. Very few, if any, demos of the running system were shown at the conference. Instead what was demonstrated were various pieces of the technology and the user interface that would go into the package, such as a new file management dialog. Little of the technology of the core system was demonstrated; the new file system that had been shown a year earlier was absent here.
After a number of people at the show complained about the lack of sophistication of the microkernel, notably the lack of symmetric multiprocessing, Amelio came back on stage at the end of the show and announced that they would be adding that to the feature list. This implied that the system was nowhere near ready, as such a feature is so fundamental to a kernel that it would be impossible to add it so close to the shipping date.
In August 1996, 'Developer Release 0' was sent to a small number of selected partners. Far from demonstrating improved stability, it often crashed after doing nothing at all, and was completely unusable for development. In October, Apple moved the target delivery date to 'sometime,' hinting that it might be 1997. One of the groups most surprised by the announcement was Apple's own hardware team, who had been waiting for Copland to allow the PowerPC to truly shine. Members of Apple's software QA team suggested, jokingly, that given current resources and the number of bugs in the system they could clear the program for shipping some time around 2030.
[edit] Cancellation
Later that summer the situation was no better, and Amelio realized something serious had to be done. He hired Ellen Hancock away from National Semiconductor to take over engineering and get Copland development back on track.
After a few months on the job, Hancock realized the situation was hopeless; given current development and engineering, Copland would never ship at all. Additionally she discovered that while developers in the company were aware that Gershwin was to be the "fully modern" follow-on, no one was quite sure what "fully modern" meant exactly, at least in comparison to Copland, nor was anyone assigned to actually work on it.
She suggested that development continue on the existing Mac OS to improve its stability, while looking outside the company for a new operating system. In August 1996, just as 'Developer Release 1' was being prepared, Apple officially canceled Copland. Among the reasons given were the slow pace of development and the many technical problems remaining to be solved.
Following Hancock's plan, development of System 7.5 continued with a number of technologies originally slated for Copland being incorporated into the base OS. Stability and performance was improved by Mac OS 7.6, which dropped the "System" moniker. Eventually many features developed for Copland, including support for "themes" (the default Platinum was the only theme included) were rolled into Mac OS 7.7, which was rebranded as "Mac OS 8". With the return of Steve Jobs, this rebranding also allowed Apple to exploit a legal loophole to terminate third-party manufacturers' licenses to System 7 and effectively shut down the Macintosh clone market. Later, Mac OS 8.6 added a nanokernel that could handle preemptive tasks. Its interface was Multiprocessing Services 2.x and later, but there was still no process separation and the system still used cooperative multitasking between processes. Even a process that was Multiprocessing Services-aware still had a portion that ran in the blue task, a task that also ran all single-threaded programs (and the only task that could run 68k code).
At the same time, Apple pursued Hancock's alternative plan, and Apple started looking to buy a third-party operating system product. After lengthy discussions with Be and rumors of a merger with Sun Microsystems, many were surprised when Apple bought NeXT in December 1996. The project to port OpenStep to the Macintosh platform was named Rhapsody and was eventually released as Mac OS X, which also uses the 'blue box' concept in the form of Classic to run applications written for older versions of Mac OS.
A number of features originally seen in Copland demos, including its advanced Find command, built-in Internet browser, and support for video-conferencing, have reappeared in recent releases of Mac OS X as Spotlight, Safari, and iChat AV, respectively.
[edit] Trivia
There is a reference to the project in the anime series Serial Experiments Lain, in which Lain's computer comes with a system called Copland OS.
There is a reference in the CGI series Reboot when the key tool used by the Prime Guardian Turbo is called Copland.
In the first person shooter Marathon there was a non-obtainable weapon included in early versions of the game called the "Pirated Copland Beta", which was removed during development.
[edit] See also
[edit] References
- Copland: The Mac OS Moves Into the Future — MacTech article by one of the Copland team
[edit] External links
- Mac OS 8 Revealed (Copland): Copland Development Book
- Apple's Copland: NEW! IMPROVED! NOT HERE YET! — BusinessWeek article from 1995
- OS Directions — TidBITS article from late 1994 illustrating what was then known of Copland and Gershwin.
- Apple's Copland project: An OS for the common man Article covering Copland development
History of the Apple Macintosh Operating Systems |
---|
Classic Mac OS (History): System 6 · System 7 · Mac OS 8 · Mac OS 9 |
Mac OS X (History): Public Beta · v10.0 · v10.1 · v10.2 · v10.3 · v10.4 · v10.5 |
Mac OS X Server: Rhapsody · Mac OS X Server 1.0 · Mac OS X Server |
Other OS projects: A/UX · Taligent · Copland · MkLinux · Darwin |