Hacker News new | ask | show | jobs
by AnthonyMouse 3812 days ago
> Linux is not that great at compatibility with old code or old binaries.

The default on Linux is source code availability. If the ABI changes but the fix is to recompile or change a couple of lines then it's a much smaller issue than it would be on Windows when you can code. And even if you can't, since the default is also redistributability, someone who can may have done it already and the fix will be in the package manager before you even knew it was a problem. Or you can submit a bug which, when the fix is that simple, some random hacker will fix it for you because it looks good on a cv or github history.

This compared with Windows where you have e.g. some driver with sources unknown that needs to be updated to support AMD64, which already supported x86 and was 64-bit clean for some RISC architecture, but now you can't do it at all. Or even more frustratingly, you have the driver source and the fix is very simple but you can't actually use or redistribute it because you're not up for the five grand and six months it takes to get a certificate for code signing.

2 comments

On Windows, the usual solution if you can't get source or someone else won't fix it (sometimes even if you can, because figuring out how to set up a build environment to recompile everything is a hassle when you could just change a byte or two... especially if you're not necessarily going to "develop" any further) is to patch the binary. Maybe this is why I find RE tools on Windows have been far better than with Linux or other Unix-like environments.

Or even more frustratingly, you have the driver source and the fix is very simple but you can't actually use or redistribute it because you're not up for the five grand and six months it takes to get a certificate for code signing.

There are easy solutions to getting unsigned drivers working. I do notice that the Windows and Linux community attitudes toward this are different though --- the latter seems to be "no source, can't do anything" while the former is more like "no source, we'll still fix it". We're not all as helpless and controlled by Microsoft as you may think. ;-)

(I'm someone who recently patched a driver for hardware that I had absolutely no familiarity with before. It was literally a 2-byte change after about 3 hours, most of which was spent learning about the device.)

> The default on Linux is source code availability.

You live in quite the dream world.