Comment by bombcar

4 days ago

> This is truly unhinged.

This is bog-standard boring stuff (when presented with a similar problem, Linux invented containers lol) - read some of his other posts to realize the extent Microsoft went to maintain backwards compatibility - some are insane, some no doubt led to security issues, but you have to respect the drive.

It’s not bog-standard. Containers are not equivalent to doing what is described in the article.

Containers are in fact redirecting writes so an installer script could not replace system libraries.

The equivalent would be a Linux distro having the assumption that installer scripts will overwrite /usr/lib/libopenssl.so.1 with its own version and just keeping a backup somewhere and copying it back after the script executes.

No OS that I know of does that because it’s unhinged and well on Linux it would probably break the system due to ABI compatibility.

If they had taken essentially the same approach as wine and functionally created a WINEPREFIX per application then it would not be unhinged.

edit: also to be clear, I respect their commitment to backwards compatibility which is what leads to these unhinged decisions. I thoroughly enjoy Raymond Chen’s dev blog because of how unhinged early windows was.

  • Man, after looking at the veritable pile of stinking matter that is claude code, compare it with the NT 4 source leak.

    Windows may have suffered its share of bad architectural decisions, but unhinged is a word that I wouldn't apply to their work on Windows.

    • I think you guys read “unhinged” as way more negative than I meant.

      Just because I am saying it’s unhinged doesn’t mean I don’t think it’s cool

      I’ve never read any windows source so I can still contribute to wine but I’ve read the NT kernel is really high quality

  • It's easy to forget in these discussions that Microsoft didn't have infinity resources available when writing Windows, and often the dodgy things apps were doing only became clear quite late in the project as app compatibility testing ramped up. Additionally, they had to work with the apps and history they had, they couldn't make apps work differently.

    You say, oh, obviously you just should redirect writes to a shadow layer or something (and later Windows can do that), but at the time they faced the rather large problem that there is no formal concept of an installer or package in Windows. An installer is just an ordinary program and the OS has no app identity available. So, how do you know when to activate this redirection, and what is the key identifying the layer to which redirects happen, and how do you handle the case where some writes are upgrades and others are downgrades, etc, and how do you do all that in a short amount of time when shipping (meant literally in those days) will start in just a few months?

    • I mean it looks like they did try to redirect writes somehow. They probably tried more sane options until they arrived here.

      >there is no formal concept of an installer or package in Windows.

      this one is on them, I think package managers already existed - doesn’t seem like there was ever a blocker for windows to have a package manager but Microsoft never bothered until very recently

      1 reply →

  • Windows 95 was not Windows NT and it still used the FAT32 file system, where it was not really possible to enforce access rights.

    As TFA says:

    You even had installers that took even more extreme measures and said, “Okay, fine, I can’t overwrite the file, so I’m going to reboot the system and then overwrite the file from a batch file, see if you can stop me.”

    • Well and the earliest versions of Windows 95 used FAT16 (specifically VFAT for support for LFNs or long file names). So enjoy those ridiculous cluster sizes if your hard disk even approached a gig or so.

  • You are right that it’s not equivalent, but the article explains why redirecting the writes wasn’t a viable option.

  • > If they had taken essentially the same approach as wine and functionally created a WINEPREFIX per application then it would not be unhinged.

    Man, wouldn't it have been nice if everyone had enough hard drive space in those days in order to do something like that...

  • Two words: proprietary installers.

    If an installer expects to be able to overwrite a file and fails to do so, it might crash, leaving the user with a borked installation.

    Of course you can blame the installer, but resolution of the problem might take a long time, or might never happen, depending on the willingness of the vendor to fix it.