2. Good documentation and testing is probably not as common as you think.
3. It takes a huge amount of effort to write high quality drivers by reverse engineering. The thing about Asahi Linux is that the hardware does not have many variants, but there are a lot more different hardware for PCs.
Not to mention that documentation != the actual behavior of the card. both nvidia and AMD release a ton of day-one driver fixes for new games being released that provide stability and sometimes double-digit performance gains over a pre-patched driver. The only way this works in a disintegrated ecosystem is if game devs become pros at creating driver bug workarounds.
They already are, they have to because that is the reality on mobile games. IIRC the devs of Real Racing (or another Android car race game) made a blog post on that.
They can also open source their testing bench code. The only ones who have to be afraid are those who don't care about quality. "Sunlight is the best disinfectant" also applies here - I'd really like to be able as a consumer to choose the product that demonstrates the better engineering!
> 2. Good documentation and testing is probably not as common as you think.
Oh, I'm aware of that, and the consequences of that are becoming more and more dire as electronic waste from defunct companies or unsupported and unsecure devices piles up, together with hacked IoT devices causing mayhem on the wide Internet in botnets.
It's high time for that to stop.
> 3. It takes a huge amount of effort to write high quality drivers by reverse engineering. The thing about Asahi Linux is that the hardware does not have many variants, but there are a lot more different hardware for PCs.
So what? Ordinary PC hardware at its core still conforms to decades old standards that can be used as a fallback. Given a sufficient supply of beers, coffee and pizza, every CS student worth their money can throw up a basic graphical OS that runs on any mainstream (i.e. non-embedded) x86 system. Input, output (video, serial, audio, keyboard, mice, accessories) and storage all have standardized interfaces - the only thing that does not is networking.
There is no reason at all to say that the ARM world can't standardize on basic components or at least interfaces. Apple can - their UART implementation, according to rumors, dates back to the early iPod/iPhone days, while Samsung has something like five or six completely different implementation, and Mediatek and all the other SoC vendors run their completely own stuff.
How are those Android updates working out compared to iPhones?
Way way too long, but to be fair a huge part of the issue are carriers and their insistence to pack the phones full of bloatware that needs to be tested against each update.
> and Windows manufacturers to take advantage of the latest OS features?
Windows device manufacturers tend to do what Microsoft demands of them.
> How are those Android updates working out compared to iPhones?
Samsung is fairly decent, although I'd be happier if they'd ... consolidate their lineup a bit and instead offer longer availability for spare parts.
Google’s first party phones don’t have third party bloat ware and still have a piss poor history of updates
It couldn’t possibly be your premise is flawed could it?
For modems, yes, but only because there's even less competition in that area (which is why they bought Intel's mobile modem business, but failed to produce a viable design in all the years since).
They've been running their own SoC designs since the iPhone 4 era in 2010.
Since manufacturers didn't demand long support, Qualcomm didn't provide updates for their SoCs. This meant Fairphone couldn't support their phones even if they wanted to, which is why they used am automotive chip in their new phone — which is nearly the same as a phone chip except the 13 years of updates.
Isn’t that the free market working the way it should without government interference?
It took Apple, flush with cash from iPhones and iPods, a decade worth of work to create a SoC able to throw punches at eye level with Intel and AMD, which themselves grew to the unholy duopoly over decades. Chipmakers have it even worse: TSMC has all the cards, Samsung and Intel have completely fallen behind with no chance in sight that they'll match TSMC any time soon. All the other competition has gone bankrupt or stopped at lesser nodes because they couldn't keep up the pace.
There's no disrupting that, not even if you are an actual nation state.
Geeks just always hate when normal people make their own choices using their own free will.
Every failure that you cited were well funded companies who failed to execute. Amazon, Facebook and Microsoft failed trying to introduce phones.
The market worked as it should - poor execution led to failure.
They have chosen not to.
Only if the hardware company refuses to share info with them, which - as you clearly laid out - is not in their interest.
I bet you also think that a company should set up a DevOps “department” to increase efficiency
Chris Lattner, the inventor of the Swift programming language and the open source LLVM was once interviewed on the Accidental Tech Podcast and he was asked whether bytecode could be used to allow Apple to switch architectures without forcing them to require developers to recompile and still have native compilation. He made up some half truth about whether that would be possible.
Years later when the S chips in the Apple Watch became 64 bit, he admitted that at the time of the interview, he knew that the 64 bit S chip was on the roadmap internally and he designed the LLVM with that in mind.
That’s what happens when you have software and hardware teams working together. The same is true with Nvidia and the their software developers who design Cuda and Intel and the compiler makers.
There were also reports that the software team responsible for the JS engine in WebKit worked with the processor team and the processor team did some design work around Apple’s ARM variants to make JS pre compilation faster.
This is also the whole idea of VLIW architectures where the processor manufacture depends on a team of compiler makers to ring out efficiencies and they work closely together.
Heck even back in the Apple // days, Woz a developer, designed hardware and software together.
>The only ones in trouble would be the vendors of crap SoCs who ship extremely buggy hardware and make up for the lack of QA in software quirks instead.
I.e. the every single vendor currently on the market...
I agree with you, no system (particularly not something as complex as an entire SoC) is free of bugs.
> I.e. the every single vendor currently on the market...
And yet, we have Apple, whose hardware quality alone is good enough for a dedicated team to reverse engineer and write drivers for, with almost zero documentation available.
The problem, as I expanded below, is the complete lack of competition in the SoC space. Everyone gets away with mediocrity because the largest players in town (Apple and Samsung) refuse to sell their chips to externals. The result is that the mobile ecosystem as a whole suffers, because that is what happens in markets where entities get too large.
Apple own software is pretty janky, my current MacBook cannot bring up GPU after sleep about once a month and needs a reboot to begin drawing GUI correctly again, used to be dying completely waking up before it was fixed couple OS updates back. My previous MacBook could not stay on WiFi for more than a couple hours straight, never had been fixed.
Also, reversing an existing working driver is different from writing a driver from scratch. In one case you just need to repeat the functionality, produce the same outputs for the same inputs, the quality of hardware is orthogonal here since it's already worked around in the existing driver. It's orders of magnitude easier than writing the thing from scratch.
Why? The hardware people at companies like NVIDIA or Apple already have to write detailed documentation for their stuff anyway so that the software people can do their side.
Assuming they do a good enough job at writing documentation and testing their hardware, it should not be a problem for Linux developers to write appropriate drivers. Hell there are a very few select people able to write high quality drivers even with zero documentation (see Asahi Linux).
The only ones in trouble would be the vendors of crap SoCs who ship extremely buggy hardware and make up for the lack of QA in software quirks instead.