Stallman on GCC, LLVM, and copyleft
Stallman on GCC, LLVM, and copyleft
Posted Jan 29, 2014 15:43 UTC (Wed) by andreasb (guest, #80258)In reply to: Stallman on GCC, LLVM, and copyleft by Del-
Parent article: Stallman on GCC, LLVM, and copyleft
When it comes to linux drivers, we are not talking about an API, but about an ABI. It is somewhat different, but as I said, there is not supposed to be an API for external use there.Do you even know what these words mean? We are talking about an API. The Linux kernel internal API, which is what is relevant with regard to drivers and anything else running in kernel space, is unstable and will be changed whenever an improvement comes along that needs it.
That the ABI for kernel modules changes is so far out of the question that it is hardly noteworthy. Even a simple configuration change can change the ABI.
Posted Jan 29, 2014 19:23 UTC (Wed)
by Del- (guest, #72641)
[Link] (1 responses)
Sigh, yes. Linux has two APIs, the internal and user space. APIs are at the source code level. The concept is quite general, but it often consists of calls to library routines. An ABI is an interface between binaries where one is typically a library or an operating system. In the case of linux there has been a lot of focus on that lack of an ABI towards drivers, or kernel modules in linux lingo. The lack of a stable ABI for drivers typically means that you need access to source code for the drivers in order to support upcoming kernels, since you often need to recompile. Regarding the linux drivers, most people care about the ABI, not the internal linux API, so I thought that was more relevant for the discussion. People often mix the concept of API and ABI, but as I already have said, they are not the same although they are clearly related concepts. Not sure how this confusion came about, but I guess I had one post where I was unclear.
Posted Jan 29, 2014 20:32 UTC (Wed)
by PaXTeam (guest, #24616)
[Link]
there's no lack of ABI, it's mostly defined by the usual GNU toolchain and some kernel side decisions and it doesn't really change, certainly much much less than the API.
> or kernel modules in linux lingo
no, not all kernel modules are drivers.
> The lack of a stable ABI for drivers typically means that
you don't know what you're talking about again. the ABI is quite stable, what is not stable is the API and no amount of recompilation will help if the source code itself is not patched to accomodate the changed API.
> Regarding the linux drivers, most people care about the ABI, not the internal linux API, so I thought that was more relevant for the discussion.
most people who care about the API actually understand the difference.
> People often mix the concept of API and ABI,
you don't say ;).
> but as I already have said, they are not the same although they are clearly related concepts.
this will be a fun day, keep it coming! ;)
Stallman on GCC, LLVM, and copyleft
Stallman on GCC, LLVM, and copyleft
> Not sure how this confusion came about, but I guess I had one post where I was unclear.