Hacker News new | ask | show | jobs
by monocasa 1751 days ago
That's their point. Google, for their own phones, put next to no effort upstreaming the code, but accepted the vendor status quo.

If they can't even wrangle this for their own phones, how is going to a more permissive license and embracing proprietary modules going to make the situation better?

2 comments

I'm not sure where you got that "point". Microsoft couldn't wrangle this either and they've still ended up with a wildly successful operating system which simply provided a stable ABI.

Why are you so darn sure that they're wrong and the model that's been failing for the last 15+ years is really the right one?

Microsoft's kernel is also famously behind the times because they can't update key parts because of the stable API. Like how the scheduler only knows about banks of 64 cores at a time, and you have to manually load balance your threads from user space in some cases. Or how they couldn't change their VFS to compete with Linux's expectations because they reversed the caching model. The NT filesystem cache sits between user space and the filesystem so internal metadata isn't cached by default but instead needs manual work from each day driver that's always not quite implemented well in practice. On Linux the cache conceptually sits between the FS and the block device so metadata is actually cached 'for free'. Because of these problems it was faster to literally run a whole other kernel for WSL2 rather than the apples to apples of WSL1.
What matters is having a stable API, not having the code. Nobody needs the code if there's nothing to fix.
And when we have an example of perfect phone APIs that don't need updates and perfectly written drivers to back those APIs then we can start to entertain that idea.
Stable does not mean perfect. It means putting a version number on it, don't fucking change it pointlessly, and decouple it from the other parts of the kernel.
Linux kernel API does have a version number on it...

And this stuff isn't like an http API. I gave examples above about how NT has fallen behind Linux because of their stable API and binary drivers.