Linux内核次要编号vermagic比较

Posted

技术标签:

【中文标题】Linux内核次要编号vermagic比较【英文标题】:Linux Kernel minor number vermagic comparison 【发布时间】:2017-11-20 10:01:48 【问题描述】:

我有一个关于 linux 内核模块的简单问题。

是否保证我编译的模块在整个 X.Y 内核版本中都能正常工作。

X:内核版本 Y:主要版本 Z:小版本

例如:

我用 4.9 内核的树编译我的 module.ko。 那么可以insmod我的模块用4.9.24, 4.9.31,4.9.34,...?

那么 vermagic 比较会跳过主要数字之后的所有内容吗?

【问题讨论】:

【参考方案1】:

你熟悉https://github.com/torvalds/linux/blob/master/Documentation/process/stable-api-nonsense.rst吗?

如果您想要稳定的 ABI,您需要以 RHEL 或 SLES(或其声称维护 ABI 的衍生产品)附带的内核为目标。

【讨论】:

是的。但我只想知道它是否可以在次要版本之间更改^^ 大多数情况下不会,但正如文档中所述,无法保证 但是vermagic比较是如何工作的呢?它不知道什么时候会发生变化…… how does the vermagic comparison work then? It doesn't know when something changes. - 版本是根据类型的大小生成的,用于函数的参数。所以 vermagic 能够检测到 API 的一些变化。

以上是关于Linux内核次要编号vermagic比较的主要内容,如果未能解决你的问题,请参考以下文章

insmod hello.ko -1 Invalid module format最简单的解决的方法

从内核提取次要版本到bash变量

linu学习笔记--进程基础

跟踪分析Linux内核的启动过程

嵌入式学习书籍

ActionScript 3 AS3获取Flash Player版本号(包括主要和次要编号)