Research Stream: Examining Presentation Manager
Presentation Manager | |
---|---|
VoD Link | RESEARCH STREAM: Examining The Early OS/2 GUI - Presentation Manager |
Streamed On | January 29th, 2023 |
Streamed by | NCommander |
Stream type | Emulated on 86Box |
Description
The goal in this stream is to understand the impact of Presentation Manager on OS/2. Up until Windows 3.1, it was still pretty common to load Exit back into DOS, but there's no way to exit Presentation Manager; it was the intended way to use the system. So what did you get out of the box, how it did evolve, and more?
Rationale
This section describes why certain choices were made for a given stream and more.
Use of Extended Edition
Extended Edition was IBM's special version of OS/2 and was not directly sold to customers. Instead, Extended Edition was available to existing IBM corporate customers, and included additional line of business applications that weren't included out of the box. During the 16-bit era, these applications were
- Database Manager and Query Manager
- Communication Manager
- LAN Server and LAN Requester
While this project mostly deals with OS/2 as a whole, very little software has survived into 2023 for the early 16-bit versions of OS/2. As such, using Extended Edition at least provides additional applications and functionality, so we may get a better idea of how OS/2 was marketed and used, something we'll explore more with Hello World applications and system development.
Sidekick
Borland Sidekick was a very popular TSR for handling data, and it was also one of the first available Presentation Manager applications.[1] The direct comparison allows to show how the GUI did or didn't improve things ...
Console Multitasker
This would have probably been the main use for early Presentation Manager, since there were very few native graphical applications at the time period, although I won't be surprised if some developers used TSHELL or the like to make do with less capable hardware.
Questions Asked and Answered
These were questions I wrote down and asked before doing the stream to try and answer them, and my collected feelings over them.
How is Presentation Manager at handling running multiple console sessions at once?
This question was asked originally during the drafting stages. Throughout OS/2's lifespan, there was very little in terms of native applications, nor were many applets included out of the box.'
In a standard non-OEM install, the default installed applications were the E Text Editor in OS/2 1.2 and later as a graphical application, and some settings applications. That mean, by and large, the biggest "value" of Presentation Manager was to be able to do multiple overlapping windows. This in and of itself already has some value. For example, X Windows, both then and now, is commonly used to simply manage multiple terminal emulators. The default configuration for many X environments when running xinit/startx is to load up 2-3 xterms, which in and of itself is a major upgrade over simply working on the console on UNIX/Linux.
On a high resolution display, Presentation Manager would not be dissimilar from Windows 2.x's DOS Executive, Windows 3.x Program Manager, or even graphical UNIX systems of this era. However, OS/2 had exceptionally poor support for OEM's and vendors. While it would technically be possible to run OS/2 1.x on a period correct high resolution video card such
However, by and large, you would have been exceptionally lucky to run OS/2 beyond 640x350 display resolution with the then new VGA standard. EGA, with a max resolution of 640x350 and, based off the written accounts I've found, it appears using OS/2 with at least CGA and EGA adapters was at least semi-common practice. OS/2 1.0 also supported MDA adapters, which were still semi-common in this time period.
One problem that was encountered is that certain OS/2 applications, including E.EXE, require the use of full screen mode, and can not run in a console window. It's not certain as to why it is, although this limitation can be patched out as described on the OS/2 Museum[2], and likely deals with the specifics of the Vdu API.
Is Presentation Manager an upgrade over the TSHELL interface?
At least with OS/2 1.1 and 1.2, Presentation Manager is a questionable at best upgrade. By and large, its slow and bloated, especially compared to Windows of the era, and other graphical interfaces. This, in and of itself, might not have been a big issue, but due to the problems with console applications mandating the use of full screen UIs, general slowdowns, and more, by and large, Presentation Manager appears to be a strict downgrade over both OS/2 1.0, and Windows of this era. While Presentation Manager got better, it was too little, too late.
By and large, the functionality of Presentation Manager is no different from Windows 2.x of this era, albeit with a slightly less blinding color scheme. Presentation Manager was originally announced as a core component of OS/2, but didn't ship until OS/2 1.1 until October 1988.[3]
As far as graphical systems went, in a consumer market, OS/2's main competition in this era would have been Microsoft Windows, Apple's Macintosh, and Commodore's Amiga platform, as well as general UNIX efforts in the form of Xenix, SunOS, and others.
Originally, as part of the OS/2 SDK efforts[4], Microsoft provided beta builds of OS/2 1.0
Why would you buy OS/2 over DOS?
This question was came up during livestreaming the drafting of these notes. Understanding why you would buy OS/2 is an important step in understanding the market.
How did people buy OS/2
Operating systems, and specifically how OSes were bought and sold were very different in the 1980s vs. even the 1990s or the modern era, thus some context is needed. This wasn't asked originally, but was added here to provide context for other questions
Early use of OS/2 was primarily by developers, and those who needed a better platform for business purposes. The first developer releases and betas were released as part of a $3000 software development kit, which included not only OS/2, but printed programming manuals, Windows 1.x, Microsoft C compiler, and much more. After 1987, and the formal OS/2 1.0 release, the situation gets a bit more complicated. For those on true IBM hardware, IBM offered two distinct versions of OS/2: The rather aptly named "IBM OS/2 Standard Edition", and what we've mostly looked at, "IBM OS/2 Extended Edition", which can best be seen as equivalent the differences between the client and server versions of Microsoft Windows.
The situation is somewhat different if you weren't an IBM customers. While there is a de facto standard for 8088 based computers since by and large, everyone copied the IBM PC 5150, and 5160, there is much wider amount of variation in terms of hardware and capability from the 286 era to the tale end of the 486 era. By and large, systems were not interchangeable, and compatibility issues were distressingly common. This is due in part due to the the lack of a protected mode ABIOS, differences in disk interfaces, and just flat out hardware bugs.
By and large, operating systems were sold for specific hardware, and the idea of a generic PC operating system wasn't as clear cut then, as it is now. For example, a commonly cited reason for OS/2's poor adaption was the belief that you needed a PS/2 system for it to work, or otherwise needed a tailor made OEM version. This is similar to how you had PC-DOS for IBM machines, COMPAQ DOS for Compaqs, etc. Likewise, known OEM versions of OS/2, all based on the generic Microsoft release, were available from Tandy, Nokia, Intel, and others. From what I can see from examining multiple non-IBM OEM releases, the only significant differences appears to be drivers, installation media (3.5 vs 5.25) and documentation changes.
It's not clear that end users were really intended to install OS/2 by themselves. While operating system installation got progressive easier through the 80s and 90s, there was still a fairly high barrier to entry, just due to compatibility concerns. If you were going to switch over to OS/2, you'd probably need an upgraded PC, new library of OS/2 native software, and more.
What are the minimum requirements for running Presentation Manager
The stated requirements for Presentation Manager 1.1 appears to be any 286 processor, and 2 MiB of Extended Memory + 640kb of conventional memory. While OS/2 1.1 will install, and Presentation Manager will load, it is practically unusable in this configuration. In practice, to be usable, OS/2 1.1 required 4 MiB of memory, and really wants a 20-30Mhz processor of some sort. This is hardware that was either exceptionally expensive at the time, or simply did not exist.
OS/2 1.2 and more notably 1.3, still had the higher memory requirements, but were somewhat more performant than OS/2 1.1, likely due to code optimizations and improvements in Microsoft's C compiler.
What was Presentation Manager and OS/2's competition in this era
Enduser Competition
- Apple Macintosh
- Amiga Workbench
- Microsoft Windows
- DESQView
- PC/MS-DOS
Server Competition
- Novell NetWare
Minicomputer Competition
- UNIX (all sorts including Xenix)
- DEC VMS
- IBM's own mainframes?
Other Competitors
- Atari TOS
- DR-DOS/GEM
- 3COMM 3+Share
How does Windows 2.x compare Presentation Manager in OS/2 1.1?
How does the Windows 2.x development environment differ from Presentation Manager?
How does Borland Sidekick compare between DOS and Windows?
Interesting Timestamps
- 00:00 - Stream Start
- 05:30 - Starting with OS/2
- 11:00 - Installing OS/2 Extended Edition 1.1
- 26:10 - Booting up Presentation Manager
- 35:00 - Installing Word 5.5
- 43:00 - Introducing OS/2
- 1:02:00 - Checking out Borland Sidekick for OS/2
- 1:09:00 - Sidekick Notepad lagging in real time
- 1:20:00 - Running OS/2 1.0 with 4 MiB of memory
- 1:43:00 - Installed Database Manager, Installing Query Manager
- 2:02:54 - LAN Requester Setup
- 2:04:49 - Look - New Apps
- 2:18:00 - IBM OS/2 1.2 Extended Edition
- 2:24:00 - Installing PC-DOS 3.3
- 2:30:00 - Installing Windows 2.1/286
- 2:42:00 - Actually installing IBM OS/2 1.2
- 3:30:00 - Actually have IBM OS/2 1.2 Installed
- 4:02:00 - Trying WLO/QM on fresh reboot
- 4:35:00 - Approaching end of Microsoft OS/2 1.3 Install
- 4:50:00 - Exploring WLO applications
Findings
Presentation Manager on OS/2 1.1
During the original livestream, I used OS/2 1.1 and 1.2 pretty extensive on air. OS/2 1.1 is in many ways closer to a public beta than it is to an actual retail product. While it is theatrically possible to run Presentation Manager within 2.5 MiB of memory, which is the actual documented minimums, it cases so much thrashing (due to disk paging) that the system is practical unusable. This is a long departure from the relative simplicity and performance of the TSHELL interface on OS/2 1.0.
The problem is that Presentation Manager (and the underlying Graphics Precision Interface or GPI), was both bloated, and extremely unoptimized in this initial release of OS/2, which was further compounded by the fact that the ability to quit to a command line was either removed, or never implemented. That meant, even if you didn't need graphical applications such as running a text editor and/or C compiler, you still had to deal with the performance overhead imposed by Presentation Manager. Considering that OS/2 1.0 was usable in 512kb of extended memory, the value to cost ratio is, at best, misplaced.
Console Applications under Presentation Manager
By and large, support for console applications on OS/2 was/is fairly terrible. The E editor, which is the only OS/2 native editor included in the box only runs "full screen", it can't run in a console window. This is also true of MEP, or the M editor, which is what Microsoft provided on the SDK, and was also available for some versions of Windows NT.[5] This isn't a limitations of OS/2 in and of itself; it is possible for 'graphical' console applications, like the Word for OS/2 setup manager to run without a problem. This is likely similar to how binaries for Windows 1.x/2.x must be marked for 3.x and later.
That meant that you couldn't even take full advantage of overlapping windows, you would have to press Ctrl-Esc to bring up the task manager, and switch back and forth, which could also change screen resolution. It's difficult to experience this accurately in emulation, but on the whole, this feels considerably slower, and clunker than the original TSHELL that was in OS/2 1.0. In addition, as a note going forward, IBM never fully cleaned up the console API. Even until the final version, it was essentially unchanged from OS/2 1.0, and never got a 32-bit interface except in the ill fated PowerPC port.
Fundamental Design Problems with Presentation Manager
As a matter of policy, both Microsoft and IBM de-emphasized the use of traditional console and text based applications, even though these would actually remain common well into the 90s and beyond. However, disregarding this, Presentation Manager manages to negate most of the advantages brought by the OS/2 kernel. Memory usage and general performance aside, OS/2 graphical applications use what is known as the Single Input Queue or SIQ to handle messages for each individual application. This is fundamentally how 16-bit Windows worked, and aspects of this design actually are still present in the modern day Win32 API (in the form of Get/PeekMessage and the like).
Presentation Manager has a similar programming interface to Windows 2.x and later, but entirely replaces the graphics interface with IBM's own "Graphics Programming Interface", which makes several arbitrary changes from Microsoft's GDI (Graphics Device Interface), presumably to meet some sort of requirement within Big Blue itself. Prototypes of OS/2 1.1 show a Windows 2.x like interface before evolving to the Presentation Manager that we have now.
Single Input Queue
The Single Input Queue (also known as the Single Event Queue) is used to provide messages and user input to all PM applications. The SIQ, as best I can tell, is a performance and memory hack. Window manager events (aka, anything started WM_*) pass through the SIQ, and are processed by each application. However, because there's only one system wide queue, a single application can lock up the entire system without fail by either not properly pumping the SIQ, or by injecting so many messages, that it overflows, and hangs the system.
This entirely negates OS/2's pre-emptive multitasking, and by and large, reduces system stability to that of early DOS and Windows. This is inspite of the fact that OS/2 supports threading, which is how the SIQ problem was solved on Windows NT. It wasn't until the release of OS/2 Warp 4, Fixpack 17, released over a decade later, that a partial fix for the SIQ was finally shipped by IBM.[6]
The reasons as to why the SIQ exist vary, and as of writing, I haven't found a first party explanation as of yet, although one likely exists. The most commonly cited reason I've seen is due to performance penalities, either due to the 286, or the overall design of OS/2 threading. It is also possible that IBM was waiting for NT OS/2 (which never happened) to fix the problem properly, and when OS/2 2.x "Cruiser" fell through due to Microsoft withdrawing from the project, although this can not be proven at this time.
Hardware Compatibility Issues
OS/2 1.2 - The Feature Complete Release
OS/2 1.3 - The Bugfixed and Actually Usable Release
Gallery
Presentation Manager
-
OS/2 1.1's File System application, which is very similar to Windows 3.0's FILEMAN.
-
Exploring a subdirectory in the file system viewer.
Stream Plan
This is likely going to be divided into parts to determine the full context of what's going on
Part 1
- Install OS/2 1.1 Extended Edition
- Try Word as OS/2 console application
- Try out Sidekick for OS/2
- Multitask between Word and Presentation Manager
- Upgrade to OS/2 1.2 Extended Edition
- Look at GUIified EE applications
Part 2
- Install Sidekick for DOS
- Install WordPerfect for DOS
- Install Microsoft C for DOS and OS/2
- Install Windows/286 2.x
- Install Word for Windows/Excel for Windows
- Compare Windows 2.x and PM 1.1
- Compare Windows 3.x and PM 1.2
- Do some Windows app development or the like (like compile example programs)
Stream Notes
E.EXE can only run as a full screen application IBM OS/2 teachs you how to A Tutorial program operates like IBM 3270 with function keys being defined on screen Menu is called Action Bar?! So Presentation Manager is improvement (in usability) over command line, but its very slow Way to running multiple command line applications "nicer" IBM's manuals have printing dates in date Most of chat feels like this is an upgrade IBM OS/2 1.2 - Has dual booting. Microsoft OS/2 1.0 has it. IBM 1.1 (and MSFT 1.1) does nto appear to ... Tom Rune Berg noted OS/2 1.1 had tech demo feels 2 MiB of memory + 640kb was not enough Trying with 4 MiB of memory ... With 4 MiB of memory, pretty laggy/slowly Entry Level systems with Model 30, 50, 60 was between 2-4k, Model 50 with MCA and non EDSI HDD was $4000 IBM OS/2 1.1 Extended Edition - Server components have some minor changes, namely color scheme; first version of LAN Requester, but needs Token Ring or PC Network Card For the PS/2 I need: - EEPROM Programmer - Blank EEPROMs + Eraser - Network Card (16-bit) Disk copying much faster under Windows 286/2.1 Were the Microsoft OS/2 versions notably different in performance? Emulating 10 Mhz 286, 287 and 2560 kb What was the actual sales numbers for various OS/2 versions? 86Box Performacne seems unusually slow - confirm on real hardware Was 286 Segmeneted Protected Mode responsible for slow UI performance of OS/2 Potentially benchmark PM? Look at surviving DDKs OS/2 1.2 Minimium Requirements 3 MiB/30 MiB disk space standard edition Guess we're going to need to look at Microsoft OS/2 versions Locked up on low disk space ... Locked up again ... Install on MS OS/2 1.3 done at 25Mhz for patience reasons ...