top | item 38051175

(no title)

maccam94 | 2 years ago

The Linux kernel doesn't have a stable ABI. Thus, if a kernel function signature changes, or a subsystem gets refactored, etc, drivers get updated as part of the process. If the drivers lived outside the kernel tree, they would have to be updated separately by their own maintainers. That's less efficient and prone to breakage, so generally driver modules are merged into the kernel tree. Often they can even share code with other hardware devices!

discuss

order

adrian_b|2 years ago

Not only there is no stable ABI, but there is no stable API.

When only the ABI changes, a recompilation of all sources is enough.

When the API changes, then programmers must manually edit the sources and change function invocations and data structures, to match the new API.