You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux内核段名称中单点与双点的区别及含义咨询

Linux内核段名称中单点与双点的含义差异

内核中段名的点数量并非随机,而是有明确的约定规则,主要用于区分段的分类属性与特殊需求:

1. 单点后缀:通用用途分类

像.data.unlikely、.data.once这类带单点后缀的段,是给基础段(如.data)添加通用用途标签,属于同一大类下的细分场景:

  • .data.unlikely:存放运行时极少被访问的数据,链接时会被归入冷数据区域,提升缓存命中率
  • .data.once:存放仅需初始化一次的数据,后续通常只做读取操作

这种命名遵循GNU ld的传统习惯,所有带.data.*格式的子段,最终会被链接脚本合并到.data段的对应区域内。

2. 双点后缀:特殊实例标记

而.data..page_aligned、.data..init_task这类双点后缀的段,是用来标记有独立属性要求的特殊段实例:

  • .data..page_aligned:要求这段数据必须按页对齐,链接时会单独处理其对齐规则,不会和普通.data子段混排
  • .data..init_task:是init_task结构体的专属段,属于.data范畴但有固定的内存布局要求,链接时会被放置到指定位置

双点是内核自定义的命名规则,用来和普通的单点分类后缀做区分,明确这类段需要特殊的链接处理逻辑。

总结

  • 单点后缀:基础段的通用用途分类,遵循ld传统命名规范
  • 双点后缀:基础段的特殊实例,带有独立的内存属性(如对齐、固定位置)要求,属于内核专属约定

内容的提问来源于stack exchange,提问作者JoheDoe2018

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 00:50:41