LIFE AFTER MAXIMUM ENTROPY or Operating Systems Unification at Last

by Scott L. Winters and Jeri Dube

Days Gone By...
The ordered world of PC hardware and software in the 1980s has been fractured in the 1990s. Simplistically viewed, in the 1980s all an entrepreneur had to do was write a good application on DOS and market it well. If he did that, then everyone would buy the application and use it on their IBM PC or PC clone.

Since that kinder, gentler, and simpler time, a lot has changed. Today, there are numerous software platforms with different API sets that are still evolving. These different API sets are all competing for viability. Until the ultimate winner or winners are declared, the software developer is left to either take his chances with his choice of the long term winner or hedge his bets by supporting multiple software platforms.

The cost of supporting the various API sets are high. The development costs include the time, energy, and money it takes to migrate from one API set to another plus add the features to take advantage of the additional functionality. The cost also include s the effect of not using resources to improve the application itself to further meet the requirements of the application users. The risk of supporting only one platform is that the investment will be lost due to insufficient sales of the selected platform.

The anarchy and confusion in today's PC world is not all created by the software. The entire hardware paradigm is changing. Until recently, the CISC and RISC worlds were separate and distinct. With the invention of the PowerPC chip set and hardware reference platform, RISC is moving into the realm of desktop computing. Similarly, the capabilities and robustness of Intel's Pentium chip moves CISC even further into the server and workstation realm. In addition, the distinguishing software requirements between different hardware systems are blurring as systems from PDAs to super computers are required to be on one continuum.

Further complicating the world, is the pending movement from today's 32-bit machines to tomorrow's 64-bit machines. Additionally, computers are leaving homes and offices and moving onto the road and into the air. People want and now expect their applications to be able to work anywhere. What we have in the current world of computing is a state of maximum entropy. The industry is evolving, churning and fracturing. The complexity of choices needs to be simplified, even more than they have been already by the introduction of a multi-personality, integrated platform like OS/2, because the complexity is too draining of resources.

A New Order
The Workplace OS family (WPOS) is IBM Personal Software's vehicle to bring order back to the world of computing. In this article, we will show the features of the system and how those features allow application developers to minimize their resource expenditures on retrofitting code while maximizing the number of platforms on which an application can run.

A Modular Operating System
The Workplace OS family provides a modular approach to allow different operating system personalities to share physical hardware resources and system software components that are architecturally positioned as support elements. Looking at the system from the bottom up, we start with the hardware platforms.

WPOS runs on the CISC environment of the Intel x86 and Pentium family of chips and the RISC-based IBM/Motorola PowerPC Architecture. Our approach is to introduce a UNIX personality of WPOS (WPIX) on the Intel platform and a Workplace OS/2 (WP-OS/2) personality on the PowerPC platform with a DOS/WIN personality on both platforms. As time passes, all three personalities will run on both platforms, and the WPOS family will extend onto other RISC-based platforms with more personality choices as well.

Putting it Together
The WPOS interface to the hardware platform is the IBM Microkernel, which is an extended and industrialized version of the Mach microkernel originally written at Carnegie Mellon University. Some of the IBM-written extensions include out-of-kernel device drivers, security, and additional performance enhancements. The microkernel is what allows WPOS to be portable between hardware platforms.

Also contained in the interface is a set of system services called Personality Neutral Services (PNS) that are required by all traditional operating systems. These services are considered personality neutral because they are:
 * Written in an endian-neutral, processor-neutral fashion
 * Common to all operating systems in an implementation-neutral way.
 * Able to share APIs with all other neutral services within the system.

These services are provided by five separate servers. The Name Server ensures the uniqueness of each system entity's name so that there is no confusion between elements in the system. The Master Server is responsible for the initial system loading and address resolution. The Default Pager handles memory allocation and anonymous paging. The Hardware Resource Manager (HRM) does the peripheral device management as well as handling basic Boot support. The Security Server manages access rights and handles security tokens.

WPOS physical device drivers will also be personality neutral, so once a device driver is designed and written in a neutral way, it can be reused by many operating systems personalities.

The combination of the hardware interface, physical device drivers, and the above services comprise the IBM Microkernel. The microkernel is not an operating system by itself, but rather a set of components on which operating systems can be constructed. The microkernel is the foundation of Workplace OS and also will be available as a product for operating system developers to use as building blocks. Using the microkernel as the foundation of WPOS gives it the flexibility to be used on hardware systems ranging from PDAs to supercomputers.

Common Personality Services (CPS) are an optional set of elements within Workplace OS. A CPS is shared among different operating system servers, as described previously, except that a CPS has fewer rules to follow within the system structure and architecture. The value of a CPS is in its ability to be shared partially or fully within the system architecture. A CPS: A prime example of a CPS is the OS/2-styled multimedia subsystem and server. In this CPS, you find the current OS/2 2.1 and Windows 3.1 multimedia architectures, exporting the Media Control Interface and the Multimedia I/O (MMIO) API. Although these interfaces are important to traditional Intel-based PC's, they mean less in other worlds like Unix or System 7. Since this MM layer is common to only a subset of WPOS personalities, and it is not in the Microkernel, it is a CPS rather than a true PNS.
 * May be common to a subset of operating system personalities in its function or architecture.
 * May export its APIs to other PNS/CPS libraries and servers but may not need to be common to all.
 * Is an optional element of the Workplace OS, not an element of the microkernel product.

The File Server (FS) is also a product and a CPS. The File Server supports the management of a client/server file system model. The FS client code is dynamically linked in the same address space of a WPOS application and supports traditional API sets. The Server side of the product embodies the Logical File System (LFS). The Server hosts the Service Provider Interface (SPI) to the Physical File Systems and also talks to the microkernel and the Name Server. Physical File Systems planned to be included in WPOS are FAT, CD-ROM, JFS, HPFS and others. Some subset of these will be in the initial release of the file server. JFS is planned for the first release because it is functionally robust and extensible. The design is stable and a proven architecture currently used in the open standards world.

In addition to the two CPSs listed, there will be more CPSs offered by IBM and others. These Common Personality Servers will provide functions such as database, communications, and LAN servers.

In WPOS, operating system environments are known as personalities. These personalities provide the user interface and the complete operating system function not included in the microkernel for that personality. The end user of WPOS will choose which version of the Workplace OS family to use for their applications, compatibility requirements, and so on.

Workplace OS/2 is functionally compatible with OS/2 2.1. What this means is that every 32-bit API that exists in Version 2.1 will exist in this operating system. The OS/2 text-based, 16-bit APIs will be functionally replaced with 32-bit equivalent APIs. In addition, our goal is to maintain source compatibility between OS/2 32-bit applications on WP-OS/2 for Intel and WP-OS/2 for PowerPC, with binary compatibility between OS/2 32-bit applications on WP-OS/2 for Intel and OS/2 2.1 on Intel.

Extensions beyond OS/2 2.1 functionality, besides the obvious advantage of more hardware platforms include the following list:
 * System management
 * Human-centric exploitation
 * Scalability
 * Security
 * User-friendly installation
 * Improved developer productivity

The Beginning of the End of Maximum Entropy
Workplace OS is a microkernel-based operating system that embodies the Workplace family of architected technologies and open industry standards. Many products will be based on Workplace technologies and standards, because they give customers and developers flexibility to adopt new technologies while protecting their current investment.

The Workplace Shell is one of these technologies. By virtue of the Workplace Shell, WPOS will not be foreign to users of other IBM Personal Software products. The Workplace Shell is a common GUI on top of the traditional operating system environment. The immediate value of such an environment is obvious: enhanced user productivity within a heterogeneous PC office environment. Employees fluent on the Workplace Shell would be able to use any office equipment available, independent of the Workplace family member. The value to developers is the standardization of a GUI API set. Since the Workplace Shell on OS/2 2.1 is available and robust today, there is an existing path from which to grow to in the future. The beginning of the end of maximum entropy is here today.

The addition of Workplace OS diminishes the entropy by isolating applications from hardware, so developers can create source code without regard to hardware differences. Furthermore, with an architecture that enables concurrent execution of applications written for several OS platforms, by providing multiple OS services on a microkernel, a developer will find it less critical to develop applications for multiple software platforms. Common Personality Services provide the mechanisms that subsystem developers use to create products for multiple microkernel-based operating environments.

The computing environment will never return to the simplicity of the early days for personal computers. IBM's goal is to provide technical innovations and advanced architectures that can simplify the choices and minimize the expense of developing applications while satisfying customers' requirements. WPOS meets these goals by being both portable and scalable, as well as an extension and complement to IBM's current operating systems portfolio.

About the Authors
Jeri Dube is an Advisory Planner for the Workplace OS products. Previously, Jeri was a Planning Group Manager for Engineering Systems Test for Enterprise Systems. During her eclectic career at IBM, Jeri has held a variety of roles.

Scott L. Winters is an IBM Senior Technical Staff Member. His current assignment is Chief Architect of Workplace OS/2. Previously, Scott was the Lead Architect in the OS/2 Multimedia Systems Software group, where the MMPM/2 product was created.

Look to future issues of The Developer Connection News for in-depth articles on:
 * Common Personality and Personality Neutral Servers.
 * Extensions beyond OS/2 2.1
 * The Workplace Shell