Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
What did Windows 3.1 do when you hit Ctrl+Alt+Del? (msdn.com)
54 points by omnibrain on Sept 12, 2014 | hide | past | favorite | 17 comments


Pre-NT Windows is a joy to read about.

It's like they got a bunch of CS 101 students, gave all of them one computer, and 4 months, to design an OS from scratch, but without access to a UNIX book.

The fact that it somehow survived long enough to be replaced by NT is one of the Great Computing Miracles of the 20th century.


It is not credible that a bunch of CS 101 students could have implemented Windows, given the market constraints it was operating under, in 4 months.

16-bit Windows was a compromise; trying to maximize compatibility with DOS, to the point of supporting exiting back out to it, preserving TSRs and other state, in a severely memory constrained environment.

You shouldn't be wondering how it survived, because survival wasn't its remarkable achievement. You should be asking why it was better than DOS, which is what it was competing with, and what it had to live beside and stay compatible with. And why OS/2 didn't succeed.


Though note that OS/2 1.x and 2.x are two very different things.


The tragicomic part is that they got out a big roll of duct tape to kludge things together for Windows 95 and then legacy compatibility meant that all of the great work David Cutler's team was doing on NT was buried under the generally much worse Win32 API. Docs from the two worlds are either “Here's a well designed API which reflects what we learned from things which were hard on VMS and Unix” or “An intern tossed this together over a weekend before a beta deadline and since Office and Quicken used it, we have to support it for eternity”.

Thus did multiple generations of sysadmin have to learn to delete files with "CON:" in the name or deal with file paths longer than 255 bytes…


It was so bad that even users of Windows [123].x would only fire it up to use specific applications...spending quite a bit of time in DOS (you could try to run your DOS program from within Windows, but you usually couldn't get enough base memory free to do so). I don't think anybody really considered Windows the "OS" back in those days, just a GUI environment with MS-DOS being the OS.

But if you consider Windows as an OS, then Microsoft basically got everybody to buy two OSs for each computer. Lots of people also had two copies of Word, one for DOS and one for Windows.

I remember also running GEM 2.0 for a couple things as well. In those days you had multiple Windowing systems as well.

It was all kind of funny though with OS/2 you could just put all that mess in a DOS window and even run Windows in them. I think you could run multiple instances and thus have true multitasking for Windows apps (instead of task switching), but it ate up very expensive RAM very quickly.


Yea, there is a reason why the OS/2 2.0 fiasco is one of my favorite topics. My favorite problem with Win9x is how the dependence on DOS allowed Caldera to continue to sue MS, and adding "Microsoft Munchkins" and other attacks on top of that...


I would go so far to say that Windows NT is also a joy to read about. I strongly recommend Show Stopper and of course Raymond Chen's blog posts.


Specially the inside windows kernel books.


UNIX might have a few good ideas, but when Windows was created, it was a very expensive OS for Workstations that only very few people had access to.

The OS landscape, specially on the home market was full of operating systems to choose from, much more pleasant than the almost UNIX monoculture of the present days.


How is a greater variety of operating systems, with much less in common than even Unix and Windows, more pleasant? I figured the situation in the 80s and early 90s would be less pleasant for developers, since targeting multiple platforms would be more difficult.


- Lots of ideas how and what an OS should be

- Lots of systems programming languages to choose from

- Tight integration of OS and hardware experience

Most of the time we were writing in Assembly anyway and we would specialize on a given system. So of course it was pleasant to develop for our platform of choice.

Porting to other platforms was done via out-sourcing to companies that specialized in the desired systems. A model that still persists in the gaming industry.


What I find most amazing about Windows is how -- in the vast majority of circumstances -- modern versions will still run programs written for 3.1 (et al).

If there's one thing MS can be relied on, it's backwards compatibility for applications.


You can even run 1.x apps with some bithacking: http://toastytech.com/guis/misc.html

I downloaded the 2.x pack. Incredibly, I can copy a screenshot from that page to my OS X clipboard, open CLIPBRD.EXE on my 64-bit MacBook Air in WINE in 2014 and it will display that image (slightly mangled) with full metadata, despite CLIPBRD.EXE being from 1987!


Not on 64 bit Windows, but for 32 bit, you'd probably be correct.


They finally disabled NTVDM by default in Win8.


Not really. I think you have better chances of running 16 bit Windows programs in Wine on 64 bit OS like Linux, than on modern 64 bit Windows. Same goes for Windows 9x programs which use some 16 bit resources.


Reading about the baroque complexity of old technologies certainly makes me glad we don't have to deal with it any more!




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

Search: