OS/2 2.0, Summer ’91 Edition
os2museum.com
os2museum.com
The next thing I liked and adopted was Windows 2000, the less-sucking NT. We have come a long way since then!
I used OS/2 2.1, 3.0, 4.5 and eComStation (latest stint was probably at the beginning of the century). It was a profoundly singly-user system that crashed quite often, putting it pretty much on par with Windows 95/98/ME.
Windows NT 4, FreeBSD, and even BeOS were far more stable and modern operating systems than OS/2. NT 4 also had far better application support than OS/2 and BeOS had the nicer GUI, filesystem, better multithreading, etc.
Although OS/2 is a bit of youth nostalgia for me, anyone with an objective view would acknowledge that OS/2 was a 16/32-bit patchwork single-user OS that was not ready for the future. Microsoft made the right choice ejecting itself from the project and running with what was originally planned to be OS/2 3.0.
Typical conversation:
"Why the hell does..."
"Microsoft."
"Right."
People do this. I've seen this happen in places that have nothing to do with IBM or Microsoft. Problems and misfeatures are all the fault of that group of incompetent outsiders in that company over there that we have a business deal with. It is rarely actually true, in my experience.
This is another myth, long since debunked (I saw this one debunked in the early 1990s.) to resurface here all of these years later.
OS/2 had multithreaded input handling. Every application had its own event queue. Indeed, Presentation Manager allowed every thread in every application, that actually used Presentation Manager, to have its own event queue. A PM thread first created an "anchor block", then using (its handle to) that anchor block created a message queue.
What OS/2 had was synchronous input handling. Windows NT has desynchronized input handling.
The idea that "OS/2 had a single input queue" whereas "Windows NT has multiple input queues" is an erroneous one based upon an erroneous description of the twain. In fact, both Windows NT and OS/2 have a single system input queue. In Windows NT, this is called the raw input queue, and by the same erroneous logic that OS/2 "had a single input queue" so too does Windows NT, because the queue that people point to as the supposed reason that OS/2 had one queue is the OS/2 equivalent of that raw input queue.
It is not the number of queues, and never has been the number of queues. Presentation Manager had multiple event queues. It is the synchronous nature of processing input events versus the desynchronized way of processing them. This deals not in the number of queues at all, but in how the GUI model copes with things that need synchronization amongst multiple applications, such as (for example) all of the messages that fly about under the covers (amongst those multiple queues) as part of a keyboard focus change.
[0] https://en.wikipedia.org/wiki/NeXTSTEP
Bonus irony: The pioneering PC games Wolfenstein 3D, Doom (with its WAD level editor), Doom II, and Quake (with its respective level editor) were developed by id Software on NeXT machines.
MS has excelled in getting price, (backwards) compatibility and system requirements correctly. That's why they moved slowly at the time and still do in some regards.
OS/2 was merged into Windows NT which is what almost everyone is using on desktop these day. IBM even tried giving OS/2 for free (Warp or 2.1, can't remember, you could get it by sending a coupon to the publisher), but the lack of compatibility and system requirements killed it. I remember booting it on a 486/33 + 8MB, yuck. Contrast that to almost instant startup of DOS and the requirements of an ordinary user.
Also, IBM sold PS/2 (or something like that) with OS/2 preinstalled... It booted like forever and there was zero software available for the home-user.
And was like 500 € (on today's money) more expensive than a PC compatible with similar specs.
Only one IBM dealer was selling PS2 with them.
OS/2 2.0 wasn't nowhere else to be found and I didn't knew anyone to get me a pirate copy of OS/2 2.0 just to try it out on a PC clone.
So regardless of you calling me a liar, in 1992 on a small Portuguese town, getting OS/2 2.0 on a legal way, required buying a PS2 with it bundled at the local IBM dealer.
And for what I could remeber it was pretty much like that across the country until OS/2 Warp got released.
This was written in 1995, and was far from the first debunking of this myth:
* http://www.mit.edu/activities/os2/faq/os2faq0201.html
The unwillingness of that one IBM dealer was almost certainly far more to do with the structures of the Microsoft licensing deals for pre-loaded systems than any mythical requirement of a PS/2. This came to light some years later; around the time of the US DOJ anti-trust case.
To learn how for a quarter of a century you've erroneously been ascribing things to the myth that OS/2 required a PS/2 when in fact your one IBM dealer was merely part of a larger and complex picture of licensing deals and royalty payments involving pre-loading Windows on IBM machines versus pre-loading anything else, start here:
* http://news.bbc.co.uk/1/hi/business/368660.stm
* http://www.theregister.co.uk/1999/06/04/ibm_witness_the_insi...
There is a lot more to read than just those two, of course.
I think that says it all right there. In 1994 I was still very young, learning DOS on my mother's old 80286 she'd purchased for work in the mid 80's. I'd had some exposure to Win3.1, but Windows 95 was when I thought the future had arrived.
I was ignorant; but it was more highly polished (than Win3), just looked easier, and it had much greater market exposure because of the business world. It had a few stupid games, could still run most DOS applications (at my age, games), and a clean up of the skeuomorphism that had arrived in the other OS's at the time. Everybody knew what NOTEPAD.EXE did.
Sure you could say the same for Mac, NeXT, OS/2, and pretty much whatever GUI was popping its head up at the time, or eventually.... but my parents didn't know what a Mac was. They weren't cool. Or wealthy.
Queue: what's available for purchase for uncool people in rural Canada who still have technological wants.... and nothing.
Getting that price point down was key in pervading such a wide variety of demographics in the marketplace, and getting the home, unwitting user, hooked; for better or for worse.
Sortof yes, sortof no. Microsoft's relationship with IBM was damaged by this point, and they had hired Dave Cutler to start work on NT in 1988 (the breakup happened in 1990). There were stories about Microsoft starting newly hired engineers on the OS/2 program to get them up to speed on 32-bit event-driven programming, then moving them to NT after IBM effectively paid for their training.
You needed an i486 DX2 with at least 8mb and 120mb drive to run OS/2 effectively. This was a high-spec machine back then - not cheap.
I still have my OS/2 Warp t-shirt somewhere in the back of the closet...
http://windowsitpro.com/windows-client/windows-nt-and-vms-re...
I'm still looking for how much of OS/2 made it into NT. I know NT had an OS/2 subsystem which is an obvious candidate. What I did find is that Windows NT was developed on OS/2 computers. They also had to be forced to give up OS/2 & dogfood on Windows NT. They didn't want to lol.
* a master file table (INDEXF.SYS => $MFT)
* ACLs, with a system of ACL-bypass privileges
* a whole bunch of special files, with known fixed entries in the MFT, including a block bitmap file and a bad block file (BITMAP.SYS => $Bitmap, BADBLK.SYS => $BadClus)
In contrast, there are significant dissimilarities with HPFS.
My favorite part is how NT didn't directly use CONFIG.SYS — but, if you edited C:\CONFIG.SYS from an OS/2 editor, NT would render a "stub" CONFIG.SYS file from the OS/2-specific settings from the Registry; then, when the editor saved the file, it would translate those settings back into appropriate Registry keys!
Another interesting tidbit: Up through NT 4.0, Microsoft sold the "Windows NT Add-On Subsystem for Presentation Manager" that let 16-bit OS/2 GUI apps run on NT.
So much work went into the OS/2 subsystem, but I can't imagine it was important at all to NT's eventual marketplace success.
It was even the reverse that is true. MS support of Win32 instead of OS/2 PM was a strategical choice, and the market and dev strategy was structured in concert. OS/2 did not had a good enough market share, compared to the Win API - hypothetically and then in practice. For Win16 it was not a concern because both could run that well (enough) - and OS/2 used a licensed Windows 3 copy to do that, but then came Win32. Given codevelopment between MS and IBM was not working well, MS used NT retargeted mainly to Win32 in part to kill a competitor, from after they parted ways, on that market.
The strategy has been successful.
At the very beginning, NT was developed as NT OS/2, targeted for OS/2 v3.
Then MS and IBM parted ways, and NT was retargeted to Windows NT (with a Win32 API as the main userspace). Then initial plan was already to be able to support the OS/2 API and at least Win16, anyway, so the idea of classic NT subsystem could be leveraged and the retargeting was not too painful. Also, IIRC it happened relatively early in the development process.
At the very beginning, the initial team used OS/2 hosts, because obviously they had to have some dev hosts... But soon enough they self-hosted. The idea that they did not want to is far fetched. At most maybe they did not want to do that too early, which is understandable. NT was soon vastly superior to OS/2, so I can not imagine any reason for devs to want to stick to that legacy host...
Russinovich claimed it is in the linked article with evidence they even have similar internals just renamed. He's the goto guy for information on Windows Internals. DEC claimed same thing in lawauit. So, what evidence do you have that Windows NT kernel wasn't a reimplementation of OpenVMS design with modifications?
In a similar way, Microsoft Word no doubt has "architectural and design influences" with Bravo (thanks to Charles Simonyi), but it would be false to conclude that Word is "a modified version of Bravo".
Very little, and the code re-use was pretty much nil.
The OS/2 subsystem in Windows NT only implemented the 16-bit OS/2 API. It only implemented the base CP API, not implementing the 16-bit Presentation Manager API at all, and not even implementing all of that base API.
Moreover, Cutler re-implemented the things needed by that API from scratch. He quite famously railed against the OS/2 mutex abstraction, naming his re-implementation in Windows NT a "mutant".
It was the team work of all these people together that brought NeXTSTEP to life.
You cannot ignore the human aspect of it.
Also Apple never was a UNIX shop, A/UX was just a distraction they never cared much about.
Bill Gates and Paul Allen originally wrote Altair BASIC using an Intel 8080 emulator running on a PDP-10 at Harvard University. PDP-10 was a mainframe computer by Digital Equipment Corporation (DEC).
To develop something ground braking, that is clearly ahead of its time (competition) it helps a lot if you have access to better computer resources than others.
Maybe. The reason C and UNIX existed was because they didn't have enough resources to use clearly better languages or OS design. Richards invented the "programmer is in control" philosophy because his crappy ESDAC couldn't run an ALGOL. Chopped off what couldn't fit until he got BCPL. Thompson and Ritchie modified that into C language to work with a PDP-7 and PDP-11. Likewise, after working on MULTICS, Thompson chopped off [good] features of MULTICS trying to fit UNICS, err UNIX, into those same machines. Originally implemented in assembly language since early versions of C were too primitive to get the job done. Final version of C was way less sophisticated than competition doing things like ALGOL or Pascal.
Market demand, accessibility, and social effects that cause spreading seem to combine to increase odds of success more than what hardware is available.
OS2/2.0 required a 386 with 8M memory. Windows 95 only required 4M memory.
In practice of course Windows 95's real competition was OS2 Warp after a year or so, and it was even less of a competition. OS2, incidentally would barely run on 8M ram. It was ... workable, but with WordPerfect open in windows 3.0 with a large document, it was not enjoyable. In practice OS2 required 12M memory. Windows 95 with 4M ram was very slow to start, but once started it ran WordPerfect quite acceptably on 4M RAM.
It's not quite as bad as those people wondering how windows could possibly have beat the superior unix. Problem is that, like with OS2, windows was quite superior to Unix and OS2 in features available to end users, and the price for those. It provided far more value (things you could do with your pc) for any price. Unless you were developing compilers, perhaps. When comparing value for money, Windows won by a landslide. OS2 and Unix were superior in theoretical and academic features.
And today, the reverse is true. Windows actually is a microkernel with message passing. It's not as tiny as something like L4, but it's much smaller than Linux. Microsoft was much more on-point when it came to what the market needed. Today, windows has the academically "superior" kernel. And it matters about as much today as it mattered in 1995.
And even would it be true, this does not translate in any way into complete Windows systems being more lightweight than complete Linux systems.
As for the supposed academical "superiority", maybe you can explain further in detail on which points?
And that's the point where you went wrong. (-:
It is wrong to assert that Windows NT has no message passing "at all".
The original design of Windows NT had applications opening LPC connections to a server process, the Client-Server Runtime SubSystem, and sending it messages for many API calls. Although the graphics system has since moved into the kernel and then partly moved back out again, some of this application-mode message passing to a CSRSS server process remains in Windows NT even to this day. All interaction with the LSASS is also client-server application-mode message passing.
And there is a lot of message passing inside the kernel. The entire I/O subsystem involves passing around IORPs, which are messages.
I do hope some of the next-gen have a go at a new OS instead of building yet another JS or CSS framework - right now everything is a compromise and only 10% of the functionality is ever used - it's an open goal - the prizes are enormous
Maybe I'm missing something, but with the advent of VR, AR, and (I could be reaching here...) Neural Lace, I think we might see greater strides made in application of any interface theories outside of the OS, or above it.
The next-gen will probably be looking to improve upon higher-level OS interaction, like Siri. So people don't have to understand the technology (even less than they do now) to take fuller advantage of the power of the technology.
That's just a few off the top of my head. If it's a netbook for browsing, it might also use something like Illinois Browser Operating System (IBOS) as its base. Definitely throw in a NUMA chip on the high-performance version, too, so I can finally have me a modern SGI Onyx2 or Altix with 256+ CPU's, TB's of RAM, several GPU's, and a bunch of FPGA's. All hotswappable so my games, simulations, or recompiles of kernels aren't interrupted by mere hardware failures.
But it sounds like you're pointing to applied-need systems, like POS or IOT situations. I can see the usefulness there, completely.
I guess I meant more in the mainstream realm, replacing readily what consumers would opt to use.
I am going to have to read up on a number of the items you raised, thanks!
https://news.ycombinator.com/item?id=10957020
Idea was whether there were better architectures.
all roads lead back to where it all started - that higher-level OS interaction cul-de-sac - it's a cul-de-sac
but what if it is a surface layer built out of those languages and frameworks? Even if it's not optimized and technologically eloquent, it's already being rammed through now with libraries like Google's A-Frame.
Myopic maybe, but only from a select perspective. Those languages have been the most democratizing in CS history. They're the ones a lot of people seem to be the least intimidated by, at least at the outset.
I'm sure it will come back down to lower-level work because the higher level processes will soon require it. That said, I don't personally foresee some new, young group yet writing a viable alternative to Windows, macOS, Linux or any variants thereof. There's little point, and the battle would be a hard one to win. It's much easier to tame new ground in order to make one's place. That aspect shouldn't be underestimated in its influence.
People who lived through the home computer revolution would probably suggest BASIC for that title.
BeOS made some terrible mistakes (gcc version depend C++ ABI, for example, and all of that at a time the C++ language was quite terrible) but was otherwise an interesting and refreshing OS, with cool ideas and goals.
NextSTEP was mainly just a Unix system with Objective-C framework in upper layers. It gave us OS X. Obviously it was superior to Consumer Windows (but that comparison again is strongly biased given it did not target the same computers at all), and it can be debated to hell whether it was superior or not to NT (depends on which aspect you care about, probably).
NeXTstep, even after the hardware platform it was made for failed, was achieving some success in the enterprise market as an aftermarket OS, before Apple bought the company, made it exclusive to Apple hardware, and called it OS X.
It's kind of hard to call that a failure.
Unlike Windows NT, which I blue screened when I sat down in front of it that first time.
I'd say it was more killed by IBM's woefully inadequate developer support and indifference to serious marketing. Windows 95 just happened to be the first thing better than Win 3.1 that came along and was actually supported and marketed, and so by default took the market that could have been IBM's.
Some examples of how poorly IBM handled developers and marketing.
• A columnist in Byte (if I recall correctly...probably Jerry Pournelle) wrote of visiting a major trade show where both Microsoft and IBM had booths. This was after Warp launched, and before Windows 95 launched.
He went to the IBM booth, where they were promoting Warp, and asked what he needed to do in order to develop for it. They told him he needed to become a registered developer to get access to the tools and documentation, and give him an application to fill out. The application required explaining in detail what you proposed to developer for Warp, and your business plan, and so on. Fill all that out, and if IBM deemed you worthy you would be allowed to spend a lot of money to buy the SDK.
He then went to the IBM booth and ask what he needed to do to develop for Windows 95.
Microsoft handed him a CD with the tools and documentation on it.
• Later, once both operating systems were out, Microsoft continued to make it much easier for developers to get on board. I remember walking into Egghead (a major retail software store in the '90s for those too young to remember when we actually bought software from brick and mortar stores) and seeing for sale at retail Microsoft's Visual C++ and MSDN. You could just walk into Newegg, put down some cash, and walk out with everything you need to get started writing software on you Windows 95 box.
How about for OS/2? Nothing from IBM. You could buy Watcom C/C++, which was cross platform (it supported DOS, Win 3.x, Win 95, Win NT, some 32-bit DOS extenders, and OS/2, and maybe even Novell Netware), and Watcom had licensed a subset of the OS/2 developer documentation and included it on the Watcom CD, so you could at least get reasonably started, but you'd be back to applying to IBM for developer status if you wanted to go farther.
• There was very little promotion of OS/2 at retail. Walk into Egghead or Computer City or CompUSA and you'd find the latest Windows on an endcap near the front of the store. You'd find OS/2 on the bottom shelf in the darkest corner in the most remote part of the store.
Why? Because IBM did not pay for in-store promotion of OS/2. In retail stores shelf placement is for sale. You want your product on an endcap, or on a chest height shelf in a high traffic part of the store? You get that by paying for an in-store promotion campaign.
• Microsoft would watch what new things developers were doing for Windows 95, and would pick some and promote them. Microsoft understood that it was applications that people wanted, not operating systems, so promoting Windows 95 only applications that people would want also promoted Windows 95.
IBM did much less of this. I recall a little of it for some business software, but they didn't do much for consumer software, especially games. Overall IBM seemed pretty indifferent to what most OS/2 developers were doing.
• This doesn't fall under developer support or marketing, but another big problem was hardware support. I remember at one point I was trying to multi-boot between Windows, OS/2, Linux, and FreeBSD, and it was going fine for everything except OS/2. I could not get OS/2 to go beyond 640x480 with my video card.
I went down to Computer City and bought another card that supposedly had better OS/2 support. No luck. CC had a good exchange policy so I swapped that for something else. Nope. I had to go through many cards before finally finding one that worked.
Most of the cards had been fine in Linux and FreeBSD (and of course Windows). It was only OS/2 that was a nightmare.
IBM's attitude on hardware seemed to be "We're IBM. We're big and important! So all you hardware manufacturers need to sign up to our device developer programs and then write drivers for your hardware!". The hardware manufacturers attitude was "Yeah, we'll get right on that...when you've got a significant market share".
IBM should have have made a list of the top 5 or 10 graphic cards, network cards, sound cards, and so on, and put together a group within the OS/2 group that would sign up for the appropriate developer programs from those card's manufacturers, and then write OS/2 drivers for those cards to ship with OS/2. Someone whose computer contained cards that were all top 10 in their category should have been able to run OS/2 out of the box.
In fact, that "We're IBM. We're big and important!" attitude seemed to permeate their entire handling of OS/2. They expected us to beat a path to their door and beg for the privilege to develop for, sell, or use OS/2.
Microsoft (and Apple, BTW) had much better attitude.
• What's really annoying about all this is that Warp was out well before Windows 95, and Warp did an excellent job of running DOS and Windows 3 software. When I had to do DOS or Windows development back then I did it on Warp because it made a better DOS and Windows development and test environment than did native DOS and Windows.
Microsoft was starting to tout the advantages of 32-bit software ahead of the Windows 95 launch in order to push people toward upgrading. IBM should have jumped all over that, pointing out that you didn't need to wait for Windows 95 to get 32-bit. Get Warp now and you can start using 32-bit now, while keeping all your current 16-bit stuff. Position it as having all the 32-bit advantages of Windows 95, but with better support for your existing 16-bit stuff.
Hardly any software (not to mention games!) was available for OS/2. We only used Lotus natively. The fact you could run Windows 3.11 from within OS/2 saved it from being discarded earlier.
I set up dual boot into Windows 3.11 and it loaded an order of magnitude faster.
OS/2 was perhaps technically architected better, but for real-world home use: useless.
a few months later I got a letter back thanking me and noting the letter got published in some staff magazine and some software would follow
an enormous package arrived soon after full of IBM OS/2 and commercial development tools - my IBM PS/2 55SX wasn't even up to installing the OS - but full credit for trying
https://www.landley.net/history/mirror/os2/history/os220/ind...
http://www.os2museum.com/wp/os2-history/os2-2-0/
> IBM was selling OS/2 2.0 versions on 3½” and 5¼” HD floppies as well as CD-ROM versions, although CD-ROM drives were far from common in 1992 and OS/2 2.0 only supported a few SCSI CD-ROMs. The tested version was delivered on 3½” floppies, 21 disks total.
I had this exact set of floppies.
We have it pretty easy these days, when even the worst Chinese piece of junk can be assumed to get onto a WLAN and connect to a singular global network. No protocols to configure, no add-on software to install.
Rexx was one of the reasons I liked the looks of OS/2. ARexx had been shipping with Amiga OS since 2.04, and while I only occasionally used it directly, it enabled a lot of cool stuff between applications (directly sharing data between apps was neat, and ahead of its time).
Honestly, I don't think UNIX was actually better on that front, at the time. I never actually used it on OS/2, but on Amiga OS it was sort of universally accepted as The Way for applications to interact and for users to automate their applications. Even today, we have tons of scripting languages, often integrated into bigger applications, but not a lot of standardization between them. So, there's a lot of friction in getting a program that uses, say, Lua as its scripting and automation language, to communicate with a program that uses, say Scheme or Python or Perl or Ruby. UNIX had the command line with pipes paradigm, which I guess was universal-ish, but didn't play well with big GUI apps.
So, yeah, Rexx was pretty neat, for sure. It might even be a useful source of inspiration today (even if the language is a little clunky compared to modern scripting languages).
Historical minutia c. 1994:
Fry's Electronics botched the OS/2 Warp launch by misspelling, in 192 pt red font, "OS/2 WRAP [sic]", not once but 3-4x IIRC in their full-page SJ Mercury News ad.
When they split, IBM kept the 286 fork (which became 2.0) while Microsoft kept the 386 fork (which became Windows NT).
Windows was a Microsoft product already before the OS/2 development deal happened. The plan was always to have a more or less unified GUI in Windows and OS/2, following UX standards defined by IBM. This did happen -- Windows 2 and OS/2 1.2 had almost the same look and feel, as well as very similar APIs (both 16-bit).
2.0 was always intended to be a 32-bit operating system, and Microsoft was responsible for its development initially. NT was a new kernel that was supposed to become OS/2 3.0 for a while.
http://toastytech.com/guis/os211cpl.png
https://www.cs.umd.edu/hcil/muiseum/systems/win2/01.gif
OS/2 1.2 added the style that would become Windows 3.0's, with beveled buttons and so on, while Windows 3.0 upgraded to the proportional font (System) that OS/2 had been using.
The only software I've got nostalgia towards, is anything related to gaming as I grew up: C64, Amiga then PC finally took over until this very day.