3 ms·
> They don't offer stable APIs (by design) for drivers The real problem lies in this practice. Which other popular system uses this approach? Windows, macOS bu
by tasogare 6y ago
> They don't offer stable APIs (by design) for drivers
The real problem lies in this practice. Which other popular system uses this approach? Windows, macOS but also open source alternative like FreeBSD all have well-defined kernel API and drivers SDK. So, not providing a standard interface but then crying for the lack of third party drivers is hypocritical: the problem is self-inflicted.
- fiddlerwoaroof 6y agoThis is intentional: the kernel developers don’t want to make proprietary drivers easy to maintain.
- cycloptic 6y agoIf anything it's the other way around. Proprietary developers don't want to make the kernel easy to refactor.
- cycloptic 6y agoThis has been explained so much that there is a documentation page all about it: https://www.kernel.org/doc/html/latest/process/stable-api-nonsense.html https://www.kernel.org/doc/html/latest/process/stable-api-no... No other popular system follows the same development cycle as the Linux kernel.
- g_p 6y agoGood link - there's also a clear case that "requiring" the kernel to provide long-term stable driver API/ABIs is simply reallocating a cost towards the benevolent open source maintainers, to allow closed-source companies "leeching" (to use Greg K-H's words) from the kernel devs to benefit. There's clearly a non-zero (and indeed non-trivial) cost to providing a stable kernel driver API, and the kernel devs don't want to bear that cost, as they feel it would hold back the kernel from evolving, improving on APIs, and fixing security issues or other implementation bugs. The other side of the coin is that closed driver developers want this stable API to reduce their own development costs, but they will not follow the "intended" workflow that reduces the ongoing maintenance cost to effectively zero.
- agapon 6y agoUnfortunately, that's not very true for FreeBSD. Complex driver modules (e.g., virtualbox, graphics) get broken all the time by kernel API changes. However you can replace FreeBSD with illumos -- it has a well defined DDI (device driver interface), an OpenSolaris legacy.