Workplace OS/2: Just Good Old OS/2… For the PowerPC!

by Scott Winters and Jeri Dube

To paraphrase Mark Twain, "Reports of OS/2's death are greatly exaggerated." Many people think that Workplace OS1 rings the death knell for OS/2. In fact, nothing could be further from the truth. Workplace OS/2 (WP-OS/2) Release 1 is just OS/2 delivered on the PowerPC. The momentum from OS/2's acceptance in the market and by industry watchers is the fuel for the requirement to move OS/2 to the PowerPC; therefore, creating WP-OS/2.

Much confusion surrounds Workplace OS and OS/2 because Workplace OS is based on a microkernel architecture that will support other operating environments, such as UNIX and Taligent. Furthermore, the new architecture introduces some new vocabulary. But the amount of information that most developers need to know about the new architecture is minimal (and was explained in our last article in The Developer Connection News entitled Life after Maximum Entropy or Operating Systems Unification at Last.)

In this article, we will explain that the implementation of WP-OS/2 Release 1 is largely a port, or reuse, of subsystems from the existing OS/2 code base. What this means to you is that writing applications for WP-OS/2 is the same as writing applications for OS/2 Version 2.1.

Since the release of OS/2 2.0, IBM has been driving towards delivering a complete 32-bit API set, anticipating the future needs of developers building both client and server applications. In fact, the OS/2 operating system already provides the capabilities that other vendors are implementing for the first time. The API set for WP-OS/2 is a superset of the same 32-bit APIs contained in OS/2 Version 2.1. Therefore, developers should continue to write 32-bit OS/2 applications, and these applications will run on both OS/2 and WP-OS/2.

Since OS/2 has had years to mature and become stable, as the remainder of this article will illustrate, the first release of WP-OS/2 will not be a typical "first release" product. Figure 1 graphically represents the composition of the WP-OS/2 code base.

Six categories of code exist: The percentage associated with each segment represents the percent of WP-OS/2 subsystems within that code category. The code for the microkernel, which is delivered as a separate product on which WP-OS/2 runs, is not included in this analysis.
 * Recompile: Unchanged OS/2 source code directly ported to the PowerPC hardware using our new compiler environments.
 * Binary: OS/2 subsystems that run within WP-OS/2 without even being recompiled.
 * N&C Common (New & Changed Common): Code shared by future OS/2 versions and WP-OS/2 that is new function development or code derived from the OS/2 base that is extended and changed for both systems.
 * N&C Unique (New & Changed Unique): Code that has its origin in the OS/2 source tree, but has been extended and changed only for use in WP-OS/2.
 * Licensed: Code that is new to the system and is either written for IBM or licensed by IBM.
 * 16->32 Conversion: Current OS/2 16-bit code that is being replaced by 32-bit code.

During the OS/2 Version 2.0 and 2.1 development efforts, major OS/2 subsystems such as the Presentation Manager, Multimedia Presentation Manager/2, and the Workplace Shell were updated for 32-bit execution. This updated code base is a natural for reuse within Workplace OS because it recompiles unchanged and affords immediate compatibility and familiarity to our users. These subsystems are documented in Figure 1 as recompile.

In WP-OS/2, DOS and Windows compatibility, which includes the multiple virtual machine (MVM) and WIN-OS/2 subsystems, plus others, is accomplished by the direct reuse of not just the existing source tree, but by the reuse of the actual Intel binary code. This code will be emulated on WP-OS/2 for PowerPC through an emulation subsystem of the Intel instruction set. Many types of instruction emulators exist in today's marketplace by many different vendors. As seen in the past, this competition will probably lead to vast performance improvements, allowing the legacy applications to perform in a manner not very different from the native applications.

As the WP-OS/2 design unfolds, OS/2's design extensions benefit. Similarly, WP-OS/2 benefits from improvements made to the OS/2 code base. One example of this cooperation is the work done to extend the function of the session manager. In WP-OS/2, as well as in future releases of OS/2, the low-level plumbing of session manager will have a new structure that supports asynchronous command threads and event distribution.

Examples of new and changed unique code in WP-OS/2 are the Registry, where the .ini are to be kept, as well as any code that handles multiple or common-personality functions. Additionally, other new code will be added to the system from outside vendors in response to customer demand for industry-standard functions. This code is documented in Figure 1 as licensed.

The last category of code is OS/2 16-bit code is being updated to 32-bit code to run on the RISC hardware of the PowerPC. Included in this category are some functions that are very visible to the user such as Text Mode I/O, Keyboard, Mouse and some others.

Summary
As you can see, Workplace OS/2 to the user is just a revision of OS/2. When developers write applications for WP-OS/2, the place to start is a pure 32-bit OS/2 2.1 application. For IBM's development team, Workplace OS embodies the creation of new technologies that provides portability of established OS/2 user-level function on RISC platforms.

We have now shown you that the system contains a large percentage of stable OS/2-based code. This means that Workplace OS/2 will not be the typical first release of an operating system. Workplace OS/2 is built on the solid foundation of OS/2. The IBM developers are experienced with 32-bit code, and more importantly, the suite of 32-bit test applications is mature. Just think of Workplace OS/2 as OS/2 for the PowerPC.

Footnotes:

 * 1) WORKPLACE OS is the codename for a collection of operating system components including, among others, the IBM Microkernel and the OS/2 personality.
 * 2) 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.