Live data from Hacker News

Windows 95 defenses against installers that overwrite a file with an older one

devblogs.microsoft.com

81–90 of 103 posts

Re: Windows 95 defenses against installers that overwrite a file with an older one

#81

Earlier quoted context omitted.

"As Zig has evolved, it has become a target to avoid calling Win32 APIs from kernel32.dll etc., instead using lower-level ones in ntdll.dll." If we needed an example of why we should avoid using passive voice, this is it.

This sentence doesn't include examples of the passive voice.

Ha, you're absolutely right. The "has become a target" got me there. So glad, Zig wasn't targeted there.

Re: Windows 95 defenses against installers that overwrite a file with an older one

#82
> Some components addressed this problem by providing their own installer for the component, and telling installers, “You are not allowed to install these component file directly. Instead, you must run our custom installer.

Aha, that’s why they do that.

Re: Windows 95 defenses against installers that overwrite a file with an older one

#83

Earlier quoted context omitted.

> I wonder how much of this problem was caused by lack of adequate documentation describing how an installer should behave, and how much was developers not reading that documentation and being content when it works on their machine. There is a third option: the developers knew the rules and chose to ignore them for some reason. A modern example of this is the Zig language’s decision to reverse engineer and use undocu…

>ignore them for some reason The reasons are clearly stated in the issue you have linked.

The sentence that you quoted is more generic. The Zig issue is only one example of "some reason".

Re: Windows 95 defenses against installers that overwrite a file with an older one

#84
post #75

Earlier quoted context omitted.

The thing is, Microsoft got its position of dominance exactly because they did that - and that was because by doing this, the users' programs kept working . Remember that users outnumber developers by far and the last thing Microsoft wanted was for people to not upgrade Windows because they broke their previously working programs. This was even more important at a time when Microsoft had actual competition in the OS…

> The thing is, Microsoft got its position of dominance exactly because they did that Yeah, right. No bribes, no preinstalled software... They dominated by ... accident.

Nobody said it was by accident. They had deals with PC manufacturers for decades where they sold licenses based on the number of PCs sold by the manufacturer regardless of if the PC used MSDOS or another OS (like DRDOS), making all other options more expensive unless the client asked for them.

But the important thing is that the clients pretty much never asked for other OSes because all of their software worked on MSDOS - and later Windows. People bought computers to run their software, so if the software they wanted to run needed MSDOS or Windows, they'd buy the machines that ran that OS.

And by extension, if the software they wanted to run wouldn't run on the next version of MSDOS or Windows, they wouldn't have a reason to upgrade MSDOS or Windows. But from a user's perspective MSDOS/Windows was the best choice because everything supported it.

Microsoft didn't rely on just backwards compatibility (especially since the idea of "backwards compatibility" relies on something to be compatible with in the first place) but it was an incredibly important aspect of their strategy.

Re: Windows 95 defenses against installers that overwrite a file with an older one

#85
I find articles like this a good counter to the idea that typical software used to be better in the past (usually with an appeal to an idea that people were “real programmers” in those days and anything other than C as used in the 90s is a modern extravagance)

Re: Windows 95 defenses against installers that overwrite a file with an older one

#86
post #59

It must have been difficult and frustrating to work as part of the Windows team back in those days. You see all the wacky software that doesn't follow the rules properly, does whatever it wants, breaks things. And you have to figure out how Windows can accommodate all that software, keep it from breaking, and also prevent it from messing up a computer or undo the damage. They did not have the option of saying "this a…

They could have had file permissions. They could have had a package manager instead of third-party installers. Also note that Microsoft Office has a long history of not following Windows rules. Microsoft didn't even set a good example.

They had. Sort of. MS-DOS was a single user system. See attrib for details.

Re: Windows 95 defenses against installers that overwrite a file with an older one

#87
post #36

Earlier quoted context omitted.

Yes, but that doesn't solve the customer's problem And what does the customer do if the vendor has discontinued it? Or charges for an upgrade? Or has gone out of business? https://devblogs.microsoft.com/oldnewthing/20031224-00/?p=41... I'm pretty sure another one was "what if you're wrong/have a false positive detection, and slander another company, one with lawyers?"

> And what does the customer do if the vendor has discontinued it? Or charges for an upgrade? Or has gone out of business? Those can all be filed under Not My Problem (as in, Microsoft's problem,) and safely ignored. On the other hand, when Highly Influential So-And-So upgrades from 3.1 to 95 or whatever, and Very Population Application v4.9.6 starts falling over, Microsoft gets the black eye whether they deserve it…

> Those can all be filed under Not My Problem (as in, Microsoft's problem,) and safely ignored.

It was absolutely Microsoft’s problem. Had it ignored compatibility issues, what incentives would users have had to buy Windows 95?

Re: Windows 95 defenses against installers that overwrite a file with an older one

#88

It must have been difficult and frustrating to work as part of the Windows team back in those days. You see all the wacky software that doesn't follow the rules properly, does whatever it wants, breaks things. And you have to figure out how Windows can accommodate all that software, keep it from breaking, and also prevent it from messing up a computer or undo the damage. They did not have the option of saying "this a…

One of the craziest Raymond Chen stories is one where a Windows API call would return a pointer to a data structure the OS had allocated for the operation. The programmers at Microsoft made the data structure bigger than they needed, for future expansion. But some third party devs noticed the extra space, and started to use it to store data for their program. Then when Windows tried to start using the extra space, th…

Back then, many programmers originally learned their ropes in an 8-bit home computer era (or earlier), where it used to be completely normal and even necessary that you used whatever memory region you got away with.

For example, on the C64, you would get away with using the memory locations $02, $2A, $52, $FB to $FE, $02A7 to $02FF, and $0313 as scratch space for your own programs. Memory was incredibly scarce. I can’t blame programmers for sticking with their habits and for taking several years to unlearn and adjust their misconceptions about who owns what if they came from a home computer era where that pattern used to be the only way to get stuff done.

Re: Windows 95 defenses against installers that overwrite a file with an older one

#90

Earlier quoted context omitted.

>I still do not understand how one can consider writing to memory the OS owns to be ok. Things were different back then. People did a lot of hacky stuff to fit their programs into memory, because you were genuinely constrained by hardware limitations. Not to mention, the idea of the OS owning the machine was not as well developed as it is today. Windows 3.11 was just another program, it didn't have special permission…

"Not to mention, the idea of the OS owning the machine " I agree--back then when computers had <=4MB or RAM I would've called hogging unused memory for some selfish speculative future use "professional malpractice".

Some of that attitude survives to this day:

When an OS uses any memory that's otherwise unused as a file cache, which is instantly available if an application wants more memory, but isn't shown as "unused": "This OS is terrible, I have 16GB of RAM but all of it is being used!"

When an OS doesn't do this: "This OS is terrible, I bought all this RAM and the OS doesn't use it!"

Post reply on HN