linux-特殊符号

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

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

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

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

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

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

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

相关推荐
火车叼位3 分钟前
替代 Tiny Win10 的 Linux 方案:Debian XFCE 精简桌面搭建
linux·运维
小麦嵌入式16 分钟前
FPGA入门(四):时序逻辑计数器原理与 LED 闪烁实现
linux·驱动开发·stm32·嵌入式硬件·fpga开发·硬件工程·dsp开发
皮卡蛋炒饭.1 小时前
传输层协议UDP
linux·网络协议·udp
syagain_zsx2 小时前
Linux指令初识(实用篇)
linux·运维·服务器
王木风2 小时前
终端里的编程副驾:DeepSeek-TUI-项目深度拆解,实测与原理分析
linux·运维·人工智能·rust·node.js
槑槑紫2 小时前
windows系统装轻量版linux开发
linux·运维·服务器
齐潇宇3 小时前
k8s-Helm管理器
linux·运维·云原生·容器·kubernetes
Irene19913 小时前
(课堂笔记)Linux 基础命令:文件增删改、重命名、压缩等
linux
脆皮炸鸡7554 小时前
库制作与原理~动态链接
linux·开发语言·经验分享·笔记·学习方法
小王C语言4 小时前
Windows和Linux之间文件互传
linux·运维·服务器