The PowerPC adventure—by far the most exotic release of OS/2
In December 1995, after unexpectedly long development (but is that really unexpected?), IBM finally “shipped” OS/2 Warp, PowerPC edition. For brevity, this release will be further referred to as OS/2 PPC. Following years of hype and high expectation, the release was very low key and in fact marked the end of development of OS/2 for PowerPC. The product was only available to a limited number of IBM customers and was never actively marketed. OS/2 PPC may not even had a box, although there were nice looking official CDs.
OS/2 PPC only supported an extremely limited range of hardware—IBM Personal Power Series machines. Those were desktop models 830 and 850, and OS/2 PPC probably also supported the Power Series ThinkPads 820 and 850, though that can be only inferred from the fact that the graphics chipset employed by these ThinkPads was on the very short list of supported devices in OS/2 PPC.
The IBM Power Series computers were IBM’s rather short lived foray into the PowerPC-based desktop personal computer market, circa 1995-1996. The PowerPC CPU aside, the systems were very similar to Intel based hardware of that era. They were designed around the PCI bus, but also included ISA expansion slots and on-board Crystal Audio ISA PnP chips. The desktop Power Series machines were IDE based, ThinkPads used SCSI disks. The computers had standard serial and parallel ports, as well as most of typical PC hardware such as interrupt and DMA controllers. The desktops had onboard S3 864 video, ThinkPads used Western Digital flat panel chipsets. Several optional graphics cards were supported, notably Weitek P9100 based accelerators. The desktops also had onboard Ethernet chips (AMD PCnet).
The Power Series systems were closely related to certain IBM RS/6000 workstations. The RS/6000 Model 43P-7248 was nearly identical to the Power Series 850. They used the same motherboard, only the RS/6000 had on-board SCSI controller. Unlike the RS/6000 systems intended for the workstation market and running almost exclusively IBM’s AIX operating system, the Power Series systems were designed for “regular” personal computer users. The machines were supposed to run OS/2, Windows NT, AIX, or Solaris. OS/2 PPC was only semi-finished, and the Solaris for PowerPC port (version 2.5.1) was similarly short-lived. Microsoft dropped PowerPC support in 1996, not long after the Windows NT 4.0 release. Most of the Power Series systems ended up running AIX, which supported them until version 5.1. Linux also supported the Power Series to some extent. Windows NT was clearly the closest competitor of OS/2 PPC.
For this article, OS/2 PPC was installed on a Power Series 830, installed by its previous owner in a RS/6000 43P case. The CPU was a 100MHz PowerPC 604 with 256KB L2 cache, and the machine was equipped with 192MB RAM, which was the maximum it could handle. The graphics was an on-board PCI S3 Vision 864 with 2MB video memory and true color S3 SDAC. The machine was equipped with 2.1GB IDE hard drive—AIX can handle up to 8GB and Linux can utilize even larger disks, but OS/2 and NT were not happy with anything over about 2.5GB. The 830 was originally sold with either 500MB or 1GB disks and 16MB RAM. The Power Series 850 systems were equipped with 100 or 120MHz CPUs, slightly more RAM and larger disks.
OS/2 Warp, PowerPC edition was delivered on two CDs. The first CD contained the operating system and BonusPak, the second CD was an application sampler with several demo applications.
Installation was surprisingly easy and painless. The CD was bootable and there were almost no choices to make during installation—only the disk partitioning was user selectable. The PowerPC operating systems (OS/2, NT, AIX and Linux) generally did not coexist as there was no real equivalent of a boot manager and each OS wanted to install its own boot loader. The OS/2 installer re-partitioned the disk and overwrote any other operating systems. The boot partition had to be FAT. It was possible to create HPFS data partitions, but the HPFS support appeared to be somewhat unstable and likely a last-minute addition.
After the OS was copied from the installation CD-ROM and the system booted from fixed disk for the first time, the user was greeted by the following screen:
Indeed, OS/2 PPC really looked just like OS/2 Warp, at least at first glance. The system booted up in 640×480 mode with 256 colors, using the accelerated S3 driver. The desktop right after installation looked like this:
Still very much like OS/2 Warp, except for that little Systems Management folder. This feature was not present in the Intel OS/2 Warp release, although it was added later. After installing the BonusPak and a few other additions and changing the resolution, the desktop still looked like plain OS/2 Warp, with the exception of the background bitmap of course (click on the picture to see full size screenshot):
The system was now running in 1024×768 resolution, but still with 256 colors. The graphics chip supports 64K colors at this resolution, unfortunately the software used to take screenshots (a demo version of Impos/2) was unable to take any screenshots at this resolution. 256 colors it is then, and time to more closely examine the operating system. The README file is a good starting point, and it was quite long in OS/2 PPC. It consisted largely of a list of unimplemented or incomplete features.
For example, notice the word “Connect” in the screenshot. OS/2 Warp, PowerPC Edition, doesn’t have any connectivity to speak of. Networking support, in a nutshell, didn’t exist. No LAN Server client, no TCP/IP, nothing. There was just HyperAccess Lite and CompuServe Information Manager, which worked (in theory at least) over a modem. The product name itself seems to have been a last minute change. Programs and documentation in many instances refer to OS/2 Warp Connect, PowerPC Edition, but the final product was called just OS/2 Warp and not “Connect”. One of the README files explains the name change and alludes to networking support in “future versions”.
For development versions of OS/2 PPC there was TFTP support which talked directly to the microkernel Ethernet or Token Ring driver and entirely bypassed OS/2. This transport layer also supported remote debugging. This is in sharp contrast to Windows NT which fully supported networking (TCP/IP and SMB file sharing) on the same hardware. Networking was obviously planned for OS/2, but the project was killed before this part was done.
Not everything was so blatantly unfinished though. The DOS support in OS/2 PPC was a pleasant surprise:
On a closer look, it’s clear that OS/2 PPC included a full-fledged PC emulator, which supplied a virtual x86 CPU as well as common PC hardware. Interestingly, the DOS support in OS/2 PPC was based on PC-DOS 7 and not the outdated DOS 5 level code that OS/2 on Intel was stuck with. The OS/2 PPC DOS boxes thus had for instance the DOS E editor (very similar to TEDIT) or REXX support. Why IBM never updated the DOS support on the Intel side is a mystery. OS/2 PPC supported both windowed and full screen DOS sessions. The full screen sessions always ran in graphics mode, even when the emulated DOS application was using text mode.
Not satisfied with “just” DOS emulation, IBM also supported Win-OS/2, both full-screen and windowed:
It is difficult to judge how stable the DOS and Win-OS/2 emulation really was, but whatever little utilities came with the OS/2 system seemed to work well, including wave audio in Win-OS/2, and the performance was surprisingly good. IBM must have spent a lot of effort on the x86 emulation support. Documentation hinted at a possibility of future support for native OS/2 x86 applications via emulation.
IBM also obviously spent a lot of time on the multimedia support in OS/2 PPC. The multimedia support worked unexpectedly well, especially when contrasted with the problems common on Intel machines.
The system played video and audio without problems, with MIDI support either via a software synthesizer or an OPL3 compatible chip (the software synthesizer sounded far better). The application sampler CD came with several videos, mostly ads for OS/2. The PowerPC Toolkit also came with a beta version of OpenGL support, which shared code with IBM’s AIX workstation grade implementation.
OS/2 PPC was a hybrid halfway between Warp 3 and Warp 4. The user interface looked like Warp 3, but many of the features of OS/2 PPC later showed in Warp 4 on Intel. One of them was the not very popular Feature Installer:
The Feature Installer was used to install the BonusPak, several tools and games, and curiously enough, also the Command Reference which for some odd reason wasn’t part of the base install. Here’s one of those games:
Again, there is no real difference from the Intel version, except for the about box text (notice the “Connect” text). And finally the IBM Works text editor—again there is no discernible difference from the Intel version:
OS/2 for PowerPCs System Overview
OS/2 PPC was a strange OS. In many ways it was exactly identical to the Intel version, yet in other ways it was completely different. The user interface was the same and the entire API practically unchanged. Among the differences were the addition of full Unicode support and 32-bit console API (Kbd/Mou/Vio). The largely unchanged API was the reason why it was relatively easy to port existing OS/2 software to PowerPC. The biggest difference was not even the CPU but rather the compiler—IBM used the MetaWare High C/C++ for PowerPC development (it was allegedly cheaper for the IBM OS/2 division to contract MetaWare rather than IBM’s own compiler group). The MetaWare tool set was only used as a cross compiler hosted on x86 OS/2 systems. IBM used MetaWare’s compiler for embedded PowerPC development in general (IBM’s involvement with MetaWare goes at least as far back as AIX for PS/2), and MetaWare also marketed an OS/2 x86 product. Watcom was at the time working on PowerPC version of their compiler, but OS/2 PPC was killed before that project was finished. The last IBM Developer’s Connection release which contained OS/2 PPC material also included a beta version of IBM’s VisualAge C++ compiler. No release of a compiler (or a debugger) running natively on OS/2 PPC is known.
The OS/2 PPC development tools were quite different from their Intel counterparts. To begin with, instead of the LX executable format, OS/2 PPC used the industry standard ELF. Several tools were completely unchanged (IPFC for instance), many were entirely new (linker, librarian, resource compiler). The ABI (Application Binary Interface) used in OS/2 PPC was based on the UNIX SVR4 PowerPC ABI. One notable difference was that OS/2 of course ran in little endian mode, unlike PowerPC UNIX ports but just like Windows NT.
Delving deeper into the kernel, OS/2 PPC had precious little in common with the Intel version. The product was based on the IBM microkernel, which was a refinement of the Carnegie Mellon University Mach microkernel. The microkernel bore no resemblance to the Intel OS/2 kernel whatsoever and it was also very different from most other operating systems of the time (NeXTSTEP was also based on the Mach microkernel).
The initial grandiose plan was to build the Workplace OS, the One Ring to Bind Them All of operating systems. Workplace OS (or WPOS for short) was supposed to be built on top of the Mach microkernel and support multiple “personalities”. The personalities would implement existing operating systems such as OS/2, AIX, Windows NT and perhaps even Mac OS. In the end this never happened and the only supported personality was OS/2. This was somewhat similar to Windows NT where the the non-Windows personalities (environment subsystems) eventually withered away.
The initial plan was still tangible in OS/2 PPC. The OS/2 personality was implemented in the “OS/2 Server” and there were certain “personality neutral” services. Most device drivers were personality neutral and worked directly with the microkernel. This included disk and network drivers. A notable exception were the display drivers, where OS/2 PPC introduced the GRADD model (later ported to Intel OS/2). Documentation on OS/2 PPC internals is somewhat sparse and the online books shipped with PowerPC Toolkit were in many cases either incomplete or simply unmodified copies of OS/2 for Intel documentation. A good source of information is the Redbook titled “OS/2 Warp (Power PC Edition) – A First Look” published by IBM International Technical Support Organization in December 1995, document number SG24-4630-00 for those interested.
OS/2 for PowerPC Impressions
What was OS/2 Warp, PowerPC Edition like? An unfinished product, rough around the edges but simultaneously technically very interesting and advanced and showing promise. Even though the OS/2 PPC release wasn’t called a beta, it was obvious that this was a beta level product (if even that in some respects). Many features were unfinished or completely missing, notably networking. The kernel code didn’t look much like a production build and printed out quite a lot of debugging output on a serial console, if one was attached. The HPFS support was very unstable, and the stability of Win-OS/2 left a lot to be desired. There were too many clearly unfinished parts of the product—documentation, missing utilities, etc.
On the other hand a large portion of the system worked well. The user interface and graphics subsystem in general didn’t exhibit any anomalies. Multitasking was reliable and all things considered, responsiveness quite good for a 100MHz CPU and code that was not likely to have been performance tuned. The multimedia subsystem worked much better than expected. Many things were much improved compared to Intel OS/2—internationalization, graphics subsystem, updated console API, and so on. The system seemed to have enough raw power, even if it wasn’t harnessed too well. Boot time was rather long but once up and running, the system was snappy (with some exceptions, notably the CD-ROM driver). To reach true production quality, the OS would have needed at least additional six months of development, perhaps more.
How useful was OS/2 PPC? Not very. In fact, it was almost completely useless. It only ran on three or four models of rather rare IBM machines and supported almost no additional devices. The OS was clearly unfinished and not entirely stable. Worst of all, there were about zero applications. Because OS/2 PPC was never truly in use, PowerPC versions of OS/2 applications were never sold, although several OS/2 ISVs ported their applications to OS/2 PPC as evidenced by the application sampler. Porting wasn’t very difficult and tools for building PowerPC applications were available, but since there was no demand for them, there was little point in porting.
OS/2 for PowerPC was undoubtedly an interesting experiment, albeit a failed one. It is impossible to tell whether this failure was caused more by shortcomings of OS/2 for PowerPC or the failure—perhaps just falling far short of expectations—of the PowerPC platform as a whole.
Without the generosity of Mike Kaply and Chris Graham, this article could not be written.
Some of the above information was derived from IBM documentation and Redbooks, which may have been inaccurate due to the evolving nature of the OS/2 PPC project. Most of the remaining text is the result of observation and conjecture.
If you have any additional information, corrections, or interesting stories about OS/2 for PowerPC, please post a comment.