# Workplace OS

Workplace OS is IBM's ultimate operating system prototype of the 1990s. It is the product of an exploratory research program in 1991 which yielded a design called the Grand Unifying Theory of Systems (GUTS), proposing to unify the world's systems as generalized "personalities" cohabitating concurrently upon a universally sophisticated platform of object-oriented frameworks upon one microkernel. Using personalities, a single machine would be able to run applications from multiple conventional operating systems like Unix and OS/2.
Within the AIM alliance, Apple demonstrated its mature Pink operating system prototype to IBM's GUTS design team which was immediately heavily impressed and influenced. The result is Workplace OS, intended to improve software portability and maintenance costs by aggressively recruiting all operating system vendors to convert their products into Workplace OS personalities. That included Pink when it became Taligent, which was a pillar of AIM and co-developed with Workplace OS. In 1995, IBM reported that "Nearly 20 corporations, universities, and research institutes worldwide have licensed the microkernel, laying the foundation for a completely open microkernel standard." Workplace OS was at the core of IBM's new unified strategic direction for the entire company, and was intended also as a bellwether toward PowerPC hardware platforms, to compete with the Wintel duopoly.
With protracted development spanning four years and $2 billion (or 0.6% of IBM's revenue for that period), the project suffered development hell characterized by workplace politics, feature creep, and the second-system effect. Many idealistic key assumptions made by IBM architects about software complexity and system performance were never tested until far too late in development, then proven infeasible. In January 1996, the first and only commercial preview was billed under the OS/2 family with the name "OS/2 Warp Connect (PowerPC Edition)" for limited special order by select IBM customers, as a crippled prototype. The entire Workplace OS platform was discontinued in March due to very low market demand, including that for enterprise PowerPC hardware.
A University of California case study described the Workplace OS project as "one of the most significant operating systems software investments of all time" and "one of the largest operating system failures in modern times".

## Overview
### Objective

By 1990, IBM acknowledged the software industry to be in a state of perpetual crisis. This was due to the chaos from the inordinate complexity of software engineering inherited by its legacy of procedural programming practices since the 1960s. Large software projects were too difficult, fragile, expensive, and time-consuming to create and maintain; they required too many programmers, who were too busy with fixing bugs and adding incremental features to create new applications. Different operating systems were alien to each other, each of them running their own proprietary applications. IBM envisioned "life after maximum entropy" through "operating systems unification at last" and wanted to lay a new worldview for the future of computing.
IBM sought a new world view of a unified foundation for computing, based upon the efficient reuse of common work. It wanted to break the traditional monolithic software development cycle of producing alphas, then betas, then testing, and repeating over the entire operating system — instead, compartmentalizing the development and quality assurance of individual unit objects.$^{:19}$ This new theory of unifying existing legacy software and the new way of building all new software, was nicknamed the Grand Unified Theory of Systems or GUTS.$^{:20}$
Coincidentally, Apple already had a two-year-old secret prototype of its microkernel-based object-oriented operating system with application frameworks, named Pink.$^{:20}$ The theory of GUTS was expanded by Pink, yielding Workplace OS.

### Architecture

IBM described its new microkernel architecture as scalable, modular, portable, client/server distributed, and open and fully licensable both in binary and source code forms.$^{:376–377}$ This microkernel-based unified architecture was intended to allow all software to become scalable both upward into supercomputing space and downward into mobile and embedded space.$^{:18–19}$
Leveraged upon a single microkernel, IBM wanted to achieve its grand goal of unification by simplifying complex development models into reusable objects and frameworks, and all while retaining complete backward compatibility with legacy and heritage systems.$^{:3}$ Multiple-library support would allow developers to progressively migrate select source code objects to 64-bit mode, with side-by-side selectable 32-bit and 64-bit modes. IBM's book on Workplace OS says, "Maybe we can get to a 64-bit operating system in our lifetime."$^{:19}$ IBM intended shareable objects to eventually reduce the footprint of each personality, scaling them down to a handheld computing profile.
At the base of Workplace OS is a fork of the Mach 3.0 microkernel (release mk68) originally developed by Carnegie Mellon University and heavily modified by the Open Software Foundation's Research Institute. Officially named "IBM Microkernel",$^{:14–15}$$^{:119}$ it provides five core features: IPC, virtual memory support, processes and threads, host and processor sets, and I/O and interrupt support.
On top of the IBM Microkernel is a layer of shared services (originally called Personality Neutral Services or PNS$^{:3}$) to cater to some or all of the personalities above them. Shared services are endian-neutral,$^{:24}$ have no user interface, and can serve other shared services.$^{:379}$ Byte summarizes that shared services "can include not only low-level file system and device-driver services but also higher-level networking and even database services. [Workplace OS's lead architect Paul Giangarra] believes that locating such application-oriented services close to the microkernel will improve their efficiency by reducing the number of function calls and enabling the service to integrate its own device drivers." This layer contains the file systems, the scheduler, network services, and security services. IBM first attempted a device driver model completely based in userspace to maximize its dynamic configuration, but later found the need to blend it between userspace and kernelspace, while keeping as much as possible in userspace.$^{:176}$ The Adaptive Driver Architecture (ADD) was designed for the creation of layered device drivers, which are easily portable to other hardware and operating system platforms beyond Workplace OS,$^{:174}$ and which consist of about 5000-8000 lines of device-specific code each.$^{:378}$ Some shared services are common only to select personalities, such as MMPM serving multimedia only to Windows 3.1 and OS/2 personalities, and which is alien or redundant to other markets.
Atop the shared services, another layer of userspace servers called personalities provide DOS, Windows, OS/2 (Workplace OS/2), and UNIX (WPIX) environments. The further hope was to support OS/400, AIX, Taligent OS, and MacOS personalities. Personalities provide environment subsystems to applications. Any one personality can be made dominant for a given version of the OS, providing the desktop user with a single GUI environment to accommodate the secondary personalities. In 1993, IBM intended one release version to be based upon the OS/2 Workplace Shell and another to be based upon the UNIX Common Desktop Environment (CDE).
IBM explained the branding: "Workplace OS is the codename for a collection of operating system components including, among others, the IBM Microkernel and the OS/2 personality. Workplace OS/2 is the specific codename for the OS/2 personality. Workplace OS/2 will operate with the IBM Microkernel and can be considered OS/2 for the PowerPC." For the 1995 final preview release, IBM continued, "When we stopped using the name 'Workplace' and started calling the product 'OS/2 for the PowerPC', you might have thought that the 'Workplace' was dead. But the 'Workplace' is far from dead. It has simply been renamed for prime time."$^{:1,375}$ Workplace OS/2 was intended to define the future of OS/2, as a 32-bit clean platform and free of internal legacy, with perfect compatibility for source code of OS/2 applications and drivers. IBM originally wanted to prove new development models on Workplace OS/2 and backport them into OS/2 2.1 for x86 until the two platforms were unified—especially the IBM Microkernel, a new graphics subsystem, fully 32-bit system code with a flat memory model, Taligent, and OpenDoc.
IBM intended for Workplace OS to run on several processor architectures, including PowerPC, ARM, and x86$^{:22}$ which would range in size from handheld PDAs to workstations to large 64-bit servers and supercomputers. IBM saw the easy portability of the Workplace OS as creating a simple migration path to move its existing x86 (DOS and OS/2) customer base onto a new wave of standard reference PowerPC-based systems, such as the PC Power Series and the Power Macintosh. Creating a unique but open and industry-standard reference platform of open-source microkernel, IBM hedged its company-wide operating system strategy by aggressively attempting to recruit other computer companies to adopt its microkernel as a basis for their own operating systems.

## History
### Development
#### GUTS

In January 1991, there was an internal presentation to the IBM Management Committee of a new strategy for operating system products. This included a chart called the Grand Unification Theory of Operating Systems (GUTS) which outlined how a single microkernel underlying common subsystems could provide a single unifying architecture for the world's many existing and future operating systems. It was initially based in a procedural programming model, not object-oriented.$^{:2–3}$ The design elements of this plan had already been implemented on IBM's RS/6000 platform via the System Object Model (SOM), a model which had already been delivered as integral to the OS/2 operating system.
Sometime later in 1991, as a result of the Apple/IBM business partnership, a small exploratory IBM team first visited the Taligent team, who demonstrated a relatively mature prototype operating system and programming model$^{:3}$ based entirely on Apple's Pink project from 1987. There, GUTS's goals were greatly impacted and expanded by exposure to these similar goals—especially advanced in the areas of aggressive object-orientation, and of software frameworks upon a microkernel. IBM's optimistic team saw the Pink platform as being the current state of the art of operating system architecture. IBM wanted to adopt Pink's more object-oriented programming model and framework-based system design, and add compatibility with legacy procedural programming along with the major concept of multiple personalities of operating systems, to create the ultimate possible GUTS model.$^{:4}$
   GUTS defined [theoretical] operating system components similar to Taligent's [already existing] operating environment, only the components [in GUTS] were defined procedurally ... From the concept of shared services and Taligent's concept of object-oriented system frameworks, an object model evolved that represents the new, faster, and more reliable way of building operating systems. What's more, because procedural and object-oriented components can coexist in a microkernel-based operating system, the evolution to a completely object-oriented world could be staged.$^{:3–4}$
Through the historic Apple/IBM partnership, Apple's CEO John Sculley said that the already volume-shipping OS/2 and MacOS would become unified upon the common PowerPC hardware platform to "bring a renaissance to the industry".
In late 1991, a small team from Boca Raton and Austin began implementing the GUTS project, with the goal of proving the GUTS concept, by first converting the monolithic OS/2 2.1 system to the Mach microkernel, and yielding a demo. To gain shared access to key personnel currently working on the existing OS/2, they disguised the project as the Joint Design Task Force and brought "a significant number" of personnel from Boca, Austin (with LANs and performance), Raleigh (with SNA and other transport services), IBM Research (with operating systems and performance), and Rochester (with the 64-bit, object-oriented worldview from AS/400). Pleased with the robust, long-term mentality of the microkernel technology and with the progress of the project, the team produced a prototype in mid 1992.$^{:4}$ The initial internal-development prototypes ran on x86-based hardware and provided a BSD Unix derived personality and a DOS personality.

#### Demos and business reorganization

At Comdex in late 1992, the team flew in and assembled a private demonstration based on last-minute downloads to replace corrupted files and one hour of sleep. The presentation was so well received that the prototype was put on the trade show floor on Thursday, as the first public demonstration of the IBM Microkernel-based system running OS/2, DOS, 16-bit Windows, and UNIX applications.$^{:4–5}$ In 1992, IBM persuaded Taligent to migrate the Taligent OS from its internally developed microkernel named Opus, onto the IBM Microkernel.$^{:xiii}$ Ostensibly, this would have allowed Taligent's operating system (implemented as a Workplace OS personality) to execute side-by-side with DOS and OS/2 operating system personalities.$^{:14–15}$
In 1993, InfoWorld reported that Jim Cannavino "has gone around the company and developer support for a plan to merge all of the company's computing platforms—ES/9000, AS/400, RS/6000, and PS/2—around a single set of technologies, namely the PowerPC microprocessor, the Workplace OS operating system, and the Taligent object model, along with a series of open standards for cross-platform development, network interoperability, etc."$^{:5}$ On June 30, 1993, a presentation was given at the Boca Programming Center by Larry Loucks, IBM Fellow and VP of Software Architecture of the Personal Software Products (PSP) Division.$^{:17}$
   We have not closed discussion on [Mac OS support]. We're talking with Apple about including the Macintosh OS as one of the personalities in the microkernel.
By 1993, IBM reportedly planned two packages of Workplace OS, based on personality dominance: one based on the OS/2 Workplace Shell and another based upon the UNIX Common Desktop Environment (CDE). IBM and Apple were speaking about the possibility of a Mac OS personality.
By January 1994, the IBM Power Personal Systems Division had still not yet begun testing its PowerPC hardware with any of its three intended launch operating systems: definitely AIX and Windows NT, and hopefully also Workplace OS. Software demonstrations showed limited personality support, with the dominant one being the OS/2 Workplace Shell desktop, and the DOS and UNIX personalities achieving only fullscreen text mode support with crude hotkey switching between the environments. Byte reported that the multiple personality support promised in Workplace OS's conceptual ambitions was more straightforward, foundational, and robust than that of the already-shipping Windows NT. The magazine said "IBM is pursuing multiple personalities, while Microsoft appears to be discarding them" while conceding that "it's easier to create a robust plan than a working operating system with robust implementations of multiple personalities".
In 1994, the industry was reportedly shifting away from monolithic development and even application suites, toward object-oriented, component-based, crossplatform, application frameworks.
By 1995, Workplace OS was becoming notable for its many and repeated launch delays, with IBM described as being inconsistent and "wishy washy" with dates. This left IBM's own PowerPC hardware products without a mainstream operating system, forcing the company to at least consider the rival Windows NT. In April 1994, Byte reported that under lead architect Paul Giangarra, IBM had staffed more than "400 people working to bring [Workplace OS] up on Power Personal hardware".
In May 1994, the RISC Systems software division publicly announced IBM's first attempt to even study the feasibility of converting AIX into a Workplace OS personality, which the company had been publicly promising since the beginning. One IBM Research Fellow led a team of fewer than ten, to identify and address the problem. The team defined the AIX personality problem as being the fundamentally incompatible byte ordering between the big-endian AIX and the little-endian Workplace OS. This problem is endemic, because though the PowerPC CPU and Workplace OS can perform in either mode, endianness is a systemwide configuration set once at boot time only; and Workplace OS favors OS/2 which comes from the little-endian Intel x86 architecture. After seven months of silence on the issue, IBM announced in January 1995 that the intractable endianness problem had resulted in the total abandonment of the flagship plan for an AIX personality.$^{:19}$
In late 1994, as Workplace OS approached its first beta version, IBM referred to the beta product as "OS/2 for the PowerPC".$^{:1}$ As the project's first deliverable product, this first beta was released to select developers on the Power Series 440 in December 1994. A second beta was released in 1995. By 1995, IBM had shipped two different releases of an application sampler CD for the beta OS.

#### Preview launch

In mid 1995, IBM officially named its planned initial Workplace OS release "OS/2 Warp Connect (PowerPC Edition)"$^{:1,375}$ with the codename "Falcon". In October 1995, IBM announced the upcoming first release, though still a developer preview. The announcement predicted it to have version 1.0 of the IBM Microkernel with the OS/2 personality and a new UNIX personality, on PowerPC. Having been part of the earliest demonstrations, the UNIX personality was now intended to be offered to customers as a holdover due to the nonexistence of a long-awaited AIX personality, but the UNIX personality was also abandoned prior to release.
This developer release is the first ever publication of Workplace OS, and of the IBM Microkernel (at version 1.0), which IBM's internal developers had been running privately on Intel and PowerPC hardware. The gold master was produced on December 15, 1995 with availability on January 5, 1996, only to existing Power Series hardware customers who paid $215 for a special product request through their IBM representative, who then relayed the request to the Austin research laboratory. The software essentially appears to the user as the visually identical and source-compatible PowerPC equivalent of the mainstream OS/2 3.0 for Intel.$^{:2}$ Packaged as two CDs with no box, its accompanying overview paper booklet calls it the "final edition" but it is still a very incomplete product intended only for developers. Its installer only supports two computer models, the IBM PC Power Series 830 and 850 which have PowerPC 604 CPUs of 100-120 MHz, 16-196 MB of RAM, and IDE drives. Contrary to the product's "Connect" name, the installed operating system has no networking support. However, full networking functionality is described within the installed documentation files, and in the related book IBM's Official OS/2 Warp Connect PowerPC Edition: Operating in the New Frontier (1995) — all of which the product's paper booklet warns the user to disregard. The kernel dumps debugging data to the serial console. The system hosts no compiler, so developers are required to cross-compile applications on the source-compatible OS/2 for Intel system, using MetaWare’s High C compiler or VisualAge C++, and manually copy the files via relocatable medium to run them.
With an officially concessionary attitude, IBM had no official plans for a general release packaged for OEMs or retail, beyond this developer preview available only via special order from the development lab. Upon its launch, Joe Stunkard, spokesman for IBM's Personal Systems Products division, said "When and if the Power market increases, we'll increase the operating system's presence as required." On January 26, 1996, an Internet forum statement was made by John Soyring, IBM's Vice President of Personal Software Products: "We are not planning additional releases of the OS/2 Warp family on the PowerPC platform during 1996 — as we just released in late December 1995 the OS/2 Warp (PowerPC Edition) product. ... We have just not announced future releases on the PowerPC platform. In no way should our announcement imply that we are backing away from the PowerPC."

#### Roadmap

On November 22, 1995, IBM's developer newsletter said, "Another focus of the 1996 product strategy will be the IBM Microkernel and microkernel-based versions of OS/2 Warp. Nearly 20 corporations, universities, and research institutes worldwide have licensed the microkernel, laying the foundation for a completely open microkernel standard." IBM planned a second feature-parity release for x86 and PowerPC in 1996, and version 2.0 of the microkernel was "distributed to microkernel adopters" early that year.$^{:19}$ This version was described as final, with support for x86 and ARM processors.$^{:22}$ IBM reportedly tested OS/2 on the never-released x86-compatible PowerPC 615.
At this point, the several-year future roadmap of Workplace OS included IBM Microkernel 2.0 and was intended to subsume the fully converged future of the OS/2 platform starting after the future release of OS/2 version 4, including ports to Pentium, Pentium Pro, MIPS, ARM, and Alpha CPUs.

### Discontinuation

The Workplace OS project was finally canceled in March 1996 due to myriad factors: inadequate performance; low acceptance of the PowerPC Reference Platform; poor quality of the PowerPC 620 launch; extensive cost overruns; lack of AIX, Windows, or OS/400 personalities; and the overall low customer demand. The only mainstream desktop operating system running on PowerPC was Windows NT, which also lacked supply and demand. Industry analysts said that "the industry may have passed by the PowerPC". In 1996, IBM also closed the Power Personal Division responsible for personal PowerPC systems. IBM stopped developing new operating systems, and instead committed heavily to Linux, Java, and some Windows. In 2012, IBM described Linux as the "universal platform" in a way that happens to coincide with many of the essential design objectives of GUTS.

## Reception
### Industrial reception

Reception was enthusiastically but skeptically mixed, as the young IT industry was already constantly grappling with the second-system effect, and was now presented with Workplace OS and PowerPC hardware as the ultimate second system duo to unify all preceding and future systems. On November 15, 1993, InfoWorld's concerns resembled the Osborne effect: "Now IBM needs to talk about this transition without also telling its customers to stop buying all the products it is already selling. Tough problem. Very little of the new platform that IBM is developing will be ready for mission-critical deployment until 1995 or 1996. So the company has to dance hard for two and maybe three years to keep already disaffected customers on board."$^{:5}$
In 1994, an extensive analysis by Byte reported that the multiple personality concept in Workplace OS's beta design was more straightforward, foundational, and robust than that of the already-shipping Windows NT. It said "IBM is pursuing multiple personalities, while Microsoft appears to be discarding them" and conceded that "it's easier to create a robust plan than a working operating system with robust implementations of multiple personalities".
Upon the January 1996 developer final release, InfoWorld relayed the industry's dismay that the preceding two years of delays had made the platform "too little, too late", "stillborn", and effectively immediately discontinued. An analyst was quoted, "The customer base would not accept OS/2 and the PowerPC at the same time" because by the time IBM would eventually ship a final retail package of OS/2 on PowerPC machines, "the power/price ratio of the PowerPC processor just wasn't good enough to make customers accept all of the other drawbacks" of migrating to a new operating system alone.
In 2013, Ars Technica retrospectively characterized the years of hype surrounding Workplace OS as supposedly being "the ultimate operating system, the OS to end all OSes ... It would run on every processor architecture under the sun, but it would mostly showcase the power of POWER. It would be all-singing and all-dancing."

### Internal analysis

In January 1995, four years after the conception and one year before the cancellation of Workplace OS, IBM announced the results of a very late stage analysis of the project's initial assumptions. This concluded that it is impossible to unify the inherent disparity in endianness between different proposed personalities of legacy systems, resulting in the total abandonment of the flagship plan for an AIX personality.$^{:19}$
In May 1997, one year after its cancellation, one of its architects reflected back on the intractable problems of the project's software design and the limits of available hardware.
   There is no good way to factor multiple existing systems into a set of functional servers without making them excessively large and complex. In addition, the message-passing nature of the microkernel turns out to be a poor match for the characteristics of modern processors, causing performance problems. Finally, the use of fine-grained objects complicated the design and further reduced the performance of the system. Based on this experience, I believe that more modest, more targeted operating systems consume fewer resources, offer better performance and can provide the desired semantics with fewer compromises.

### Academic analysis

In September 1997, a case study of the history of the development of Workplace OS was published by the University of California with key details having been verified by IBM personnel. These researchers concluded that IBM had relied throughout the project's history upon multiple false assumptions and overly grandiose ambitions, and had failed to apprehend the inherent difficulty of implementing a kernel with multiple personalities. IBM considered the system mainly as its constituent components and not as a whole, in terms of system performance, system design, and corporate personnel organization.$^{:22}$ IBM had not properly researched and proven the concept of generalizing all these operating system personalities before starting the project, or at any responsible timeframe during it — especially its own flagship AIX.$^{:21}$ IBM assumed that all the resultant performance issues would be mitigated by eventual deployment upon PowerPC hardware.$^{:22}$ The Workplace OS product suffered the second-system effect, including feature creep, with thousands of global contributing engineers across many disparate business units nationwide.$^{:21}$ The Workplace OS project had spent four years and $2 billion (or 0.6% of IBM's revenue for that period), which the report described as "one of the most significant operating systems software investments of all time" and "one of the largest operating system failures in modern times".$^{:22}$