Hacker News new | ask | show | jobs
by Arelius 488 days ago
> worshipping at the thrown of backwards compatibility is one reason that Windows is the shit show it is

You say Windows is a shit show, but as someone who has developed a lot on both Windows and Linux, Linux is just as much a shit show just in different ways.

And it's really nice being able to trust that binaries I built a decade ago just run on Windows.

2 comments

"And it's really nice being able to trust that binaries I built a decade ago just run on Windows."

Wouldn't this need be solved by an emulator of older architectures?

There would be a performance cost, but maybe the newer processors would more than make up for it.

Funny you should say that.

I have a legally-purchased copy of Return to Castle Wolfenstein here, both the Windows version and the official Linux port.

One of them works on modern Linux (with the help of Wine), one of them doesn't.

I wrote some specialist software for Linux round about 2005 to cover a then-business need, and ported it to Windows (using libgtk's Windows port distributed with GIMP at the time.) The windows port still works. Attemping to build the Linux version now would be a huge ordeal.

What older architecture? Windows has been on x86 for decades. You should be able to run any 32-bit application built 20+ years ago on modern Windows, assuming the application didn't rely on undocumented/internal Windows APIs.
If you have ever read any of Raymond Chen’s stuff, you would know that is a big “if”
Linux is a shit show because there is no driver standard among other reasons
It has no driver standard on purpose with the intention of getting drivers into the mainline kernel tree.

If drivers are "standard" then low quality drivers full of bugs and security vulnerabilities proliferate and only the OEM can fix them because they're closed source, but they don't care to as long as the driver meets a minimum threshold of not losing them too many sales, and they don't care about legacy hardware at all or by then have ceased to exist, even if people are still using the hardware.

If there is no driver standard then maintaining a driver outside the kernel tree is a pain and more companies get their drivers into the kernel tree so the kernel maintainers will deal with updating them when the driver interface changes, which in turn provides other people with access to fix their heinous bugs.

How is this philosophy working for the end user? How is a similar problem working out for Android phones getting updates?
The drivers for most PC hardware are in the kernel tree. That part is working pretty well.

It's clear that something more aggressive needs to be done on the mobile side to get the drivers into the kernel tree because the vendors there are more intransigent. Possibly something like right to repair laws that e.g. require ten years of support and funds in escrow to provide it upon bankruptcy for any device whose supporting software doesn't have published source code, providing a stronger incentive to publish the code to avoid the first party support requirement. Or greater antitrust enforcement against e.g. Qualcomm, since they're a primary offender and lack of competition is a major impediment to making it happen. If Google wanted to stop being evil for a minute they could also exert some pressure on the OEMs.

The real problem is that the kernel can't easily be relicensed to directly require it, so we're stuck with indirect methods, but that's hardly any reason to give up.

I don't think I'd put the difference between the pc and server markets vs mobile down to vendor "intransigence". Rather, I would say it's a result of the market incentives. For PCs and especially for servers, customers insist that they can install an already released OS and it Just Works. This means that vendors are strongly incentivised to create and follow standards, not to do odd things, and to upstream early. On the other hand in mobile and embedded there is basically no customer demand to be able to run preexisting distro releases, and so vendors feel very little pressure to put in the extra work to get support upstream or to avoid deviating from common practice. On the contrary they may see their custom deviations as important parts of what makes their product better or more feature rich than the competition.

Right to repair laws as you suggest might do something to shift the incentives of vendors in these markets; I don't think they're ever going to "see the light" and suddenly decide they've been doing it wrong all these years (because measured in commercial consequences, they haven't)...

> On the other hand in mobile and embedded there is basically no customer demand to be able to run preexisting distro releases

This is not a difference in customer demand. The customers are by and large the exact same people and the inability to do this has been a major longstanding complaint of phone customers, both from the nerds who want a real third party OS and the ordinary users who are frustrated that the OS on the phone they only bought two years ago is already out of support and the device can't have any currently supported OS from any source installed on it even though there is no good reason it couldn't at least run the current version of vanilla Android.

The difference is a difference in competition. There are a thousand PC OEMs and you can start one in your garage by assembling PCs from parts. The parts are made by a variety of companies (Asus, Gigabyte, ASRock, MSI, SuperMicro, etc.) If PC OEMs started locking the OS to the device so you had to buy a new PC every three years, they would lose customers to ones that don't, because customers would actually have a choice. Even Apple doesn't prevent Asahi Linux from running on Apple Silicon Macs.

The phone market is much more consolidated. Suppose you want a normal ~$300 phone with similar specs to other Android phones at a similar price point, but with an unlocked boot loader and in-tree kernel drivers. It doesn't exist. Customers can't express a preference for it because it isn't available, and the market is sufficiently consolidated that the incumbents benefit more from lock-in and planned obsolescence than they would from gaining market share by providing customers with what they want. Because the companies who do that first would be the small ones or startups who use it to gain market share, but the barriers to entry are kept high through vertical integration because of the lack of antitrust enforcement.

> On the contrary they may see their custom deviations as important parts of what makes their product better or more feature rich than the competition.

This is, to begin with, questionable. Phone customers are not buying phones over "custom deviations". They care about cameras and storage and battery life and price. Nobody wants custom buggy bloatware from the hardware company.

But regardless of that, it's orthogonal to the issue. There is nothing about Vendor Cloud AI Thing which is incompatible with having the drivers in the kernel tree.

> I don't think they're ever going to "see the light" and suddenly decide they've been doing it wrong all these years

Do some trust busting and see what having actual competition does to their behavior.

It's absolutely on purpose. But the tradeoff is Linux has become a really great server OS (because the kernel team can quickly refactor flawed code), but a poor desktop OS (because drivers are harder to ship than on Windows). This tradeoff isn't really well-known or debated in the Linux community, it just kind of exists.
This gets at the heart of The Famous Article: my pet project vs. corporate-grade stuff.

The individual vs. the group.

Where I agree with the author is the need to keep individual tinkering possible.

However, generalizing anyone's idiosyncratic tastes is impossible.

Is that a real article? Do you have a reference for it?
TFA is the linked article that was posted to HN.