3 ms·
So yeah, it's possible to build a kernel that provides interfaces that drivers can rely on across many versions. Not without a cost, though. Software engin
by binarycrusader 12y ago
So yeah, it's possible to build a kernel that provides
interfaces that drivers can rely on across many versions.
Not without a cost, though.
Software engineering is all about tradeoffs and making the right ones, I feel the Linux kernel community has made the wrong one by forcing those costs onto users instead of helping absorb some of that themselves.
I never said it was free or that there wasn't a cost; I just said that usability is important and have implied the Linux kernel developers should care more than they do now.
- JoshTriplett 12y agoThat was why I brought up RHEL: they're not pushing it on users, they're pushing it on distros whose users care about binary driver compatibility.
- binarycrusader 12y agoIt's sort of silly to imply that only RedHat users care or that only RedHat users should benefit. All users need and benefit from stability.
- JoshTriplett 12y agoOnly people running long-term-stable distributions care, and those distributions provide the level of ABI stability their users want. I'm simply saying that it makes more sense for downstream distributions to handle rather than the upstream Linux kernel. On the flip side, users running up-to-the-minute distributions don't necessarily care, and in fact care more about some of the properties that a stable upstream kernel ABI would trade away. More importantly, if a stable ABI does not exist upstream, a downstream distro can add it. But if a stable ABI exists upstream, a downstream distro can't get the traded-away benefits back.
- binarycrusader 12y agoSo only some distributions get a stable ABI but not others, leaving users of distributions with less support with a less usable system. I sincerely question the supposed benefits of this tradeoff. I have yet to see any articulated beyond hypothetical improvements in ease of implementation and zero benefit to the average user.
- JoshTriplett 12y agoDistributions whose users want an unchanging ABI get one. Distributions whose users don't care (e.g. those where either the users don't care about proprietary/out-of-tree drivers or the users use the packaged versions of those drivers in the distribution that get rebuilt when the kernel changes) don't bother. Your arguments assume that everyone obviously wants an unchanging driver ABI. I'd love to see statistics for how many users actually build and run out-of-tree drivers themselves, but I'd bet on it being a small fraction, most of which is the nVidia or ATI proprietary graphics drivers. And again, personally, I don't consider it a feature to cater to proprietary driver vendors. Beyond that, I've seen several reports regarding some of what binary driver vendors do that goes well beyond the exported driver interface (e.g. searching for core kernel data structures in memory and grubbing around in them), so it's not necessarily obvious that an unchanging driver ABI would actually stop binary drivers from breaking. In any case, I'm not interested in arguing further about the development practices I've already mentioned and pointed to that depend on the ability to evolve an interface along with all of its users.
- the_why_of_y 12y agoThere are significant benefits that Linux has derived from its lack of a stable driver ABI. For one example, adopting the AMD64 architecture proceeded significantly faster on Linux systems because nobody had to wait for binary drivers to become available, thus enabling end users to use their shiny new hardware to the fullest extent. For another, do you believe that the effort to add real-time capabilities to Linux would have any chance at all at succeeding while being constrained by stable internal ABIs? Basically only GPU drivers are sufficiently complex that the vendors are actually concerned about protecting their IP investment there and release only binary drivers; though AMD has even figured out recently that they can open source the kernel part of their GPU driver since all the interesting stuff is happening in user-space. Are driver ABIs of other kernels actually stable across major versions, in all cases? Another comment of yours says this is not the case. One major difference here is that there's a new release of Linux with substantial new features every 3 months, whereas new releases of NT come out every 3-6 years, and the gap is even larger for Solaris. Another major difference is that the upstream Linux kernel doesn't have paying customers; products like RHEL and SLES do, and maybe that is the level at which things like driver ABI guarantees should be provided, if there is actual demand for it.