Implementation I - Extended Discussion

Extended Discussion

Freeman Rawson discussed the failure of Workplace OS, by his account a huge project at IBM. Its ambitious goal was to replace all IBM OS'es in the 1990s (OS/400, OS/2, AIX). It would be scalable from the palmtop to the minicomputer and portable across platform and process. It would be based on a microkernel, make extensie use of OO, and be marketable in seperate parts (e.g. microkernel seperate than OS). Freeman emphasized that this was a development project and not research and that they actually created a shipping version before the plug was pulled on the project. The numbers that came out from the performance guys were not encouraging and the measurement were done on commodity software.

The Workplace OS was based on the Mach 3.0 microkernel using Julin's multi-server design. They ran multiple personality servers on top of it so that they could provide compatability with multiple OSes. To support this, they needed to factor semantics and function from the different OSes into each server. For example, the file system server had to support both AIX, OS/2 and OS/400 semantics. One of the key observations made was that it's hard to factor operating system semantics and that it's not reasonable to support all semantics of an OS in a small space. Another observation is that compatability is in the details, and the details take a lot of time and effort.

Rawson went on to argue that hardware architecture conflicts with microkernels because of the cost of the address space switches and despite all of the optimizations they attempted, this was still a major overhead when running commodity applications on top of Workplace OSes.

Rawson ended up giving some advice to the research community. He suggested the community spends too much time worrying about Distributed Shared Memory (DSM) and large-scale parallel systems. He suggested that device drivers, being a painful problem for the OS implementor, were worthy of much more research work.

His parting wisdom on the Workplace OS project was that development "should never mistake reserach projects for products." As for the use of Mach in Workplace OS, he pointed out that code reuse is great but design re-use is better. Neither is everything in end.


Discussion


Brett Fleish also gave a talk about Workplace OS. He sprinkled his talk with general insights about engineering and failure with many examples taken from the pages of Henry Petroski. His main argument, though, was that personalities had somehow failed to generalize in Workplace OS. However, according to analyses, these personalities turned out to be impossible to structure in a way that maintained performance, because of the need to accomodate semantics from all the operating systems. He ended his talk poiting out that failure is a great mechanism for learning and that Workplace OS was arguable a joint academic/industry failure. He admonished the industry for not studying failure more.


Discussion