Retrocomputing for the Forgotten

The world runs on marketing hype. Remember the public relations swirl around the Segway? Before it rolled out we were led to believe it was going to be remembered as fire, the wheel, and Segway. Didn’t really happen. Microsoft and IBM had done something similar with OS/2, which you may not even remember as the once heir-apparent to MS-DOS. OS/2 was to be the operating system that would cure all the problems with MS-DOS just as IBM’s new Microchannel Architecture would cure all the problems surrounding the ISA bus (primarily that they couldn’t stop people from cloning it). What happened? OS/2 died a slow agonizing death after the Microsoft/IBM divorce. But for whatever reason [Ryan C. Gordon] decided to write a Linux emulation layer for OS/2 call 2ine (twine).

We like retrocomputing projects even if they aren’t very practical, and this one qualifies. The best analog for 2ine is it is Wine for OS/2, which probably has something to do with the choice of name. You might be ready to click away since you probably don’t have any OS/2 programs you want to run, but wait! The good news is that the post has a lot of technical detail about how Linux and OS/2 programs load and execute. For that reason alone, the post is well worth a read.

[Ryan] had been working on Unreal Tournament 2004 and saw a product called [Pixomatic]. Under Linux, Pixomatic actually loads a Windows DLL to do some work. This led him to dig into how the loaders worked and — of course — this is not unlike how Wine can load Windows binaries and provide them Windows API services that really do things in the Linux way. This led to a lot of interesting projects he mentions in passing, including one to load a shared library from memory instead of a file.

So recently in a fit of boredom, he’s started loading OS/2 programs and has had some success. This took some research on the OS/2 executable format and a lot of exploration of OS/2 strange memory model, exacerbated by the shift from 16-bit OS/2 to 32-bit OS/2. The big pay off is how he found how Wine and dosemu can cobble up the 32-bit Linux environment to run 16-bit code.

There’s more, but just go read the post. The detail is impressive and although it isn’t running anything practical yet, it does work and the technical detective work behind it makes for a great read.

As for period reproductions, we’d much rather do hardware and simulate a Z80 or just about anything else. Still, OS/2 is part of the PC’s history, and the lessons you can glean from this transcend the actually usefulness — or lack thereof — of running OS/2 binaries.

45 thoughts on “Retrocomputing for the Forgotten

    1. On the contrary, OS/2 was used back in the 90s for realtime trading systems where they would run 24/7 for, well, a long time. It had its quirks (Presentation Manager Y coordinates were upside-down to Windows for one, I forget the rest of the niggles when I was porting my Windows code to OS/2) but it was a rock-solid operating system.

      1. That massive CONFIG.SYS file that one dared not edit unless you really knew what you were doing. I tried running OS/2 Warp 3.0 for a while dual booting with Windows 95 but never could come up with any OS/2 software I really needed.

        1. I ran OS/2 Warp 3 & 4 for about 8 years. It wasn’t until Windows XP that Microsoft got an OS that was as stable.

          And if you were using OS/2 in the dual boot mode (a.k.a. “Choose and lose”) you were really missing out.

      2. Jokes aside… probably OS/2’s biggest problem was actually the same issue that Windows NT faced in its early days. The memory protection model meant additional memory overheads. These were operating systems that really needed the RAM, at a time when 8MB RAM was considered an extravagant luxury.

        Windows NT didn’t catch on in the consumer world until such time as consumer computers were shipping with at LEAST 64MB RAM. NT 3.1 could run in 12MB RAM, BUT you’d be at risk of developing RSI in your thumbs as a result of twiddling them whilst waiting for the machine to rattle through its swap file.

        OS/2 Warp 4 on 64MB RAM wasn’t bad… I did play with it for a while, still have the disc (thank-you Australian Personal Computer magazine). On 8MB RAM though, you could expect a lot of disk thrashing.

  1. Well, dang! Just mention the MCA bus and leave us hanging! But I guess that’s a whole other Retrocomputing article unto itself!
    Aww, c’mon Gramps, tell us the one about the “Gang of Nine” again. I want to hear that one!

    1. Karnak holds envelope to head: A greyhound, a poodle, and the Microchannel Architecture
      Ed: A greyhound, a poodle, and the Microchannel Architecture
      Karnak (glaring at Ed, opens envelope): Name two dogs and a bus.

  2. >>primarily that they couldn’t stop people from cloning it)

    MCA was easily licenced so there was no need to clone it. Many other companies provided MCA machines, but it never really caught on outside of the corporate world.

    As a person with a visual disability, I found OS/2’s Workplace Shell to be the best user interface I’ve ever used. Easily customizable to suit my needs. It had features you still can’t get in any other OS.

    A few days ago I found a CD with an OS/2 program I wouldn’t mind being able to run. This project is interesting.

          1. “Anyone whose uses a contemporary desktop version of Windows released since 2002 is technically a Windows NT user. :-)”

            Just how ‘technical’ do you want to get :)

            Seriously… The so-called ‘NT codebase’ used for Windows 2000 was nothing of the sort. There was a lot of code in common of course, but much more was redesigned and/or rewritten to support a full ‘desktop computing environment’ on commodity hardware.

            NT was the polar opposite. A server operating system with limited hardware support which was only provided with a graphical shell to allow for installation, configuration and maintenance.

            “The wig and the false beard. They’re not even the same colour…” :)

  3. I think the last nerve conduction study that I went in for, the box was running OS/2.
    Technician said they didn’t see any reason to spend the cost of a newer box to do the same thing as the old one, as long as it still met certification.

  4. IBM’s failure to get market share for OS/2 was they didn’t establish a division for games and high performance video, like Microsoft did.

    Microsoft took to making their own games for Windows and developed DirectX to make them better and faster. IBM… did not. There was no way OS/2 was going to gain a toehold in homes without games.

    OS/2 had a 16 bit Windows system to “seamlessly” run Windows 3.1x software, but their falling out with Microsoft prevented implementation of support for 32 bit Windows software. Having that plus porting DirectX to OS/2 *and* in-house game division *and* getting system bundling deals with OEMs could have helped. But what did IBM focus on with Warp 4.0? Being able to format a floppy disk while doing other things. Not really that important to the home or any other user.

    1. Oh yes. There’s no doubt it was basically a marketing failure.

      Add in Microsoft’s rather less than ethical business practices and as we’ve seen, even IBM couldn’t compete with them.

    2. I have used OS/2 warp as a developer in that time. It was rock solid. I was running Borland Pascal in one window and our 16 bit DPMI software in an other.

      The biggest reason it failed (at least in the Netherlands) was the price of memory in that time.OS/2 warp needed at least 8MB of memory while 4 was the standard amount for PC’s at that moment due to the high price of RAM.

      (Note: I just realized you can replace the MB with GB and have the story of Windows 10 working nicely or not)

    1. his C example, helloc.exe is compiled by EMX. I had no luck with a super old version, but 0.8h worked OK. I was able to run a simple dhyrstone benchmark, and an ancient C infocom interpreter from 1987 just fine.

      All the ‘interesting’ OS/2 stuff I have is 16 bit, which this won’t currently run. Although at the same time, is there much need for them?

  5. I definitely did not know what I was doing. I remember only the sour taste of defeat with os2 when at 90% through the install from the 400 floppies (slight exaggeration) it determined every computer I could get my hands on was not sufficiently PC to host os2….

  6. Another nail in the coffin for OS/2 was the cost of a development license that IBM used to charge. Application developers looked at that and said: “Compiling for Windows 3.1 is free… OS/2 runs Windows 3.1 applications… why spend money compiling for OS/2?”

    Add to that a desire for IBM to only really support their own hardware (yes it worked on clones, but it could be hit-and-miss at times), and you had the makings of a disaster right there.

    1. The bigger killer is that in 1987 we had Xenix for the 386, and Windows/386 which included a hypervisor capable of running multiple 8086 VM’s via v86 mode. And now that the FOOTBALL/PIGSKIN betas of OS/2 circa 1987 have come to light, it’s obvious that Microsoft could have shipped a 32bit version of OS/2, although using a current 16bit API, with 32bit virtual memory & v86 mode support (basically what OS/2 2.0 ended up being with a bunch of 16bit code). But IBM held tough with their need to support the IBM 5170 (286 based AT), and instead we got a braindead 16bit protected mode OS that could only run a single MS-DOS program at a time in the penalty box, with no real fancy 80386 based features.

      It’s no small wonder after Windows 3.0 started to take off in sales, that Microsoft gave up on the still un-released OS/2 2.0, and took control of NT OS/2 3.0, and re-branded it Windows NT 3.1

      For years we users were always told it was Microsoft’s heavy handed business that killed OS/2, but in reality it was IBM’s insanity that killed OS/2 before it even got off the ground, by charging insane prices for the SDK, suppressing 80386/32bit versions, and not allowing Microsoft to use Windows as the GUI on OS/2 which would have given OS/2 native support for Windows applications without the utterly useless & backwards SAA Presentation Manager, and chasing away so many applications until OS/2 2.0 shipped from IBM which included a copy of Windows 3.0.

      IBM also screwed up big time by not including networking into the package, along with multimedia. The ‘addon disks’ were a nightmare of people forgetting to install them, or patching them as they were ‘separate from the OS’ as IBM was afraid somehow that by including 4.3BSD RENO’s TCP/IP stack, and the Intel invideo codec in OS/2, Microsoft would of course via the cross licensing agreement would get access to this technology.

      Meanwhile Windows for Workgroups 3.1 onward included networking, and was integrated into the platform.

      Although in retrospect the #1 killer app of OS/2 & Windows NT, was Sybase SQL server re-licensed and re-branded as Microsoft SQL Server. Funny how IBM, the inventor of SQL never could properly compete in the low end mid-range as they were scared of harming AS/400 & AIX sales.

  7. Windows 95 wasn’t the only reason OS/2 Warp failed to gain market share. GNU/Linux was there too. Of course it wasn’t even quarter as mature but it was free (in both ways). And while I was lookimg for an alternative OS to learn and play with, it was already much easier to download a few floppies or buy a computer magazine with a CD, than find an illegal (one-way-free) copy of OS/2.

  8. At first I thought the name of it was “2lne”, with an ell after the 2. And that’s how I noticed that the Hackaday writeup font has no dot in the “i”–it’s just a smaller “I”.

    (Strange that the comments font does have a dotted-i, though the font is almost the same.)

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s