12 ms·
"can't" is such bs. Make it so that the kernel and OS can be fully updated independent of device drivers and bypass manufacturers for distribution. Why does nob
by ebg13 7y ago
"can't" is such bs. Make it so that the kernel and OS can be fully updated independent of device drivers and bypass manufacturers for distribution. Why does nobody remember that Windows updates come directly from Microsoft and that third party webcams just keep trucking along?
- saagarjha 7y ago> Make it so that the kernel and OS can be fully updated independent of device drivers and bypass manufacturers for distribution. This would mean that you'd have to commit to a stable ABI for device drivers, forever.
- jdc 7y agoAnd?
- heftig 7y agoThe mainline kernel doesn't have a stable ABI, so you're stuck maintaining a fork, forever.
- ebg13 7y agoWhat it would mean is committing to supporting previous interfaces for some window of time when introducing new ones, not one interface ever.
- CameronNemo 7y agoOr maintain device drivers in mainline. Anything less is irresponsible and "designed to fail".
- baroffoos 7y agoThis is why it is so important to buy a device that has open source drivers. If your device can run mainline linux without any patches then you can be pretty sure it will be easy to update for a very long time. The only phone I know which fits this description is the Librem 5. Unfortunately it would currently be a lot cheaper to just buy second hand android phones every 2 years than to buy one of these but hopefully they can get the price down later.
- zozbot234 7y agoThe postmarketOS project is working on mainlining drivers for other devices. They're almost done wrt. the LG Nexus 5, which is their current flagship (though mobile voice/data support is still problematic)
- baroffoos 7y agoI tried installing PMOS 5 on a nexus 5 and it seemed a long long way away from being usable.
- CameronNemo 7y agoWell there is also the fairphone! And pinephone in the future (based on rk3399, so not bad mainline support). Peripherals are always iffy, but sometimes you need to make sacrifices.
- IshKebab 7y agoNot forever. Windows XP drivers don't work in Windows 10. 5 years of support for a driver ABI seems achievable though. Especially for basic things like proximity sensors, touch screens, buttons etc. How often is the ABI for a button going to change?
- twblalock 7y agoAs the article says, Google can't force manufacturers to follow strict update policies because manufacturers can just fork Android like Amazon did. I can't think of any open source software vendor that is able to force its customers to accept strict policies, because forking is always an option. Windows updates work for years because manufacturers maintain Windows drivers for their hardware. The Android ecosystem is more like the Linux desktop one -- each manufacturer sells a different Android distribution with their own custom stuff mixed in.
- ebg13 7y ago> manufacturers can just fork Android like Amazon did This is a pretty weak argument against doing the right thing by taking control of system updates. Even stock Android devices stop getting updates very quickly because of how tightly coupled to the hardware drivers Android is. It doesn't have to be that way.
- twblalock 7y agoEven if the driver situation was improved, manufacturers just don't want to provide support for older devices.
- maxerickson 7y agoWindows has a relatively stable driver ABI. Old drivers can run on new builds of the system. Linux doesn't. So OS updates leave behind old drivers. So manufacturers don't have to do anything for their drivers to continue working on Windows, and it is often the case that updates will stop shortly after hardware is released.
- KingMachiavelli 7y agoThe Linux kernel doesn't provide a stable ABI for modules so they have to be atleast recompiled each time. There are some workarounds such as DKMS to rebuild the interface when the kernel updates but I don't know if Android provides it. Last I checked a big issue was Qualcomm doens't support their SoC for very long so manufactures have to tweak each devices 'tree' (it's unique kernel and drivers) for each kernel update. The whole point of project treble was to disconnect the Android version from the kernel version so that manufactures could keep using the existing kernel and drivers and would only have to recustomize the new OSI to their liking. Turns out a lot of device manufactures still don't see much value in providing timely updates since the general public doesn't even know what version their currently running and are just as likely to hate an update than like it. Personally, I feel Google's sluggishness to enforce update policies or change how Android works is out of fear that Samsung will break completely and launch their own app store and not have the Play Store, or rather Play Services which is what Google needs if they want to power many of their online platforms (where do you think Google map road conditions come from?, Or that feature that shows how busy restaurants are?). Without play services on every Android device, Android looses it's profitability.
- zaphirplane 7y agoYet Apple manages it, and they use Qualcomm components. What happens to the Qualcomm drivers when Apple releases a new iOS version that works across multiple generations of devices, are they updated by Apple or does Qualcomm provide a new driver to Apple ? I am not 100% accepting the ABI argument the drivers in the Linux kernel are not getting rewriting every release, sometimes there are changes and I don’t know if applying those changes to drivers is such a burden otherwise the kernel will be always broken
- klodolph 7y ago> I am not 100% accepting the ABI argument the drivers in the Linux kernel are not getting rewriting every release, sometimes there are changes and I don’t know if applying those changes to drivers is such a burden otherwise the kernel will be always broken I think you may be mixing up “ABI” and “API”. If you change internal kernel APIs, you’d break a lot of code and have to go in and fix it. If you change the ABI, you just have to recompile. The ABI does change pretty often and as a rule of thumb there is no effort to keep it stable, the way you would if you were writing a shared library (which ideally has both a stable API and ABI). Drivers in the kernel are not broken because they are recompiled with the rest of the kernel. Kernel modules from different kernel versions ARE broken and this is why we have DKMS. But just to talk about what happens here—Apple is the only developer of the XNU kernel, and they have a fairly short list of iOS SKUs in the history of iOS, and only a small portion of those get iOS 13 support—something like 12 iPhone models. So the support for all of these devices is right on the mainline kernel development tree. This is not how Android development works. You generally have a bunch of different manufacturers, who get a team of engineers to get a fork of the Linux kernel working on each device, and then they drop it and move on to the next one. There will be various binary blobs involved, and integrating the changes back upstream or downstream ends up being a pain. And just to return to the original point, the Linux kernel developers are actively hostile to any attempts to make the kernel ABI stable enough for binary blob drivers to work. This is not a question about whether it is technically possible.
- ridiculous_fish 7y agoAndroid kernels are routinely provided by the OEM and are usually an unholy cocktail of old Linux, with fixes backported from upstream. These kernels are checked into the Android source repo as binary files.