linux-特殊符号

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

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

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

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

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

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

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

相关推荐
鸠摩智首席音效师15 分钟前
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead
linux
tianyuanwo39 分钟前
DevOps主机管理员视角:企业级Linux主机权限管理策略与实践
linux·服务器·devops
郭涤生41 分钟前
Windows + Ubuntu 双系统启动故障修复
linux·windows·ubuntu
三言老师43 分钟前
CentOS8 Firewalld 高级规则中级实操教程
linux·运维·服务器·网络·centos
tedcloud1233 小时前
Impeccable 部署指南:开源前端设计工具 Linux 环境搭建实践
linux·运维·服务器·前端·人工智能·开源
风曦Kisaki3 小时前
# Kubernetes(K8s)笔记Day12 :K8s 七层代理(Ingress 和 Ingress Controller)
linux·笔记·云原生·容器·kubernetes
大黄说说3 小时前
SQL Server 执行计划怎么看?快速定位 SQL 慢的根源
java·linux·数据库
yunwei375 小时前
eBPF 教程:精准隔离已建立的 TCP 连接
linux·安全·开源
weixin_445476685 小时前
linux下lims部署详细步骤参考
linux
奇特認7 小时前
数据库MySQL 1.安装环境部署
linux·运维·服务器