linux-特殊符号

__init利用了 GCC 的特性 attribute((section(".init.text")))。这意味着编译器在生成二进制文件时,不会把这个函数放在常规的 .text 代码段,而是专门开辟了一个名为 .init.text 的特殊段。

Linux 内核启动或加载模块时,执行流程如下:

加载:内核将所有标注为 __init 的函数加载到内存的特定区域。

执行:调用这些初始化函数(如 module_init 指定的函数)。

释放:一旦初始化完成,内核会调用 free_initmem()。

内核会遍历 .init.text 所在的内存页。

释放这些内存页,将其重新标记为可用状态。

相关推荐
是店小二呀2 小时前
鸿蒙PC_Dart-Sass-ohos适配全记录
linux·运维·windows
充电zcx8 小时前
Linux:4:开发工具详解
linux·运维·服务器
码农客栈12 小时前
linux 交叉编译tslib
linux
鱼月半13 小时前
两台电脑直连网络不通怎么办?
linux·网络协议
光电笑映14 小时前
网络通信基础:从协议分层到 Socket 编程预备
linux·运维·服务器·网络
酸菜。14 小时前
dw_apb_gpio总结
linux
wunaiqiezixin14 小时前
MIT 6.S081 file system 实验篇(lab9):Large files (moderate)
linux·unix·os·xv6·mit6.s081
GeW15 小时前
RHCE 考试通过率提升:核心考点、实验环境与排错技巧
linux
吴声子夜歌15 小时前
Shell编程实例——与解析相关的任务(二)
linux·运维·shell
mengge.cloud15 小时前
0917Docker 小白实验教程(理论+实操)
linux·服务器·网络·docker