我是 Linux 内核模块编程的新手,许多关于该主题的入门指南都包含有关如何构建将在 Linux 的许多版本和 CPU 平台上运行的内核模块的少量信息。我见过的大多数指南都简单地陈述了诸如“Linux 不能确保版本之间的任何ABI/API 兼容性”之类的内容。但是,其他操作系统确实为主要版本提供了这些保证,并且指南主要针对 2.7(现在有点旧)。
我想知道现在是否有任何 ABI/API 兼容性,或者是否有任何标准方法来处理版本控制,而不是将我的代码的内核相关位隔离到具有大量预处理器指令的文件中。(另外,在第二种情况下我应该使用任何标准的预处理器符号吗?)