Hacker News new | past | comments | ask | show | jobs | submit login
Man upgrades Windows 1.0 to Windows 7 (video) (winrumors.com)
526 points by brown9-2 on March 2, 2011 | hide | past | favorite | 115 comments

God, the memories. I remember booting up Windows 95 for the first time -- I was so stoked. Everything was so new and smooth and perfect.

Plus -- and this is the important thing -- PPP worked much, much better than 3.1 + trumpet winsock.

Some time around 98SE I was dual booting into BeOS, which was so damn fast it wasn't funny. But it wasn't to be.

And I remember browbeating Red Hat 3 into connecting to the internet as well.

Weirdly enough my uncle actually knew the guy who wrote Trumpet Winsock.

He says he got burnt by piracy fairly badly: computer magazines were including the full version of his app on their cover disks all over the world, ISPs were handing his app to their customers, and his company was too small to stop them.

I had no idea. We ought to set up a donation drive.

edit: I was not being sarcastic. I wouldn't mind chipping a few bucks if a hat is going around.

I thought it a good idea. His name is Peter Tattam (I did some google-leg-work to find it). His site is at http://petertattam.com/ .

I found his name via a report at http://citeseerx.ist.psu.edu/viewdoc/download?doi=

If this is the guy, what should we do? Should somebody ask him what he would like?

yep. I'm still around. I live a quiet existence in not so sunny Hobart, Tasmania. Most unusual request - still thinking about it. Donations willingly accepted - just trying to think what kind of cool thing to provide in return for the generous donations.

When I was studying Computing at Tas Uni back in the mid 00s, they still mentioned Trumpet Winsock as their big success story. You should be proud of the impression you've left.

(Though now I think about it, were they annoyed at the commercialisation of a piece of research? Being a Uni, probably. Either way, you've left an impression!)

> just trying to think what kind of cool thing to provide in return for the generous donations.

It seems to me that people are donating because you've earned it. If you really feel a need to give back, perhaps the gift of education would be better. W. Richard Stephen's TCP/IP Illustrated is a great book, but looking long in the tooth these days. I'm sure you've forgotten more about TCP/IP than most of us have learned, but perhaps a book on TCP/IP by a guy that wrote a stack would be a good start?

> created: 13 hours ago


OK, he's set up a paypal account (payments@petertattam.com)

I've posted a HN ditty:


I contacted Peter and he got back to me. He seems to have settled well with how the cards fell and didn't seem worried about being compensated for things long past.

However, if any of you figure out some grand gesture to show appreciation please count me in. To me, he helped the web get started... An unsung hero. :)

His site seems to be down, but I found his company in the whitepages. I've left a message for him to call me back.

I'm going to suggest that he sets up a paypal account we can contribute to. I will also set up a website at lunch time, I think.

He rang me back.

He's a bit surprised by the sudden attention and says he will be commenting on the thread soon.

His website works for me.

It looks like his website is still running Trumpet Winsock...

I would totally send him a few quid. I remember using it back in the day.

I got Trumpet Winsock from my ISP. I wonder if they licensed it or not. Probably not, from the sound of it.

Well there was a fantastic feature of trumpet that windows lacked: If you had to reboot your computer (lol windows), the modem would remain connected, and trumpet could be re-enabled when the computer launched, you would be back up and running with internet, having not had to re-dial. Windows never did that, if you rebooted it was another phone call.

As far as Peter and Trumpet Software, they were based out of Hobart - After Windows implemented a default TCP/IP stack, much of his core business disappeared, they mucked around with building their own operating system for a while, turned Trumpet into an ISP, and in the end, his wife took him for most of what he had. Messy divorce/bankruptcy. Poor guy, he created a piece of software that I used for many years. For a long time, the trumpet implementation was better than the MS implementation, I still used it even when windows had built in PPP facilities.

Bought my first PC, an IBM 486DX-100. Preloaded Win95 display drivers were failing, so after a quick call to IBM I was instructed to download the newer drivers from the IBM Support BBS. After installing the drivers and a reboot, "Starting Windows95 For The First Time..." became my vision of terror. I remember watching the sliding bar on the bottom hoping that it wouldn't stop moving for too long.

The support tech I dealt with was super helpful but was confused by the mounting calls on the issue so after a few days he investigated and found that the BBS files were infected with the Monkey.3 MBR virus. The cool thing was that he called me directly and let me know the source of the problem and apologized on behalf of IBM.

I had Ethernet in my dorm room for a year with Windows 3.11 for Workgroups and never did get it to connect to the interweb. (I had some pretty clever helpers from the Harvard Computer Society, too. Nobody could figure it out.) One of my greatest days as a computer user was the day I installed Windows 95 and got Internet Explorer to load playboy.com—oh, and also fas.harvard.edu. :-)

(Of course, all good things must come to and end, and after Windows 98 was through I switched to Linux/Firefox and then to OS X/Firefox/Chrome.)

Memories indeed, I still have the 25 odd floppy disks needed to install windows 95!

But it wasn't to be.

I see what you did there.

This is a testament to how much trouble Microsoft goes through to maintain compatibility.

I wonder whether malware from those early days would continue to run, or if newer versions of the OS would block it.

Much more than you would ever know..

The original version of Sim City was written for windows 3.x and included a bug that read memory that had been freed to the system. It worked in windows 3.x, even though it shouldn't, because that particular range of memory wasn't being used for anything else until the program was terminated.

In beta versions of windows 95 Sim City didn't work because the operating system allocated memory differently, and Sim City would crash as expected because of the bug in the program. Amazingly, in the final version of Win95 the original Sim City worked. Microsoft engineers had actually tested backwards compatibility with Sim city, located the bug, and worked around it in their sourcecode.

Now that's serious dedication to backwards compatibility.

Specifically, Windows actually checked whether SimCity was running and then allocated memory differently if it was.

Joel Spolsky talks about it in this old article: http://www.joelonsoftware.com/articles/fog0000000054.html

More about Microsoft and backward compatibility is here: http://www.joelonsoftware.com/articles/APIWar.html

There's a blog run by Raymond Chen, one of the engineers on the backwards compat team, which is about backwards compat and other arcane aspects of Windows:


The part about millions of people sending millions of checks to companies really hit me. Why are Americans still using checks? I haven't seen one in more than a decade.

Bank transfers basically aren't supported by anyone you'd like to give a large sum of money to, so you have to write them a check.

I also remember that there was a version of <unnamed product> that rather than sending LVM_GETITEMTEXT would just read the ansi characters corresponding to the selected item during LVN_ITEMCHANGED off of a random location in the stack frame that they had "noticed" held the value. Of course, this eventually changed to a unicode string internally and broke WinZip... so the code that fired off this event would convert the unicode string to ansi and store a pointer in the stack.

I recall being very confused when I encountered this code many years after it had been implemented and had to spend a lot of time tracking through bug databases before discovering why the listview implementation was doing that.

I found it amusing how you avoided to mention the name initially only to lapse (I'm assuming it wasn't intentional) and inadvertently say it was WinZip later on.

Whoops! Yeah, I'd had WinZip in there originally, then I couldn't remember if this particular story had already come out. I've been gone from MSFT for a long time, but it was generally considered bad form when I was there to call out specific products publicly for their bad code.

but it was generally considered bad form when I was there to call out specific products publicly for their bad code

In a way, don't you think that by not allowing customers to know just how bad the code in the software they buy is, you're encouraging more of it?

If there are advantages to producing quick-and-dirty code that violates platform programming guidelines (some would call this sort of sloppy programming "Getting Work Done"), and there are no consequences (Microsoft knows how bad the code is but Winzip's customers don't), doesn't this exert a subtle market pressure that works against good developers who take the time and make the effort to do things right?

This isn't a fun choice for the OS folks to make.

Backward-compatibility for cases such as this can lead to arcane and more complex code within the OS, to difficulty with adding enhancements and creating fixes in the future, and creates larger target areas for folks that are attempting security attacks, and more complex testing.

Bug-for-bug application compatibility is not without costs.

Nitpick: the original version of SimCity was released for DOS before Windows 3.0 came out.

I never knew that MS went so far out of their way to fix a bug for a single game though - it seems that they were much more dedicated to backward-compatibility then than they are now.

Similar issues came up for a lot of apps in the move to XP, and they wound up implementing a 'shimming engine' that would modify behavior of system calls for different apps to provied bug-for-bug compatibility.

My copy of Visual Basic 1.0 (released in 1991) runs perfectly well on Windows 7 Ultimate.

When people wonder why Windows is so big and seemingly complex, and why it still uses stupid things like a registry, this is why. Microsoft deserves accolades for maintaining compatibility on this scale, while still working on just about any combination of hardware under the sun. I'm sure they would have loved to be able to do what Apple did with OSX, but there are things you can pull off with 3% market share that are completely out of the question with 95%.

To be fair, the original OS X was pretty backwards compatible--they ran OS 9 stuff in a virtual environment much like Windows 7 runs its older stuff. The Intel transition is the first time that Apple has been so lax about backwards compatibility. They dropped Classic on Intel Macs and they're about to drop PowerPC compatibility. It's a shame--I have OS 9 Games I would love to run on my MacBook Pro. Not to mention all the old programs I wrote.

Right, but Apple didn't have to worry about the thousands of corporate clients running Enterprise software that relied upon some specific API calls to handle billions of dollars in business. When Apple says, "too bad, upgrade", their customers mostly just do so. If Microsoft were to take that approach, they'd lose billions in revenue.

My point, however, wasn't really that OSX isn't backward-compatible, but rather that I'm sure there aren't many engineers at Microsoft who wouldn't love to throw out the whole Windows paradigm and build something new and better from scratch. Hell, I bet BillG himself would have loved to Embrace, Extend, and Extinguish *nix. I think people have a tendency to view Windows' rather bloated codebase and adherence to outdated architecture as a failure of imagination on the part of its programmers, whereas it's really just a practicality necessitated by their user base.

I'm sure there aren't many engineers at Microsoft who wouldn't love to throw out the whole Windows paradigm and build something new and better from scratch.

They kinda did. When Windows 3.1 was a hit, the server OS was Windows NT ( http://en.wikipedia.org/wiki/Windows_NT ) NT = New Technology.

Windows 95, 98 and Me are evolutions of the Windows 3.1 codebase, and then mercifully died. NT begat Windows 2000, XP, Vista, 7

You can see that they changed a lot of OS internals for the better (writing C++ code on win 3.1 it's trivial to lock up the whole OS, NT didn't have that issue), and then worked hard for compatibility.

While that's certainly true, the differences between NT 4.0 and 98 weren't particularly huge. NT was certainly the better OS, and it's good that they decided to adopt it, but it wasn't really a paradigm shift, and Windows applications were still cross-compatible.

My intention isn't to say that Microsoft hasn't made significant positive changes over the years, but rather that Windows would be a vastly superior operating system if the same people responsible for it currently were able to start from scratch. Say what you will about Microsoft, they still have some incredible engineering talent.

Can someone help me understand the Vista upgrade? For many users the “clean install” (where it deleted everything prior to upgrading) was the only option available.

Impressive, but I have to wonder how many compromises had to be made, and advancements abandoned, to keep apps like Reversi and Dosshell all the way up through Win7...

It's what their client base demands. It's part of their success. Think how many internal tools are relying on compatibility since they would be too expensive to rewrite. (I'm looking at you VB6)

You may be interested in this technet article on the concept of Shims http://technet.microsoft.com/en-us/library/dd837644(WS.10).a...

Not only can you make your own, Windows ships shims with each release to provide compatibility support with popular user applications.

Edit: fixed some grammar.

Good point, but consider all those old business apps that can continue to run in small companies all over the world.

and big companies...

There is a lot of people with the "if it works, don't touch it" mentality. MS would have sold a lot less if they had broke backwards compatibility.

It took me some years to internalize the benefits of "if it works, don't touch it", and I currently apply to a lot of home maintenance problems, which are outside my area of expertise.

A lot I imagine, which I think makes their decisions around WP7 and breaking backwards compatibility even more surprising (although I do agree with it).

I think it's one of those decisions where no matter what choice is made someone will complain about it.

That would be the innovator's dilemma.


A number of comments:

* He mentions there is no multi tasking in dosshell. I'm not 100% sure about MS-DOS 5.0, but in ver 6.0 you could switch between tasks in dosshell [EDIT: this is also true for version 5.0, you can see the option at 1:13 in his video]. To switch tasks you need to first enable it through the "Options" menu ("Enable Task Swapper") and then you can either switch tasks by the all too familiar Alt+Tab or pressing Ctrl+Esc to bring up an ancient Task Manager (then titled "Active Task List").

* I may be mistaken, but in later service packs Win2000 had much better DOS emulation... Just mentioning it because he did test XP SP2 and later versions of Win2000 may have handled Doom2 better.

This video got me to dig out my old DOS book to make sure I remember correctly... ah, the memories :) Very interesting to see many dialogs we all know from Windows even in DOS (i.e. the Run and Associate File extension dialogs in dosshell)

in ver 6.0 you could switch between tasks in dosshell

That was task swapping, not multitasking. All but the currently-executing task were interrupted, written out to disk, and expunged from memory.

Not completely true.

In MS-DOS you could terminate a program, but make 64K of its memory resident. And then you could program a time interrupt handler to wake it up and do stuff periodically.

That's how some viruses worked btw :-)

TSR, that was called, terminate and stay resident. It was a legitimate technique, software like Sidekick used it


I had to turn that video off to maintain my personal pride.

I may be a nerd, but by gosh, I do NOT watch Windows installation retrospectives for entertainment! :)

I wish I'd read this post earlier. I not only watched it but sent it to friends, never thinking that this actually might not be enjoyable to everyone.

Isn't there a conference somewhere that specializes in boring topics?

You might be thinking of "Boredom Enthusiasts Discover the Pleasures of Understimulation": http://online.wsj.com/article/SB1000142405274870339590457602...

Yes, that's it. Maybe he can make a talk of this for the next conference. "Observing the Installation of Every Version of Windows".

I actually found it surprisingly entertaining.

Site is Farked. Youtube direct link:


It's funny, I submitted this in non-blogspam form this morning and it didn't get nearly as popular: http://news.ycombinator.com/item?id=2279618

I wonder if it's just luck or timing or this guy using spambots to upvote his submission.

The title is different on the two submissions. Could have been a factor?

Now let's see someone do this on real hardware, upgrading the machine as they go.

Microsoft first introduced Windows 1.0 on November 20, 1985. Since the introduction of Windows the operating system has dominated personal computers ever since.

Not to be pedantic, but I don't seem to recall Windows "dominating" anything until version 3.1 came out. At that time, you still had a lot of software running in text mode, or firing up its own graphical environment from DOS. Berkeley Softworks' GeoWorks was out, then, too, and looking like pretty decent competition at the time. Windows' ultimate dominance may have been inevitable, but I don't recall it looking that way before '92.

This gives a great deal of assurance for Windows developers. You don't have to worry about your app not working in future versions of Windows.

Try running a 16-bit application on Windows x64...

It's actually not that hard. Just run it under dosshell or Virtual XP. It won't run natively of course.

> Try running a 16-bit application on Windows x64...

There's no reason for this to fail: dosemu runs 16-bit code on 64-bit Linux systems just fine. You just need to do full hardware emulation which, at this point, is neither difficult nor prohibitively resource-intensive.

There's actually a very specific reason for it to fail. There's an unfixable bug in the way that the Windows emulates 16-bit BIOS calls in the 8086 mode monitor. This is specific to Microsoft's implementation and is (if I remember correctly) an architectural issue (and not the only one). The options are rewrite an emulator or ditch 16-bit support in 64-bit.

I'm not saying that this is the only reason, but it is one. Emulation/Virtualisation is different, but gets the support requirement off Microsoft's books.

There's an even more specific reason. There is no 16bit support in 64bit Windows. It's probably the biggest backwards compat kill they did for 64bit Windows.

He left out Windows ME. I guess that would be too much to ask.

The point of the video was chronicling Windows upgrades. ME wasn't an upgrade. :)

Me was not that much of an upgrade. It got rid of the MS-DOS mode. While it did change a few stuff and added a few features (new shell derived from Win2000, better ACPI/WDM/USB support, System Restore, etc...), it was still based on the 9x codebase which was unreliable and had many limitations.

ME was released after 2000, but 2000 could not be "upgraded" to ME.

Yea, Me was the last release in the 9x series. Me was supposed to be for consumers, 2000 was supposed to be for businesses.

He also forgot about Bob.

Awesome stuff. I would have enjoyed a detour through Microsoft Bob, somewhere around Windows 3.1 or 95.

That was my first reaction to - where's Bob?

I'd actually have liked to see him to install more applications, perhaps Microsoft Office (circa 1990) and upgraded them as he went along too. I wonder if you can do Office for Windows -> Office 2010 as well.

Am I the only one that noticed that his account username in Windows 2000 was 'twatface'?

Oh, I noticed and I loled. Regardless, pretty interesting talk and at least he has a humor with his account names.

I'm glad the XP team fixed Doom 2.

It's like taking every upgrade I've ever done with Windows and condensing it down to 9:49 (omit the various reinstalls)

I never used the upgrade option. I'd always get a new hard drive with my upgrade (to get OEM price) and install clean, usually using the original hard drive as a slave. The next cycle that hard drive would become an archive on the new slave.

I have backed up files from 1996 on my home desktop.

Didn't everyone do it that way?

I tried the upgrade-option exactly once. I can't remember whether it preserved my background color. But I do remember that all sorts of drivers got screwed, software installs would fail with obscure error messages, and it generally was nothing but problems until I finally wiped and re-installed.

I upgraded from NT4 -> 2000 -> XP without any major issues. AFAICT it was mostly just a file replacement process.

The DOSWin to NT upgrade path always seemed pretty flaky though. The demonstration cheated a bit by using a vanilla VMWare config; an actual PC would be loaded with crappy vendor drivers and startup software which complicated any upgrade.

Upgrading from the NT line to further along the NT line wasn't much of a problem IIRC. Upgrading from '95 to '98 to 2000 probably would be, if you'd actually used the machine. Registry rot from years of use would hinder this process.

The idea of a well-used registry from Win95 being still used in a 2000 or XP machine makes me shiver in horror.

I always did the upgrades once to see how they worked out but I would usually just go fresh install shortly after. (It's what I do now with Ubuntu upgrades). With the exception of Windows XP, and only because I had one of those disks that would only do an upgrade.

There might have been a way around that at the time but a fresh 98 install with XP on top was clean enough for the one or two times I did it.

He applauds MS for continually supporting their legacy software... my opinion is that such legacy support is what continually hampers their rapid development

When it comes to viability as an infrastructure for business, downwards compatibility clearly trumps rapid development. The same can be seen with Java: having all the shiny, fashionable features the tech geek blogs are abuzz with may be nice... but having old, boring, clunky, uncool software that your business depends on continue to work is far, far more valuable.

I think this is an important point that most people forget. Most developers may be interested in doing the latest and greatest thing, but unless it can add value to an organization, then it is worthless.

While this is true, there is certainly a point where backward compatibility becomes a bit absurd. I'd personally peg it around the 15-year mark.

Absurd, and extremely profitable for the vendor which provides it. IBM mainframes can run binaries that are nearly 45 years old for example.

brilliant a testament to MS software compatability

Looking forward to someone doing the same sort of thing with other OSs.

You can't do it with this level of preciseness in the Mac family at least. Between OS X, probably as long as you're not on non-intel processors.

Like other commenter said, Windows/MS really goes all the way for backwards compatibility.

You can take a G3 from Mac OS 7.1.2 (version which added PowerPC support) all the way to 10.4, which would take you from 1997 to 2005. I haven't done it, but I've read that getting 10.4 requires some finagling to achieve, so the last supported install you could do would be 10.3.9

IIRC the minimum OS for a G3 was actually 8.something. (Apple generally doesn't/didn't support down-level OSes on their hardware.)

Also the settings would have only been preserved in Classic, but that's to be expected I guess.

Wonder if you could upgrade them, and then just rip out the hard drive and move it to another box. Wondering if 10.4 would be ok with one moment having a PPC and another moment having an intel processor.

If at OS X you take your previous computer and attach it in target disk mode or something (I'm not a Mac person) will it do anything with the old OS, perhaps use settings or allow apps to run under emulation or such.

Such quirks are partly what would make such things interesting.

Slackware goes back to 1993, is there an earlier Linux distro still in major use? (looks like there isn't - http://upload.wikimedia.org/wikipedia/commons/8/8c/Gldt.svg).

It might be more interesting with Linux to follow a WM?

You can do that with most unixes easily.

In Ubuntu, it would be one long series of do-release-upgrade commands. Not nearly as exciting.

Not in itself. The interesting bit would be playing with different UI's and testing backwards compatibility of settings and apps. Such as the OP video does between upgrades.

I wouldn't mind seeing the same video idea with Ubuntu. Somehow I don't think it will be long before a copycat does this :)

Wow, 26 years condensed into 10 minutes...

No Windows ME? ;-)

And more importantly no Windows NT.

This would have been the proper predecessor for Windows 2000 Professional.

Windows 2000 Professional was not part of consumer upgrade path - ME was.

Of course XP was was the successor to both.

Anyone know why the Windows installer takes so long? What's it doing for an hour and a half?

Some say it's probably due to the installer copying lots of things around, combined with slow IO on the VM plus the installer assuming reads are going to be slow (the source being slow CDs or floppies).

I call pish posh on that. What you're actually witnessing is The Microsoft Minute, as explained by http://ars.userfriendly.org/cartoons/?id=19990318

I'd guess lots of decompression & file creation. Windows install = lots of CAB files in a flat file structure.

I have a VB3 (or VB4) application which uploads samples to my hardware sampler over MIDI. But it doesn't work on XP, only 95/98. So there's a counter example to it being totally backward compatible.

I look forward to the full version (starting at DOS 1.0 and with http://www.bricklin.com/history/vcexecutable.htm)

It feels so nostalgic. I started using the Computer even since Windows 95 was launched. I first tried installing the Windows 98 on my PC. Man, I really appreciate this guy's patience.

My first computer was bought in '94, so a year before the Win 95 release.

I got it with MS-DOS 6.22, Windows for Workgroups 3.11 and MS Works (forgot which version).

God I hate this in-text advertising thing.

Quite an achievement. And we are all the richer for it when these things go smoothly.

My favorite part of this experiment is that he tested with Monkey Island. Go Guybrush!

Best possible music choice. Period.


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