3 ms·
Yet 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 ge
by zaphirplane 7y ago
Yet 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.
- pjmlp 7y agoAndroid has a stable ABI, it is called Treble HAL.
- gruez 7y agoMy guess is that Apple writes the drivers themselves. That makes sense because iOS isn't like Linux or Windows where there are public resources on writing drivers. Because they write the drivers, it's very easy to port over to the next iOS version because all the expertise is already at Apple. In contrast, Qualcomm gives the OEMs a copy the custom Linux kernel that works with their SoC[1]. The OEMs then use that source to build their kernel, probably making minimal changes to it. Once Qualcomm stops selling that SoC, they stop releasing updates to their custom kernel because there's no pressure from OEMs to keep it patched. [1] eg. https://github.com/MiCode/Xiaomi_Kernel_OpenSource/tree/cepheus-p-oss https://github.com/MiCode/Xiaomi_Kernel_OpenSource/tree/ceph...
- scarface74 7y agoMicrosoft bundles drivers for most of the popular hardware. I was able to stick a Windows 7 DVD in my Core Duo Mac Mini, install it and it recognized all of my hardware - FireWire, Ethernet, sound, WiFi, Bluetooth and it sort of recognized my IR port used for my Apple Remote.
- lostmsu 7y agoSadly, it would not work in Windows 10 though. I know because I tried with Mac Mini 2011.