Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the board
Thread view  Mix view  Order
Rugxulo

Homepage

Usono,
05.08.2011, 23:36
 

IBM PC turns 30 (Aug. 12, 1981) (Users)

http://en.wikipedia.org/wiki/IBM_PC
http://en.wikipedia.org/wiki/Comparison_of_x86_DOS_operating_systems

Note that I'm a week early, but since the other thread has gotten pretty long and seemed to drift off into "why did MS do this, OS/2 that, 286 this, etc.", I decided to "fork" it here so we can discuss it better. I mean, why wait a week? :-)

P.S. Although I used our old Apple IIc somewhat when I was little, my first IBM PC was in 1994 (486 Sx/25, 170 MB HD, 4 MB RAM, CD-ROM drive, mouse, SB16 [Dr. SBAITSO, anyone?], Win 3.1 + MS-DOS 6.00, King's Quest VI ftw!). So clearly most of my knowledge is second-hand and only in hindsight (in particular since I just "migrated" to age 32-bit, heheh).

Rugxulo

Homepage

Usono,
06.08.2011, 00:43

@ Rugxulo

IBM PC turns 30 (Aug. 12, 1981)

Lots of comments, where to begin ... :-P :-D

> If MS and IBM contined work on OS/2 and spread it I would probably
> don't know what the DOS is :)

That was the whole point: "A better DOS than DOS, and a better Windows than Windows." They wanted DOS 4 to be the last cmdline OS ("obsolete"), but that never happened. OS/2 first appeared in 1987, three years after the PC/AT (286) and had lots of improving to do. In particular, the whole "penalty box" and high cost of RAM didn't help anything. (Supposedly there was even a RAM shortage in 1987-8.) Gordon Letwin (of MS, OS/2 fame) has said in interviews that they thought OS/2 overcoming the 640 kb limitation [N.B. an IBM PC limitation, not 8086's fault, Tim Paterson easily used 1 MB on his machines] would've sold it, but they didn't anticipate DOS extenders! ;-)

> Back when Intel released the 80286 CPU, everyone was waiting for a
> new OS that would take advantage of the chip's abilities. AT class
> machines essentially just became fast DOS platforms.

The 286 came out in 1982, only a year after the original IBM PC. I'm not sure, but I guess IBM was only targeting businesses initially. Anyways, nobody had jack for RAM at that point, 64 kb to 128 kb was common. In that case, you really really really don't need a 286 (or thus OS/2).

> OS/2 was supposed to be that OS, but IBM and MS couldn't agree on
> direction. MS wanted to skip over the 286 and develop for the
> 386 instead. IBM said "No, we're developing for the 286."

I don't think that's true. Bill Gates did allegedly say the 286 was "braindead" for not supporting DOS better while in pmode. But if MS was so against 16-bit, they wouldn't have supported Win 3.x for so long.

IBM sold a lot of 286s and pledged long-term support for them. In fact, I think MS did (almost?) all the development of OS/2 1.1 (or such), which was entirely 16-bit. In fact, I don't know if MS had any hand at all in (later, 32-bit) OS/2 2.0. In fact, I guess they couldn't as they'd already split (1991) before then (1992).

> In retrospect,
> this was an error. While the 286 offered additional capabilities, it
> was essentially a transitional step, and the 386 was a far better platform.

I don't think they meant it to be transitional. 1982 to 1986 is a long time. You can't gloss over that R&D, software tools, etc. Sure, in hindsight, everybody says the 386 was better, but it came about gradually, not overnight.

Besides, anybody who could live with an 8088 w/ 1 MB of RAM could live with an 80286 w/ (ideally) 16 MB! It would've seemed insane to suggest higher in those days. In fact, I still think it's insane that we "need" greater than 4 GB nowadays (and multi-Ghz cpus)! It just blows my mind.

> While the 286 had features, it had limitations. Like you could only run
> one "real mode" application at a time,

You could only run one app at a time, real mode or pmode! Task switching ftw! Still better than nothing! Besides, even 386 cpus just switch tasks in the background on you, so it's not "real" (?) multitasking. A lot of local ads, when multi-core first came on the scene, started saying, "Finally, TRUE multitasking!" But does it matter? It's (almost) all the same to the end user anyways: whatever works.

> and while there was an instruction
> to enter Protected mode, there was none to leave it - you had to do a
> CPU reset.

LOADALL also existed (but undocumented) and was used by a lot of MS software, so much so that 386 and 486 BIOSes all (allegedly) had software emulation for it. (And that's not counting the newer LOADALL386). But modern cpus don't support either instruction anymore (I think??), possibly due to US DoD recommendation (eh??).

BTW, I've read that newer PS/2 models had faster mode switching to help speed this up (presumably for OS/2).

> There were a couple of early attempts to port Unix to the
> 286 that had problems because the chip didn't offer the sort of
> hardware memory mapping and management something like Unix really needed.

Right, no MMU, or such, which was later (386) useful for things like EMM386.

> If OS/2 had been developed for the 386 in the first place, and IBM and
> MS had been able to maintain their collaboration, we might all be
> running it now. In many respects it was technically superior to Windows.

Pre-emptive multitasking, threads, no 640 kb limit. But a few MS developers (on the side) developed Win 3.0, which was a huge success, but it pissed off IBM. So IBM (allegedly) wanted them to a). drop all Windows support, or b). make all Windows APIs backwards incompatible or only for OS/2 or such. MS allegedly "refused" ("we care about our customers' software"), so they were "fired" (1991). Of course, I don't think they minded, really, they wanted it all for themselves anyways (e.g. NT 3.1 was their 32-bit pre-emptive OS headed by ex-VMS dude Dave Cutler).

I saw some old OS/2 ad somewhere (YouTube?) where they bragged how you could print and do something else at the same time. That was a killer feature, apparently, vs. Win 3.x (though I can't remember exactly).

> The final nail in OS/2's coffin was IBM's decision not to provide
> support for 32 bit Windows applications. You still find it around.

I don't think they had a choice! When MS split (fired?) in 1991, both sides had full sources to MS-DOS 5.0 and Windows 3.0. But I think IBM still had to pay royalties and licenses for it. So that was probably expensive. Also, IBM had to develop their own "fork" (newer PC-DOS versions) and add-on to OS/2 2.x / 3.x / 4.x. I'm sure they would've liked Win32, but they didn't have any way of implementing it (at least not easily). MS "controlled" the "standard", which was their way of not "dying out" like OS/2 ("too compatible" for its own good).

> The last I knew, the ticket kiosks in the main railroad station here
> ran OS/2. I used to have an OS/2 server at a former employer for
> a specialized telephony application. It just ran. It there was a problem,
> reset it, and it took up where it left off.

It was allegedly more stable than Win 3.x, that's for sure. Win 3.0 was initially planned to be a DPMI client app (and Win16 apps used DPMI internally), but later they changed their minds. (Even OS/2 later added DPMI support in 2.x.) It's half-true that it was a DOS extender, but unfortunately, it wasn't perfect (esp. Win 3.0 had more bugs than later versions). But the DPMI spec was new (and "better" than VCPI) and they needed some way for DOS apps (esp. 32-bit) to cooperate with Windows. Win16 apps could multitask in 286 mode, but DOS couldn't except in 386 mode. (And keep in mind that despite designing DPMI, MS never bothered implementing the 386 version [DPMI 1.0] in any Windows. Even OS/2 only halfway did [literally, they support the non-existant version 0.95, heheh].)

Of course, if you believe the hype, Win95 (Win32 console) obsoleted DOS (while still using DOS to boot and do some underlying services). MS would claim that Win95 was "better" with its GUI and bundled drivers, thus making development easier, but really it was just a (successful) grab for control of the then-booming DOS market (e.g. Doom [1993] used Watcom and Quake [1996] used DJGPP).

> In this I would agree MS :) 286 PM was crappy hybrid

Crappy? Hybrid? How so? I'm not directly disagreeing since I probably know less than you, but it surely doesn't seem like a hybrid. It wasn't a compromise either, just a "natural" (?) extension to add protected memory and also extending beyond 1 MB (up to 16 MB). Consider that 80286 was from 1982, PC/AT was 1984, 386 and VCPI and PharLap was 1986, OS/2 was 1987, Win 3.0 and DPMI was 1990, and Win 3.1 (last to support 286?) and BP7 was 1992, you can see that things developed slowly over time.

> and 386 PM still
> suffer with some legacy due to 286 compatability (like decriptor
> structures with fragmented 32bit address and other fields...).
> Interesting how well OS/2 later utilize 386 (I mean CPL2, so it didn't
> run under some simplified VM)

A lot of stuff in later OS/2 versions was 386 only. I think some internals were still 16-bit. And of course they still utilized a lot of MS code (e.g. HPFS386 driver??).

> Hm, now there's ODIN allowing to run some win32 under OS/2...

Yes, but I'm sure it only runs a small subset. (Though I never had OS/2, so I can't say for sure.) I don't think they got a lot of help from MS for it. :-(

> A father of one of my friend works in a bank where AFAIK they still
> have some machines with OS/2 Warp 4.0. My friend copied install
> diskettes and this is how we meet OS/2 and I must agree that it was
> far beyond over windows...

OS/2 was declared to be the future, even by MS! But later they had disagreements and split.

> But sometimes it happen that inferior product wins and spreads :P

They put a lot of effort into NT 3.1 [1993?], but it used too much RAM and lacked a lot of (then important) DOS compatibility. So they developed and kept up Win9x for a long time (until WinME). Then they (barely) patched up Win2k to be WinXP, and we all lived with that (and mostly successfully) until recently. Then all hell broke loose with Vista on up (and AMD64 doesn't help!).

(split, too long!)

Rugxulo

Homepage

Usono,
06.08.2011, 00:44
(edited by Rugxulo, 06.08.2011, 00:55)

@ Rugxulo

IBM PC turns 30 (Aug. 12, 1981)

> The more interesting question is why IBM chose the Intel architecture
> for the PC, when things like the Motorola 680X0 were out there, with a
> flat, linear address space,

They only spent a year developing the IBM PC, and part of the success was due to off-the-shelf parts (i.e. cheap, easily replaceable). In hindsight, it looks like a weird decision, but they probably already had 8086 experience and/or got a cheaper price. Besides, IBM wanted to copy CP/M (esp. when they couldn't get the real thing), and they had a policy of having more than one fab plant making chips. Who knows, but perhaps Motorola wasn't successful enough in production to meet their needs (or maybe CP/M didn't want to support it, who knows). Well, clearly price and peripheral compatibility was a factor because they chose the (slower, 8-bit bus) 8088 instead of the (faster) 8086. "Use IBM, we support 16-bit, upgrade all your old 8-bit CP/M stuff with ease!"

> unlike the X86 segmented model so beloved of
> DOS programmers. (Six different memory models, depending on the size of
> your code and the size of your data, with a segment on the 8088 being 64K.
> At least on a 386 and above, a segment is 4GB...)

I don't know when all those models first appeared, but surely it was many years later. When the original IBM PC only supported (max!) 256 kb of RAM, you didn't have to worry about it. Esp. when yours probably came with 64 kb, you probably didn't have to worry about models at all! Even 128 kb is easy (small model), not much to worry about.

> Best guess is that they were already familiar with the Intel architecture
> (the DisplayWriter dedicated word processor used an 8086 CPU, with the
> UCSD P System), there were supporting chips and tools available, and they
> wanted to leverage the existing software base from the old CP/M machines
> running 8080 and Z80 CPUs like WordStar and VisiCalc.

(Can't find the link right now, but somewhere on Wikipedia it mentions that IBM had some previous experience with 8086.)

Yes, definitely. I can't remember exactly if 8080 or 8085 was "source compatible", but that was one aspect. Also the explicit CP/M API support (FCBs ftw!) was also promoted as an advantage. CP/M was (apparently) much more limited than DOS 2.0 on an 8088 w/ 256 kb.

> Marketing. IBM was always a B2B company, and never really understood the
> consumer market. OS/2 was superior, but IBM didn't know how to sell it.
> It sold into IBM shops who ran other IBM hardware and software, but never
> really seemed to get a lot of traction beyond it.

They may?? have charged too much for the DDK (vs. cheaper Windows??), dunno.

> The folks behind the popular WindowBlinds Windows skinning package were
> big OS/2 fans and tried to buy it from IBM, but IBM wasn't interested.

Don't forget that IBM is "old school". They recently turned 100! But they sold all their PC stuff (??) back in 2005 to Lenovo. eComStation 2.0 was released a few months ago, but I'm not sure IBM is involved (except via royalties, of course).

> If IBM were really savvy, they'd release it as open source. They are
> already open source players, releasing things like Eclipse and Open
> Object Rexx as open source products. An open source OS/2 might make
> interesting waves in the market.

No, they've said several times they will never do it. I don't know, I suspect they just have no control over the (overall) copyrights, e.g. Microsoft probably still owns a lot (and probably wouldn't give them permission anyways). Not to mention that IBM already suggests everyone migrate to Linux and/or Java anyways.

But they did (finally) open source NetRexx recently. (Though Cowlishaw retired early about two years ago, spends more times flying planes and spelunking, apparently, heheh.)

> A 16-bit "host" OS will probably NOT enable the 64-bit long mode, so
> it will be able to run 16-bit code. :-)

For some reason, unlike 32-bit, which can run in either 16-bit or 32-bit mode, you can't use 64-bit except in 64-bit mode. Perhaps that's due to the kludge of adding to (already almost full) opcode space, dunno.

Face it, they "can't imagine" that we won't upgrade everything to almighty 64-bit. Same as 32-bit upgrade but worse. But what'd you expect, everybody (Windows, FreeBSD/Mac OS X, Linux) was already 32-bit only anyways, so as long as the transition is easy for them .... :-/

> Maybe it was an error to make the 80286 (mostly) 8086 compatible ?

No, but perhaps they shouldn't come out with a new "incompatible" machine every few weeks!! Maybe limit the incompatible forced upgrades to, say, one a year??? :-D :-P

> Or to keep the 64 KiB segment limit ?

They never thought people would get so lazy / greedy / bloated to need gigs of storage or RAM or address space. Also prices were very high. Sure, hindsight is 20/20 ....

> Or to invent M$-DOG and M$-Windaube
> (both were already out when OSama/2 started, and influenced it) ? Or to
> implement support for the old M$-DOG and M$-Windaube legacy crap in the
> new cool OSama/2 ? It's always easy to criticize historical decisions of
> other people :-)

Who's going to rebuild everything for OS/2 exclusively? Why would you? It's just a waste of time. And yet that's what Linux and Win64 want you to do anyways, and yet nobody's complaining (except us). :-(

> So why did M$ and Boreland develop for 80286 for that many years (Win16,
> DPMI16) ?

Legacy. Expensive costs (hardware, development). Not enough RAM to bother doing other stuff.

> You could implement multitasking in RM too (maybe not that reliable) or
> use the new cool PM :-)

Desqview did run in 8086, so did others. But I guess it "wasn't good enough".

> This is afaik all known. IBM simply wanted to clear out 286 inventory,
> and keep the 386 at a premium for a time longer. Nice tiered pricing
> schemes as they were used to in mainframes.

I don't think so. They didn't jump on the 386 bandwagon until later.

> Then Compaq started mass selling 386 clones, and being quite succesful at
> it.

From what I can tell, Compaq had an "exclusive" 386 license with Intel (though they had to [clean room] "reverse engineer" the BIOS). That made AMD mad, among others.

> Because it took some time for 386 to receive full penetration. Also
> the price of memory was still prohibitive. (and 386 OSes ate more memory).

None of the software tools had caught up yet. Besides, why bother with 386 stuff when you can't even use 286 (max. 16 MB) to its fullest? Everybody had 16-bit cpus, only few had 32-bit. Not everybody wanted to upgrade every other week (unlike nowadays).

> I'm not going to argue any of that. I simply don't know enough about 286 PM.

Me either, it's very complicated! No wonder so many people take the lazy way out (386 only)! Actually, these days it's more like 686 (or P4) or higher only! Linux doesn't run in 2 MB (or even 128 or even 512 !!) anymore. :-(

> I did use it, but only to get more memory in Borland Pascal. I don't
> know much more than that you had to be very careful to not run out of
> (IIRC 8192) selectors. But that could be a dpmi/heapmanager limitations
> (allocating big blocks from the OS, eating up a selector)

Dunno, and IIRC, there were some bugs there. But one guy (Jason Burgon) said once that BP7 could (in theory) use 192 MB of RAM. Though I know 286 is limited to 16 MB, and XMSv2 to 64 MB, but I guess there were still ways (perhaps directly via DPMI to Windows or such other host).

> The 64kb thing was indeed horrible.

Only for those who used lousy compilers or didn't know what they were doing. There are always tradeoffs, and sure it's not easy, but nothing ever is. "far" and "huge" were always the ways to overcome that, apparently. But again, it just depends on what your compiler supported.

> Though some of the horrors were self
> inflicted in retrospect, like keeping to try assembler code running with
> different memory models (tiny/compact/large/huge etc). Not being able
> to pass a pointer in a single register made register parameters hard.

Hardly more difficult to pass CS:IP instead of just IP. People did it and survived. I'm not saying I'm a pro or suggesting "going back", just saying that perhaps it wasn't as bad as you make it sound.

> It depends on the uses. If you do major compilation work, a VM is only
> slowing.

Esp. since VT-X isn't standard on all cpus (still!), no thanks to Intel. I think for that reason alone is why MS finally made XP Mode not need VT-X to run.

> OTOH that could be done under XP too, and there is no need for
> native dos.

Agreed, XP ran "most" DOS software just fine. Too bad later versions of Windows were much worse (and of course XP is officially deprecated by MS and not sold directly anymore).

> So that leaves testing the result. I would do that on an old
> system, and not the new one.

Old systems die, so then you're up a creek without a paddle. There really is no bullet-proof solution, you just have to "make do" with what you've got. Too bad that "new" isn't always better (or faster or cheaper or easier or compatible or ...). :-(

DOS386

06.08.2011, 15:11

@ Rugxulo

20 KiB of bloat of posts | IBM PC turns 30 (Aug. 12, 1981)

Rugxulo wrote:

(almost 20 KiB in 3 posts) :surprised: :surprised: :surprised:

> Who's going to rebuild everything for OS/2 exclusively? Why would you?

YES ... if I were convinced about the superiority of the new OS. But maybe, if reinventing the wheel, you should reinvent the PC (removing CPU / hardware legacy crap) before reinventing the OS ... otherwise ... you just waste your time.

> Face it, they "can't imagine" that we won't upgrade everything to almighty 64-bit

FYI, I won't downgrade to XXX64, ever, point :clap:

---
This is a LOGITECH mouse driver, but some software expect here
the following string:*** This is Copyright 1983 Microsoft ***

Rugxulo

Homepage

Usono,
13.08.2011, 01:40

@ DOS386

20 KiB of bloat of posts | IBM PC turns 30 (Aug. 12, 1981)

BTW, it's here (today), yet nobody had much else to say??

> Rugxulo wrote:
>
> (almost 20 KiB in 3 posts) :surprised: :surprised: :surprised:

It wasn't that bad. And you can't be that surprised. But that's what I get for reading this stuff too deeply (e.g. _Extending DOS_, 2nd ed). ;-)

> > Who's going to rebuild everything for OS/2 exclusively? Why would you?
>
> YES ... if I were convinced about the superiority of the new OS. But maybe,
> if reinventing the wheel, you should reinvent the PC (removing CPU /
> hardware legacy crap) before reinventing the OS ... otherwise ... you just
> waste your time.

I still wouldn't see the advantage (OS/2 only). But everybody prefers source compatibility these days anyways (if even), usually meaning POSIX (and requiring Cygwin on Windows), which almost always means C/C++ only.

> > Face it, they "can't imagine" that we won't upgrade everything to
> almighty 64-bit
>
> FYI, I won't downgrade to XXX64, ever, point :clap:

You might have to, they may not sell 32-bit forever! Drivers are the main problem, too. Even things like DOSEMU aren't safe from being obsoleted by weird distro rules.

DOS386

17.08.2011, 09:15

@ Rugxulo

20 KiB of bloat of posts | IBM PC turns 30 (Aug. 12, 1981)

> You might have to, they may not sell 32-bit forever!

You are not obligated to buy everything that someone sells ;-)

> things like DOSEMU aren't safe from being obsoleted

No problem ;-)

---
This is a LOGITECH mouse driver, but some software expect here
the following string:*** This is Copyright 1983 Microsoft ***

Back to the board
Thread view  Mix view  Order
22762 Postings in 2122 Threads, 402 registered users (1 online)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum