I wrote a piece for the Reg a couple of years ago talking about Oberon, and due to some comments and emails, I blogged a page of links for more info – including the OP’s article. Folk might find it helpful.
I’m also trying to gauge interest in a native RasPi port. Seems an ideal fit to me.
People often overlook OS/2, which let’s not forget was POSIX compliant, rock solid, and a bloody good OS.
It even ran Windows applications very comfortably for quite some time, due to its heritage of being jointly created by Microsoft and IBM before Microsoft left to go it alone with Windows, leaving IBM holding the reigns.
When I joined IBM back in 1994 they were just launching OS/2 Warp, and I remember every employee being given a copy. If I recall correctly it came on something like 35 floppies, and I thoroughly enjoyed installing it on my home PC, endlessly swapping the diskettes out.
OS/2 with REXX was a serious viable contender against Unix with Bourne shell. And as for longevity and stability, I am led to believe there are still, or were until very recently, ATMs out there in the world running OS/2 under the covers.
Apparently nostalgia just took over me and I’ve abandoned the Golang code I was working on this evening and am now playing with REXX on Linux.
[peacock@rivendell ~]$ cat helloworld.rexx
/* teehee! */
say "Hello, world!"
[peacock@rivendell ~]$ rexx helloworld.rexx
[peacock@rivendell ~]$ cat helloworld.rexx
do i=1 to 10
say "Hello, world!"
[peacock@rivendell ~]$ rexx helloworld.rexx
I didn’t know if I should include it given it seemed like a glorified, DOS-style OS with better GUI and great stability. I keep asking for a list of advantages it had over other OS’s of the time. Especially any as good as others on my list. I havent heard almost anything but that could reflect remaining userbase. Feel free to submit such info if you have it.
One thing I can tell you is that Windows NT was developed on OS/2 workstations. The next Windows was origjnally going to be an updated OS/2. Then, Microsoft wisely poached Cutler et al from DEC to make an OpenVMS clone with modern capabilities. Developers continued to use the OS/2 boxes as long as they were allowed. They had to be forced to switch to Windows NT for developing Windows NT some time after if was almost stable. They missed their OS/2 boxes, though.
True, but there’s more than that.
Windows NT was partly based on OS/2. There were 3 branches of the OS/2 codebase:
[a] OS/2 1.x – at IBM’s insistence, for the 80286. The mistake that doomed OS/2 and IBM’s presence in the PC industry, the industry it had created.
[b] OS/2 2.x – IBM went it alone with the 80386-specific version.
[c] OS/2 3.x – Portable OS/2, planned to be ported to multiple different CPUs.
After the “divorce”, MS inherited Portable OS/2. It was a skeleton and a plan. Dave Cutler was hired from DEC, which refused to allow him to pursue his PRISM project for a modern CPU and successor to VMS. Cutler got the Portable OS/2 project to complete. He did, fleshing it out with concepts and plans derived from his experience with VMS and plans for PRISM.
It was developed on the Intel i860 CPU, codenamed N-Ten, on in-house made MS motherboards. Obviously MS wasn’t going to call it OS/2 anything – that was the failed IBM project, the future was Windows.
So it became Windows for N-Ten. “Windows NT,” later retconned “New Technology”.
The first version, NT 3.1, appeared in 1993 – the number derived from the then-current DOS-based version, and also due, I think, to a licensing deal with Novell allowing MS to use Novell developer info (e.g. to develop a Netware client) but only in Windows up to 3.1.
But until NT, OS/2 2.x was the most advanced PC OS for 386s. No mucking around with upper memory blocks, XMS, EMS and all that nonsense. DOS apps, Windows 3 apps, and a native 32-bit OS with no memory constraints. A new filesystem with long filenames (derived straight from OS/2 1.x and therefore 16-bit code). An advanced, if clunky, “object oriented” GUI.
OS/2 2 was impressive stuff. Linux was skeletal, pre-alpha, back then. PC versions of BSD was a bit better but the vaguely usable versions were commercial. Commercial Unix was either horribly expensive (e.g. Interactive) or horribly limited (e.g. Coherent). And by and large there wasn’t anything else at all.
Oddly, what made me move from OS/2 wasn’t NT. NT was lovely, but expensive and required expensive high-end kit, with a small Hardware Compatibility List. Forget using it on an old “bitsa” PC built from scrap.
OS/2 2 worked on that, with effort. Stacker, bodged-on SCSI storage, PC speaker sound or crappy parallel-port sound cards, crazy mice with numeric keypads: they worked.
Not on NT, they didn’t.
But on the beta of Windows 95, they did, like a dream, easier, faster, and with a better UI. Less stable, but better DOS and Win32 compatibility. You could run NT apps! (All right, yes, both of them.)
OS/2 was great. NT 3.x was theoretically better, if you had a £5000 PC. But Windows 95, while conceptually worse in design terms, actually did what you needed, was easier to get working, had a better UI and let you use the apps you needed and your legacy stuff too.
Sad but true. I switched.
I did look back. OS/2 Warp 3 didn’t work well on my old PC – it needed new drivers for various bits. (And you had to buy OS/2 device drivers for some kit.) It really needed higher-end kit. Windows 95B brought improvements I actually benefited from, like FAT32, and ones I could see being useful in future, like USB support. At work, NT 3.51 looked ugly but it worked well. The hardware had caught up and there were 32-bit apps.
OS/2 Warp 4 caught up in some ways, but it was too late. NT 4 came out the same year.
NT4 was far preferable to OS/2 Warp 4. No 1000+ line CONFIG.SYS files, decent driver support, a more modern filesystem. No USB, true. Lousy power management, lousy plug-and-play. Good for a work desktop with unchanging hardware. Poor on a laptop. But if you wanted toys or games, Win98 followed soon after.
And NT Server made a great server for Win9x, as well as NT desktops. It had some great, rarely-considered features: roaming profiles, for instance. Proxy servers were very easy, far easier than on Netware. (Novell was off chasing big-business multi-site multi-server networks with Netware 4, and took its eyes off the ball: small business with a shared Internet connection.)
A bundled email client on the client end, and cheap off-the-shelf email servers for the server (before the behemoth Exchange crushed them all). IBM didn’t bother stuff like that, because it had Lotus Notes.
OS/2 was good in its day. If IBM hadn’t insisted on 80286 support, it would have triumphed. But then we wouldn’t have got Win9x or NT, both honestly really good products which advanced the state of the PC art.
By the same token, if GNU had embraced the BSD kernel in 1988 or so, we might never have got Linux, and there would have been a good free PC Unix at the beginning of the 1990s, maybe significantly changing the perspective of the whole industry. It nearly happened.
Or if Quarterdeck had released DESQview/X earlier, before Windows 3.0, there would have been an alternative, bridging the worlds of MS-DOS and Unix: DOS with multitasking, TCP/IP and an X.11 GUI. It nearly happened, too.
Thank you for this write up; I was going to set out and defend OS/2 myself but you’ve done a remarkable job.
I think that was my first Lobste.rs comment. 8 upvotes feels like a warm welcome. :¬)
Thanks for the detailed reply. I’ll be thinking on it for a while. One thing I need to clarify is about Cutler building OS/2 for them. Russinovich is my source on it being a VMS clone which he shows by comparing VMS Internals guide to Windows Internals:
It looks like that it wasn’t OS/2 at all from 1990-1993 if it was identical to VMS internals. Are you saying he did a VMS clone with the name “OS/2” held over from the previous project to build OS/2? Or he did a portable, OS/2 implementation that they abandoned before cloning VMS into WNT? As I’m tracing legacies, I wouldn’t call the early Windows an OS/2 derivative or anything OS/2 for that matter if it was a VMS clone. It goes in VMS & Cutler’s legacy. Maybe they reused actual OS/2 code for something in there, esp OS/2 subsystem.
Re OS/2 vs WNT vs Win95. Yeah, my household went with Win95 for the same reasons. Especially the games. :)
That was an improvised and unplanned comment. I could have structured it better.
No, Cutler did not write OS/2. AFAIK he never worked on OS/2 at all in the days of the MS-IBM pact – he was still at DEC then.
Your link considers only one side of the story – the DEC side, This is important but only half the tale.
IBM and MS got very rich working together on x86 PCs and MS-DOS. They carefully planned its successor: OS/2. IBM placed restrictions on this which crippled it, but it wasn’t apparent at the time just how bad this would turn out to be.
In the early-to-mid 1980s, it seemed apparent to everyone that the most important next step in microcomputers would be multitasking. I discussed this a bit in a blog post: http://liam-on-linux.livejournal.com/46833.html
Even small players like Sinclair thought so – the QL was designed as the first cheap 68000-based home computer. No GUI, but multitasking.
Apple’s Lisa was a sideline: too expensive. Nobody picked up on its true significance.
Then, 2 weeks after the QL, came the Mac. Everything clever but expensive in the Lisa stripped out: no multitasking, little RAM, no hard disk, no slots or expansion. All that was left was the GUI. But that was the most important bit, as Steve Jobs saw and nobody much else did.
So, a year later, the ST had a DOS-like OS but a bolted-on GUI. No shell, just a GUI. Fast-for-the-time CPU, no fancy chips, and it did great. It had the original, uncrippled version of DR GEM. Apple’s lawsuit meant that PC GEM was crippled: no overlapping windows, no desktop drive icons or trashcan, etc.
Microsoft was also playing around with GUIs. Windows 1 was, like PC GEM, crippled. Windows 2 was better, and some successful apps used it – Pagemaker, Excel, the Omnis database, and so on. But it mainly sold as a runtime environment. Nobody – including MS – took it very seriously.
OS/2 was the future. Multitasking. That was the big deal. OS/2 1.0 shipped – RTM, media, launch party, OEM bundling the works – without the GUI because it wasn’t finished! That is how little importance IBM and MS attached to GUIs. You could leave that bit until later. It didn’t really matter.
OS/2 1 bombed. V1.1 added the GUI, v1.2 improved it, v1.3 was half decent, but it was poor at running DOS apps. Both MS and IBM underestimated the importance of that legacy code.
But Windows 2 wasn’t a product. It was 3 products. Windows 2, for the 8086, just a GUI, and not a very good one. Windows 2/286, a DOS extender (kinda sorta), enabling apps to access 16MB of RAM.
16MB was a very large amount in 1988 or so. And Windows 2/386, which could do all that and access the 80386’s Virtual 86 mode to efficiently multitask DOS apps.
Windows 3 was a skunkworks project. OS/2 was dying in the market. MS didn’t know where to go next. There was no Plan B. Bear in mind that MS wasn’t always wedded to DOS and the PC – it offered Xenix, a Unix clone, in its early days. MS products ran on Apples and Commodores and Ataris and Tandys and Dragons.
With the failure of OS/2, IBM and MS started to squabble and fall apart.
Meantime, in the background, a bunch of MS engineers had found a way to cleverly bolt together the 3 different editions of Windows 3 into 1 project, and give the tired UI a lift using tech from Presentation Manager, the OS/2 GUI – proportional fonts, fake-3D window widgets, a 2-level-hierarchical Program Manager.
On an 8086 (or a machine with only 640 kB of RAM) it ran in Real Mode, as a DOS app, and was mainly just a GUI.
On a 286 with over 1MB of RAM, it could run in Standard Mode, and you got all that plus Windows apps that could access a meg or more of continuous RAM – something almost impossible on DOS.
And on a 386 with 2MB of RAM, you got 386 Enhanced Mode: all of Standard Mode, plus fast reliable hardware-assisted multitasking of DOS apps, in scalable windows (!).
It was useful even to people who didn’t want Windows apps. It was a pretty good DOS multitasker – a small but important market segment, one that standalone products like DESQview (as I mentioned before) sold just by catering for.
If the OEM bundled Windows, a power user buying a fast PC got a DOS multitasker with a friendly GUI for free. This was a pretty good deal and it meant that Windows 3 became desirable even for stalwart DOS holdouts, of which there were quite a few.
Result? Suddenly, Windows, a tired old product line, whose version 1.0, 2.0 & 3 different editions of 2.1 had all flopped, was a best-seller.
Suddenly, Microsoft turned on a dime. It pivoted, in industry parlance. Forget OS/2, now Windows was the future. IBM got OS/2.
This left MS with a skeleton of a potential future product – Portable OS/2, AKA OS/2 3 – and no clear plan what to do with it, because IBM had the rights to the 386 version – the obvious direction.
Aside: one of the problems with OS/2 2, IBM’s 386-mode OS, was that as it was derived from a 286 product, it had a number of 286 (16-bit) elements. Yes, the kernel was 386 code, but the filesystem (HPFS) was 16-bit, the GUI (PM) was initially mostly 16-bit, and all apps shared a single (I believe 16-bit) input queue, so if that crashed or froze, although your OS was still running and apps updating, you could not interact with the OS any more. Not even in order to shut it down cleanly.
This is where Dave Cutler comes on the scene: into the middle of a complex story involving several industry giants – IBM and Microsoft and the whole of the PC industry. DEC is almost peripheral to this.
Cutler is hailed as the architect of VMS, but it was not his only OS project. He also did RSX-11 and VAXELN before that, and worked on others.
So when Cutler came on board, with some of his core team and a plan in his head for a portable successor to VMS, he got handed the existing Portable OS/2 project. There wasn’t a lot of code in it, and Microsoft wanted to distance it from OS/2.
As per http://windowsitpro.com/windows-client/windows-nt-and-vms-rest-story VMS did not have multiple OS personalities. Neither did OS/2. It had its own API, as did its subcomponents Presentation Manager, LAN Manager, Communications Manager, Database Manager etc. It also has a DOS mode for running DOS apps – a single DOS app in OS/2 1, multiple ones in OS/2 2 et seq.
Windows NT is different. It has its own kernel API, but that is private and not officially documented outside MS, AFAIK. It supports personalities: at launch, it offered OS/2, (complete with HPFS, but not Presentation Manager), Win32, POSIX and a bundled DOS emulator.
It’s an oversimplification to say that NT is a 386 version of VMS. It isn’t. It is a portable OS – it has in its history run on Intel i860, SUN SPARC, IBM/Apple PowerPC, SGI MIPS, DEC Alpha, Intel x86-32, x86-64 and Itanium, and most recent addition, ARM.
It has 2 parents: OS/2 and VMS. It inherited some code in the early days from OS/2, because MS co-owns OS/2. That’s why IBM can’t open-source OS/2. It doesn’t inherit code from VMS, because VMS was DEC property, later Compaq, later HP, and now VMS Software Inc. However, as the Windows IT Pro article makes plain, it inherits a lot of concepts and terminology and even filenames – but VMS was not conceived as a portable OS. VMS was co-designed with the DEC VAX minicomputer. Later it was ported to DEC’s Alpha RISC CPU, and later again to Intel Itanium. VMS Software is currently working on porting it to x86-64 and apparently this is not a trivial job.
Great write-up, again.
VMS was not conceived as a portable OS
Indeed, but it’s become more portable with age. For example, the port to Itanium was done fairly quickly. I’m not sure why the VMS Software port to x86_64 is taking quite so long - perhaps it’s because they need to support a wider variety of hardware, hardware outside of their control? They’re also adding a fair amount of support for running virtualised, which means supporting things like the KVM virtio interfaces.
Thanks for another enlightening round of history. :)
I found OS/2 to be clunky, and with NT, basically obsoleted. The only things it really did better were DOS compatibility and resource requirements - once those started to matter less, OS/2 became less relevant.
Particular pain points for OS/2 include byzantine installing and updating and a piss-poor networking stack.