Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

>At IBM’s insistence it was designed to target the 286 protected mode.

> Bill Gates grumbled a lot about that,... And he was right because no interesting applications emerged for OS/2 1.x

286 protected mode wasn't the issue... Windows 3.0 was also largely built around 286 protected mode and it's where most of the interesting PC application development happened for years.

OS/2's early issues were really related to the cost of the OS (x2-3 windows), the equipment needed to run it (at least 3MB RAM), and delays in both the networking and GUI capabilities. OS/2 also required a wholesale commitment to use it, due to the lack of a decent DOS story, which is in contrast to Windows (that ran on DOS, more or less).



This is a good point. But there’s a nuance in that OS/2 1.x used 286 protected mode the way Intel had intended it, by booting into it and never returning to real mode (which was supposed to be impossible).

Whereas Windows 3.0 was a so-called DOS extender: it switched to protected mode for an application but could also come back. That kind of execution model wasn’t envisaged in 1985 when the OS/2 project started.

Steven Sinofsky writes about it in his personal Microsoft history:

’DanN shared with me what he was most excited about—one of the key “secrets” of Windows 3, which was how the product enabled protected mode but could also remain compatible with old MS-DOS programs. David Weise (DavidW) and Murray Sargent (MurrayS) had invented some novel uses of the Intel chipset that even Intel did not anticipate, which enabled these efforts. One programming trick called PrestoChangeoSelector was a key “hack” they developed and later became an absurd symbol of “secret” application programmable interfaces (APIs) in Windows (absurd, because it was supposedly secret, when in fact it was right there to see). Dan told this story with great Microsoft pride, as the development of Windows 3 and these techniques represented much of what Microsoft did so well in those days. Hack.’

https://hardcoresoftware.learningbyshipping.com/p/003-klunde...


> But there’s a nuance in that OS/2 1.x used 286 protected mode the way Intel had intended it, by booting into it and never returning to real mode (

OS/2 had the ability to run DOS programs in a DOS box. my recollection was that OS/2 had to switch back to real mode to do this (thereby suspending all the OS/2 native processes.)

Windows 3.0 in standard (286) mode did something similar.

All this was done with triple faulting, iirc: http://www.rcollins.org/Productivity/TripleFault.html

> Steven Sinofsky writes about it in his personal Microsoft history:

You might like Larry Osterman's recollection of this, if you haven't already seen it:

https://www.landley.net/history/mirror/ms/davidweise.html


OS/2 1.x did switch from protected back to real mode by resetting the CPU, in order to run a single DOS application in the "penalty box". Device drivers even had to be able to run seamlessly in both modes!

That article is paywalled, but what you quoted reads like pure bullshit. PrestoChangoSelector was used in protected mode to make code segments writable, and had nothing to do with DOS compatibility:

https://jeffpar.github.io/kbarchive/kb/089/Q89560/


You are getting cause and effect backwards.

> 286 protected mode wasn't the issue...

Yes, it was. I evaluated OS/2 1.0 professionally, when it was new; did you?

The 286 protected mode was an issue, because it meant that OS/2 could not multitask dos applications — exactly as Concurrent DOS could not on the shipping 286 hardware.

> Windows 3.0 was also largely built around 286 protected mode

Not really, no.

1. Windows 2 had an edition built around 286 protected mode. This was nothing new for Windows 3.0. The problem is that the 286's protected mode didn't deliver anything that was very useful for dos applications, and in the 1980s, DOS applications were the sole driving factor behind the PC industry.

In fact, Windows/286 actually delivered one main benefit: you got an extra 64 kB of RAM. That was it. It wasn't really worth having.

Windows 2 also had a 386 edition, generally known as Windows/386. That delivered the core functionality that was the useful thing in the 386 in the 1980s: hardware assisted multitasking of DOS applications.

2. You cite Windows 3.0, but that's not relevant to a discussion of OS/2 1.X, because Windows 3.0 is what happened as a result of OS/2 1.X.

OS/2 1.x was a 1980s product. Windows 3.0 came out in 1990, a few months after OS/2 1.2. Windows 3.0 happened in response to the failure of OS/2 1.X, and OS/2 1.X failed because it ran on the 286 processor, when it should've run on the 386 processor — as Microsoft wanted.

Windows 2 was able to multitask dos applications, in software, but the problem with doing it that way is that they all had to fit into 640 kB of RAM. And by the late 1980s, a single DOS application barely fit into 640 kB!

Windows 3.x was able to multitask DOS applications as well, and it could do it on 8086, on 286, and on 386. The difference is that on a 386, each DOS application got it own 640 kB. So if you had 4 MB of RAM, you could multitask a whole bunch of them.

And it sold because the single same edition ran on all three processors, so you didn't have to choose which one you needed in advance, and buy the right product. The one product did it all. And if you upgraded the hardware, you got the additional facilities, with that same copy of the software. (Remember, no product activation in those days!)


> Yes, it was. I evaluated OS/2 1.0 professionally, when it was new; did you?

I was 12, so just a user and programmer. (Dating back to Windows 2.11)

> 1. Windows 2 had an edition built around 286 protected mode. ... In fact, Windows/286 actually delivered one main benefit: you got an extra 64 kB of RAM.

Windows/286 didn't use protected mode, all it let you do is run in real mode with A20 unmasked. (Which is where the extra almost-64K came from). Probably did terrible things for the marketing of 80286-specific software for a while.

Windows/386 did use protected mode to run multiple DOS apps, but the Windows subsystem ran just like any other DOS app - in real mode.

It was Windows 3.0 that migrated the Windows subsystem over to protected - mostly with existing apps. You run Excel on Windows/386, you have 640K + whatever EMS you might have. You run Excel on Windows 3.0 (even on a 286) and you have direct access (albeit segmented) to the full installed RAM. You're right, though, that none of this helped DOS apps.

> Windows 2 was able to multitask dos applications, in software, but the problem with doing it that way is that they all had to fit into 640 kB of RAM.

I've done this with DesqView on an 8088 also. It worked well enough to run a couple BASIC interpreters, although it wouldn't have been useful at all for anything real.

It was interesting to play around with the total lack of memory protection. The two BASICs (with the same DEF SEG) could easily be able to share data with peeks and pokes to the same memory location.


But Windows also didn't have decent DOS story until Windows/386.


There were a couple things Windows did better regarding DOS when compared to OS/2:

* Windows ran on a DOS file system, so data portability was transparent.

* You could easily quit Windows to get back to something close to whatever DOS environment you had before.

* There was a runtime version of Windows that could be packaged with applications (Excel mainly, iirc) to make it possible to sell Windows apps to DOS users.

* Windows had support for LIM/EMS (which users might already have to run large Lotus 1-2-3 spreadsheets).

None of this was a great way to run DOS apps under Windows, but it did make it easier to transition from DOS to Windows slowly, without a wholesale jump, and the risk that entailed. It was easier (and cheaper) for a DOS user to experiment with Windows than it was with OS/2. The lower barrier to entry is worth a lot.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: