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.