Research Stream: OS/2 1.0 Explorations

From DisNCord Community Wiki
Revision as of 06:40, 15 January 2023 by NCommander (talk | contribs) (→‎Description)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Recap of OS/2 1.0 Research Stream

Research Stream
OS2 Research Stream Thumbnail.png
OS/2 1.0 Explorations
VoD LinkRESEARCH STREAM: The First Version of OS/2 ...
Streamed OnJanuary 11th, 2023
Streamed byNCommander
Stream typeEmulated on 86Box

Description

This stream was primarily to experience the original 1.0 release of OS/2, since it was both considerably different that OS/2 1.1 (which included Presentation Manager), and was probably the closest to the original vision of Advanced DOS and/or MS-DOS 5. It also serves as a reference point, to understand all the things that came before and after, for example, how Multiuser DOS influenced things, and what cracks were visible at the time.

By and large, OS/2 wasn't intended for end-users at this time; this was closer to developer release or business release, as a cheaper alternative to Xenix. I created two scenario examples, one of a Microsoft employee doing operating system development, and one of IBM providing it as a low cost alternative to a mini-computer. To that end, we looked at IBM OS/2 Extended Edition, which for OS/2, included Database Manager, Query Manager, and Communication Manager; applications you would expect to run in medium sized business that had need of such things.

Throughout the stream, I noted differences between the environments, how the system was put together, and tested several scenarios and compatibility issues as documented below.

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.

What was OS/2 1.0 like to use?

Assuming you could get it to work, OS/2 1.0 was not a bad experience in and of itself. Even on an emulated 6Mhz 286 you could switch and load multiple applications at once, and it was quite easy to run Word and Multiplan side by side, while having WordPerect 4.2 present and accounted for. In short, period correct DOS applications (and even Windows 3.0) worked just fine.

The system requirements were extremely steep; at a minimum, Microsoft OS/2 seems need at least 512kb of conventional memory, and an additional 512kb of XM to run. It may actually require 640kb convention memory, but this wasn't tested, but that would be commonplace by the 90s, when Windows 3.0 came around, however, had the family mode API been more used, it could have provided a solid upgrade path over DOS 3.3 and MDOS 4, especially given it could use both the 80286's segmented protected mode, and the 80386's 32-bit segment size limits.

Furthermore, Program Switch/TSHELL is essentially just a more refined version of MDOS 4. Had MDOS4 and OS/2 been more successful, we may have seen a much more text UI based take on multitasking, than the one that was built around Presentation Manager/Program Manager. That said, DOS based multitasking programs like DESQview were pretty successful.

Was OS/2 a decent development platform?

That's difficult to answer at this point. I know that OS/2 was at least relatively well supported as a development platform, and that Microsoft used it as a host platform for Word, and several other products until transitioning over to Windows NT. Porting a console application from DOS to run on OS/2 is relatively straight forward from what I've seen of the Family API.

While I did install MS C compiler, I haven't really tried to do much development on it. However, while there were some IDEs in this era, its not uncommon to have had to quit out of the editor, run the compiler, relink, and more. Projects were probably more held together with batch scripts and good intentions since microcomputers were quite limited. Tools like make were either too bulky or weren't needed yet.

At least some versions of OS/2's toolkit included MEP or SKED, a full screen editor, and other commercial ones were available. Watcom provided a port of vi out of the box. There were at least two versions of the development tools; the one included in MS C 5.1, and those included on the toolkit disk. The toolkit disk seemed very much for those who wanted to "bring their own compiler", and had the linker and other associated tools needed but wasn't a complete package.

This is similar to how the Windows 1.0 SDK had the link4 linker, as well as things like the resource compiler, but required the use of MASM, Microsoft Pascal, or Microsoft C. I'm not certain if this predates OMF files, but there may have been a de facto standard in this era.

What were the absolute minimum requirements to use OS/2 without Presentation Manager?

OS/2's 1.0 emory map from the technical reference guide.
OS/2 Memory Map without DOS compatibility box

OS/2 1.0 can run without a hard drive[1], on 512kb of XMS, and a 6MHz 286, and appeared to use about 2.5 MiB of disk space when installed, before counting swap space. However, in this configuration, the DOS box must be disabled[2], which allows for only running OS/2 based applications. Presumably this means that OS/2 does not normally use much if any conventional memory, and instead loads above the 1 MiB line.

Thus, it appears at first glance that the DOS compatibility box maps of all of conventional memory to DOS applications, with some space of OS/2 left to load high. OS/2 apparent high memory requirements appear to entirely come from having to shoehorn in DOS compatibility. That's about 2.5% MiB of disk space, or 5-10% of available drive space of the time, a not insignificant amount of space. However, MS OS/2 at least included a OS/2 compatible BASIC[3], although compatibly wasn't tested with the PC side of BASIC.

From what I can tell from testing and more, OS/2 essentially suffered from trying to support DOS applications while running in the 80286's protected mode. had it been possible to dynamically allocate or deallocate the DOS box without editing CONFIG.SYS, it would have likely been a much more capable system overall, since that would free up a significant part of main system memory.

UPDATE: January 14th, 2023: Dr. Shuppet found a diagram and description in the IBM technical reference manual that shows the memory map, and describes how this all works. Conventional memory is set aside from for DOS, and then OS/2 programs load above whatever RMSIZE= says in CONFIG.SYS. This also shows how I/O segments and the like are allocated.

Is this an upgrade from DOS (especially Multiuser DOS 4)?

If you could run with straight OS/2 applications only, then yes, I would say this is an upgrade. Being able to multitask across multiple OS/2 sessions worked very well, and while there was no graphical interface, this is superior to job switching with Ctrl-Z and bg/fg on a UNIX system of this time period. In fact, the experience is much more similar to what I would expect on a IBM 3270 based system, with full screen terminal capability.

That may have however been consistent with other IBM products. IBM hadn't been directly involved with the creation of Windows, it had been a Microsoft product from the getgo. Instead, IBM had released TopView[4] as their graphical solution of choice which competed with Windows 1.0. The JDA with Microsoft was to then go on and form the basis of CP-DOS/and DOS 5.

However, it's a more questionable upgrade if many applications had to run through DOS compatibility box. In which case, the very hefty hardware wasn't being used to its full capabilities because MS-DOS software still mostly fit in conventional memory throughout this entire era. Its not uncommon to find 5150s or ATs with DOS 5 showing how late they were used. It's also not uncommon to find software on bootable floppies.

Many IBM programs were actually shipped on DOS floppies that ran a replacement COMMAND.COM, and some like NetWare licensed DR-DOS so their disks would be bootable. It probably wasn't uncommon in the era of floppy disk copying that people would just create system disks, and I vaguely remember doing this more than once. OS/2's 1.1's removal of creating bootable floppy disks may have been done as an anti-piracy measure, or to discourage writing command line applications. This is something to be researched further ...

How does this compare to Xenix, or other PC Unix and Unix-likes of the time

Xenix was available for the 8088, 286, and 386 from the Microsoft/SCO partnership of this era. This was probably the most common multitasking operating system run on the 286. To multitask on the 8088, Xenix has imposed some strict rules on how segments could be used, similar to Windows 1.0 of the era. Documentation from the era talks about compiling Windows applications from a Xenix host, and I've seen some discussion that there was at least ideas on the basis of running Windows on top of a 286 protected mode operating system based on comments from Raymond Chen and others.

Xenix was almost an entirely command line based system, and essentially required a deep understanding of UNIX to use. The most advanced editor on the system would be vi. UNIX, by design assumed it was running over serial terminals. Word and Multiplan were available for UNIX, including a Xenix version, however, UNIX systems were considered multiuser, and software for them were priced accordingly. Xenix for instance was approximately $700 USD, while OS/2 Standard Edition's list price was $325.

However, Xenix was a considerably more complete system, and could be used to do productive work out of the box. OS/2 though, could have been a piece meal upgrade.

What problems were visible here that were only obvious with hindsight?

The immediate and obvious problem was the lack of native applications. By and large, while Microsoft applications were released as family mode applications, OS/2 was rather poorly supported overall. Had OS/2 been a relatively cheap upgrade, and, most importantly, didn't mandate the use of Presentation Manager, it would have been a far more successful product overall, since the cost of a graphical user interface running is exceptionally high.

There's also no indication of resources being used. For example, when testing Quarry Manager and Database manager, they ran with 2 MIB of member, but were paging so hard as to be basically unusable. Increasing the system memory of 8 MiB (a truly ridiculous amount for the time period) considerably helped since there was no more paging, but there was no visual indication that this was the problem. Windows 3.1 showed free member in the about box of most programs, while Windows 9x offered the resource manager, and NT offered statistics in task manager. The lack of feedback very much didn't help things.

That said, it feels like the TSHELL based environment was very much more of a step forward than what came afterwards.

What Is The Difference Between IBM and MS OS/2?

This question was added after the stream, as the difference was much larger than was originally apparent

OS/2 was generally released in two main editions, IBM branded, and Microsoft OEM branded. This was common practice at the time, since each PC vendor was expected to license DOS for their machines. However, Microsoft released the source code to DOS 1.x and 2.x as sources several years ago, which revealed more details that are relevant here.[5]. In DOS OEM adoption kits or OAKs, there's what is known as the IBMVER flag, which changes several behaviors in DOS.

The details of these are not relevant here, but it's known that Microsoft appeared to largely disagree with many of these changes, and provided other OEM's with the option to build DOS with or without the IBM changes. Over time, the IBM specific changes fell out, and by DOS 5, there was only one Microsoft release with minor vendor tweaks past that point.

This is largely true of OS/2, with a specific IBM PC version, and a more generic Microsoft OEM one. Unlike DOS, there does appear to have been a generic "Microsoft OS/2" that was at least included in the SDKs if not also available for retail. However, I had to use a Tandy OEM branded version to get one that will install in 86box, and couldn't get the Microsoft branded ones to start on any emulated IBM PC.

From reviewing the OS/2 Museum, the following differences are known

  • Differences in drivers shipped
  • Microsoft OS/2 detects, and uses 386 specific instructions to enter and exit protected mode, instead of using a triple fault[6]
  • IBM OS/2 1.0 and 1.1 lacks 386 support, and only uses triple faults.[7]
    • It's known there was a 386 multitasking version of OS/2 1.0 betas, which ran on a Compaq DeskPro[8]

Personal Observations From The Stream

  • Microsoft OS/2 starts CMD.EXE directly, while IBM OS/2 loads to the Program Switcher
  • Microsoft OS/2 has an animated splash screen (which also works in CGA, and has a monochrome fallback), while IBM is a much more static still image
    • Microsoft OS/2 and IBM OS/2 have drastically different installers, and appear to have nothing in common
    • IBM OS/2's installer seemed much more polished and refined, and also uses colors in places.
  • IBM OS/2 Extended Edition has a tutorial program (I believe this is also on Standard Edition), which Microsoft OS/2 lacks.
  • Differences in comments in CONFIG.SYS
  • VER reports Microsoft/IBM OS/2
  • Standard/Extended Edition have actual different version strings, and possibly other differences in their kernels.
  • Microsoft OS/2 supports dual booting, IBM OS/2 does not

Interesting Timestamps

This is an incomplete list, please add as more are found:

Findings

These are my general impressions and main takeaways from this stream.

In General

  • There are user visible differences between the IBM/Microsoft versions of OS/2
  • Almost no period correct applications exist for OS/2 1.0; most of what I used were released in 1988 or even 1989
  • 512 kb of XMS + 512/640kb of conventional memory appears to be the lowest supported configuration
  • Had applications been more generally available, OS/2 1.0 would have been a solid evolution over DOS ...

Usability

  • Usability is about on par of DOS of this period, with the main difference being use of Ctrl-Esc to switch programs
  • The text-based APIs appear to have changed little going forward, as later applications often work on OS/2 1.0
  • Family mode applications "just work", although this is to be explored more in-depth.
  • Being able to multitask between multiple applications is very much usability upgrade, but this should be compared to TopView/DESQview

Utility

  • OS/2's swapping allowed a SQL database to run on 2 MiB of memory
  • Query Manager showed what a native OS/2 1.0 application would be like with TUIs
  • The experience seems similar to 3270 terminals, and other green screen like designs.

Compatibility

  • In general, DOS applications that do not run an extender (aka, most of them in 1987) generally run fine.
  • Windows 1.0 does not work in DOS mode
  • Windows 3.0 does works properly in the DOS compatibility box
  • Microsoft OS/2 allows for dual booting and a variety of upgrade paths, IBM OS/2 doesn't

General Thoughts

While it might be my initial basis showing, the impression I've gotten, especially taking in the differences between IBM and Microsoft OS/2 in to consideration is that both companies had very different ideas on where they were going to take it. By and large, end-users seem to be something of an afterthought, since the lack of applications and cost of memory would have excluded OS/2 to all but the very top tier of power users. In addition, Microsoft would continue to supporting 8088 based systems until the 90s, with the release of Windows 3.0 and DOS 5.

Microsoft seems to have been working on a true successor for DOS for microcomputers, first with Multiuser DOS 4, and then OS/2, using the 80286's protected mode. This is evident with the MS-DOS 4/5 naming scheme, and it was likely that Microsoft was prepared to support multiple DOS versions in parallel, similar to how Apple de facto supported DOS 3.3, and ProDOS on their 8-bit line of computers.

IBM meanwhile seems to have been working on the lowest tier end of their business products. Most of IBM's contribution of OS/2 seems to be in the form of a revised installer, and the IBM specific applications such as Database Manager, Query Manager, and Communication Manager. While IBM did sell machines intended for purchase by home users, these were generally done through a dealer and not to an end user directly, as LGR documented in his PC AT setup video.[9]

A useful line of thought is to see what support guarantees were given in regards to older DOS environments, as well as determining, in practie, when support for the 8088, 286, and 386 faded away. In practice, from what I've seen, 8088 based systems seemed to have lasted until the release of DOS 5, the last one on 5.25 disks in the early 90s. Use of the 286's protected mode generally came with the general availability of Windows 3.0 and 3.1, with these systems only being retired with the advent of Windows 95, with the 386 and 486 leading the charge from there.

Gallery

IBM OS/2

Microsoft OS/2

Word 5.0 on OS/2


Original Stream Plan

This documents the original plan and drafting as before this write-up was done, along with relevant notes

The idea is to create multiple machines with different setups and try to see what IBM and Microsoft both wanted out of OS/2

Exploring OS/2 1.0

As Microsoft (and likely IBM) strongly believed in dog-fooding, the goal is to create example environments representing what is known about how they used. Microsoft originally made OS/2's software development kit available to

Microsoft Developer on OS/2

Microsoft used OS/2 fairly extensively in-house as it was an early adopter of the 80286, and OS/2 was used to develop itself, and Windows NT, as well as several well known applications such as Word for Windows. In effect, OS/2 is a fairly solid development platform, and provides a lot more flexibility and customization than DOS of the era.

The goal is to create an example VM with the following components

  • Microsoft OS/2 1.0 running on a 80286
  • Microsoft Word
  • Microsoft Multiplan
  • Microsoft C Programmers Workbench
  • OS/2 SDK 1.0

I would have included a mail client, but there doesn't appear to be any good preserved period correct ones.

Internally, among other things, Microsoft used the M editor, originally for DOS, with an OS/2 port being made as SDKED, which is important since OS/2 1.0 doesn't ship with an editor. SDKED should be on the SDK, but even a DOS copy of MEP should be used if needed.

For good measure of the following third-party applications. These should be 8088 based, and period correct from 1985-1988ish.

  • WordStar for DOS
  • Rogue

IBM Powered Business

While Microsoft saw OS/2 as the future, IBM wanted it as a more advanced operating system for the 286. While IBM intended it for use on their own line of PCs, they did sell Extended Edition to partners that included two, and then three major apps.

  • IBM SQL Server (which is used as the basis for non-mainframe DB2 today)
  • Communication Manager, for interfacing with other IBM machines
  • LAN Server, which was a NetBIOS server, and domain master - It wasn't in 1.0, but check when it was added.

By and large, OS/2 was a very threadbare environment, with the most advanced built in app being the E editor, and very few third party applications. OS/2 had very high system requirements for that time period, and while it needs to be backed with research, it stands to reason that IBM was mostly catering to very high end power users, as well the small and middle business groups who were on the IBM PC already.

Things To Test

Here's some various bits to test:

  • Absolute minimum hardware configurations
  • DOS/Backwards Compatibility
  • Windows 1, 2, and/or 3.x Compatibility

Stream Questions and Answers Notes

To be cleaned up a bit (and probably need to add wiki box)


-- Things Discovered:
Windows 1.0 didn't work doesn't work under OS/2 1.0 DOS Box, but WIndows 3.x does

MS C 5.1 talked about creating a patch for IBMBIO (DOS specific file), using patch, with following notes
 - Hex Offset 1432
 - 1A -> 1C

End result broke the system entirely, might have not done it correct.

(Original comments)
 - OS/2 Patch in MSC4 talks about booting from floppy
 - OS/2 patch patches IBMDOS.COM?!

Microsoft Link/2 - 1987 Copyright

Microsoft included branded linker for OS/2; might work with DOS compiler than understands segments.

IOPL is set the YES natively on OS/2 1.0 on MSFT/IBM

CONFIG.SYS is drastically different between IBM/MSFT

Installer is drastically different from IBM/MSFT

Dates:
Microsoft OS/2 Unbranded - 12-15-1987
Tandy OEM - 4-11-88

Windows 3.0 SETUP.EXE has a family mode binary?

86Box seems to have problems with IBM 286 - worked with NEC BIOS - but unclear as to why

IBM/Microsoft Differences
 - Installer Drastically Different
 - IBM version starts to Progream Selector/MS version starts to command line

12 OS/2 Program Limit - Base Memory

Alt-Esc on OS/2 1.0 was the equivelent of Alt-Tab

DOS program is suspended when out of focus

IBM C/2 programming language (probably related to CSet/2)

Database Manager is exceptionally slow ...

DM requires exceptional amount of memory

Was the multitasking in IBM OS/2 exceptionally slow?

512 kb of XMS is the actual limit of how low it can go ...

---

Follow up stream topics:
DESQView
TOPView
- IBM PS/2 Memory SIMMS
  1. OS/2 install floppies can be quit to shell, and FORMAT A: /S works on OS/2 1.0 only
  2. PROTECTONLY=NO in CONFIG.SYS
  3. The banner said GW-BASIC, so it was likely a generic unbranded one built out of the GW-BASIC source Microsoft has posted
  4. https://forum.winworldpc.com/discussion/10221/software-spotlight-ibm-topview-1-00
  5. https://www.os2museum.com/wp/dos-2-11-from-scratch/
  6. https://www.os2museum.com/wp/loadall-strikes-again/
  7. https://www.os2museum.com/wp/installing-os2-1-x-in-a-virtualbox-vm/
  8. https://www.pcjs.org/software/pcx86/sys/os2/misc/87357/
  9. https://www.youtube.com/watch?v=nLy_jEbuY-U