Hacker News new | ask | show | jobs
by cogman10 152 days ago
A lot of that bloat is due to compatibility and the 32bit -> 64bit transition.

Linux has suffered from the 32/64 bit problem as well for quite some time. The only difference is because of opensource it's been easier to slowly kill off the 32bit ecosystem.

That's not been an option for windows.

1 comments

This has absolutely nothing to do with the amount of RAM needed.
Absolutely it does, for 2 different reasons.

First up, the nature of dlls is that the same dll for multiple applications gets saved in memory just once. If you have 2 windows applications and one is 32bit and the other 64bit, then both of those applications end up loading up effectively the same dlls, but one is compiled for 64bit apps and the other 32. That nearly doubles the amount of ram needed in a mixed system.

But then there's just the fact that 64bit code by it's nature uses and passes around 64bit pointers everywhere. That's not quite as significant but it does have an effect.

The other part that ends up adding to the memory consumption is from XP on microsoft added compatibility layers. What those effectively did is distribute a different set of dlls based on the application being launched. So now instead of having 1 copy of the dlls like you did with 95, 98 and ME you can end up with potentially 3 or 4 different dlls. And that's ultimately exploded as more versions of windows have been released.

If you'd ever opened a directory of a program in windows you'd know that they always bring their own dlls, windows is not debian.
Usually, yes. Those aren't the dlls I'm referring to. I'm talking about common dlls that every windows app needs like kernel32.dll.

Every windows app relies on os provided dlls to some extent.

Then explain how Windows 7 64 bit uses much less memory than Windows 11.