Linux /proc/kallsyms 文件,内核在哪里保存核心符号列表?

2023-12-21

要显示符号/proc/kallsyms,对于模块符号,内核循环遍历以modules内核变量,并迭代每个模块的符号表。但对于“核心”内核内置符号,它使用了一堆内核变量,如以下函数所示:

static unsigned long kallsyms_sym_address(int idx)
{
    if (!IS_ENABLED(CONFIG_KALLSYMS_BASE_RELATIVE))
        return kallsyms_addresses[idx];

    /* values are unsigned offsets if --absolute-percpu is not in effect */
    if (!IS_ENABLED(CONFIG_KALLSYMS_ABSOLUTE_PERCPU))
        return kallsyms_relative_base + (u32)kallsyms_offsets[idx];

    /* ...otherwise, positive offsets are absolute values */
    if (kallsyms_offsets[idx] >= 0)
        return kallsyms_offsets[idx];

    /* ...and negative offsets are relative to kallsyms_relative_base - 1 */
    return kallsyms_relative_base - 1 - kallsyms_offsets[idx];
}

问题是:

  1. kallsyms_addresses 和 kallsyms_offsets 数组在哪里定义?我尝试在内核源代码中进行 grep 但只找到引用,没有定义。
  2. 它们在哪里初始化?
  3. 这些变量和 /boot/System.map.kernel_version 文件之间的关系是什么?我认为它们应该是一致的,但我再次没有找到初始化代码。

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux /proc/kallsyms 文件,内核在哪里保存核心符号列表? 的相关文章

随机推荐

  • 映射到 PetaPoco 中的集合?

    有没有办法将以下内容映射到Dictionary
  • 如何将“无”分配给 std::Optional

    阅读有关std optional http en cppreference com w cpp utility optional 我对分配值的标准方法感到困惑某物 and nothing to an optional I guess ope
  • 字典(键,值)顺序

    假设我有以下代码 var dictionary cat 2 dog 4 snake 8 mutable dictionary var keys dictionary keys var values dictionary values for
  • 良好的 Haskell 编码标准

    有人可以提供一个良好的 Haskell 编码标准的链接吗 我发现了this http urchin earth li ian style haskell html and this http www haskell org haskellw
  • 如何从 Linux x64 主机到 Linux arm64 交叉构建 flutter 应用

    我正在尝试从 linux x64 编译到 linux arm64 当我打字时flutter build linux target platform linux arm64我收到此错误 Cross build from Linux x64 h
  • PHP 星期几数字到星期几文本

    这可能真的很简单 但我找不到 PHP 函数来做到这一点 OK so dow numeric date w 给出星期几的数字 0 6 表示星期日到星期六 And dow text date D 给出文本星期几的 3 个字母缩写 Sun Mon
  • 将 ggplot 保存在函数中

    我正在尝试使用图形设备在函数中保存 ggplot 但我发现代码生成空图 下面是一个非常非常简单的例子 library ggplot2 ff lt function jpeg a jpg qplot 1 20 1 20 dev off ff
  • 怎样才能让海龟认出一个圆圈呢?

    我正在尝试使用 Turtle Graphics 制作一个 Python 程序 在矩形内绘制两个重叠的圆圈 如维恩图 并在维恩图上绘制随机点 我已经成功地做到了这一点 但现在我想让程序识别一个点是在其中一个圆中还是在维恩图的交点中 然后我想根
  • 当两个路径可能是相对的时,将路径与 Windows API 结合起来

    我需要能够将两个不同的 Windows 路径 这两个路径都可能是相对的 组合成一个路径 通过将第二个路径应用为第一个路径的扩展 文件系统上是否实际存在任何一条路径都无关紧要 例子 C abc def gt C abc def C abc d
  • 在编写 Tkinter 文本小部件时更新它,而不是在课程结束后更新

    我陷入困境 因为这是在机密机器上编写的 所以我无法在此处复制 粘贴 作为一个新手 我的方法可能是非正统的 我有一个用 Tkinter 编写的 GUI 带有几个按钮 每个按钮都链接到一个类 该类实际上运行一个简短的脚本 单击按钮时 我初始化一
  • redux-saga:对回调返回做出反应的 eventChannel 和侦听器

    在反应原生中后处理程序 https facebook github io react native docs backhandler侦听器对回调函数做出反应并采取适当的行动 我需要读取我的商店并根据它返回 true 或 false 但我无法
  • 在 Swift 中逐行淡入 UITableViewCell

    我是 swift 的新手 我试图拥有一个 UITableView 并且单元格将被动画化以一一出现 我怎样才能做到这一点 另外 如果新出现的单元格行不在屏幕上 隐藏在表格下方 当每个单元格出现时如何向上移动表格 var tableData1
  • 创建效果 上滑时顶部图片被内容覆盖

    I have to create an effect like in the images but I don t know how to do it and also don t know how to call this effect
  • SQL 语句中文字前面的冒号是什么意思?

    使用 在变量之前 例如 userId在这段代码中 public function removeUser userId command Yii app gt db gt createCommand command gt delete tbl
  • AX 形式的图像

    在 Dynamics AX 中 我们在自定义表单中出于各种目的使用大量图像和图标 目前 我们必须在每台客户端计算机上单独安装图像 图标包才能使一切正常工作 有没有一种方法 或最佳实践 来处理 Dynamics 中的图像和图标 这样就不需要在
  • 使用StreamWriter实现滚动日志,并从顶部删除

    我的 C winforms 4 0 应用程序一直使用线程安全的流编写器来执行内部调试日志记录信息 当我的应用程序打开时 它会删除该文件并重新创建它 当应用程序关闭时 它会保存文件 我想做的是修改我的应用程序 以便它进行附加而不是替换 这是一
  • Grails 2.x schema-export 或类似命令能否为给定数据源的模式更新生成 DDL?

    Grails schema export 在生成 DDL 来为特定数据库创建数据库模式方面做得很好 然而我想做的是让 grails 只输出用于更新已创建模式的 DDL 而不是从头开始创建它的 DDL 我认为这应该是可能的 因为 grails
  • 如何获取 PDF 格式的 UITableView 快照

    我有一个UITableView其中填充了一些数据 但由于它包含的数据的单元格数量多于屏幕的可视区域 我只能获取它的快照 我想知道是否有其他方法可以获取整个表格视图pdf快照 这是我尝试过的谢谢 IBAction clickMe id sen
  • 如何对关系代数中不存在的事物进行建模或查询[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我想查询所有从未租过的公寓的id 我尝试过这样的事情 a id apartments a id from date Exists end d
  • Linux /proc/kallsyms 文件,内核在哪里保存核心符号列表?

    要显示符号 proc kallsyms 对于模块符号 内核循环遍历以modules内核变量 并迭代每个模块的符号表 但对于 核心 内核内置符号 它使用了一堆内核变量 如以下函数所示 static unsigned long kallsyms