当前位置: 首页 > news >正文

Zeropage

"zeropage" 是 Linux 内核启动过程中一个核心的数据结构,它实际上就是struct boot_params的别称。

什么是 Zeropage?

"Zeropage"(零页)是 x86 架构 Linux 内核启动协议中,一个承载所有启动信息的内存页(大小为4KB)。它之所以叫这个名字,是因为在启动协议中,它被要求初始化为全零

这个结构体是连接引导程序(Bootloader)内核的桥梁,包含了从固件收集到的硬件信息。引导程序在启动内核前,会将从 BIOS/UEFI 获取的硬件信息填充到 Zeropage 的特定字段中,内核启动时再从这里读取。

Zeropage 里有什么?

Zeropage 的结构定义在arch/x86/include/uapi/asm/bootparam.h文件中。它包含了非常丰富的信息,以下是其中一些关键的字段:

偏移/大小名称含义
000/040screen_info文本模式或帧缓冲区的显示信息。
070/008acpi_rsdp_addrACPI RSDP (根系统描述指针) 表的物理地址,对电源管理至关重要。
0C0/004ext_ramdisk_imageramdisk_image的高32位,用于指定 initrd (初始 RAM 磁盘) 的位置。
0C8/004ext_cmd_line_ptrcmd_line_ptr的高32位,用于传递内核命令行参数。
1C0/020efi_info用于 EFI (可扩展固件接口) 启动的信息。
1EC/001secure_boot指示固件是否开启了安全启动(secure boot)。
2D0/A00e820_table由 BIOS/UEFI 提供的E820 内存映射表,这是内核了解物理内存布局最核心的数据。

表中“偏移/大小”一列的数值,如000/040,表示该字段从 Zeropage 起始地址偏移0x000字节,大小为0x40(64) 字节。

如何传递 Zeropage?

Zeropage 的传递方式取决于启动协议:

  • 32位启动协议:内核要求 CPU 处于32位保护模式,并禁用分页。此时,%esi寄存器必须保存 Zeropage 的物理基地址

  • 64位启动协议:内核要求 CPU 处于64位长模式启用分页。此时,%rsi寄存器必须保存 Zeropage 的物理基地址

这正是在head_64.S中反复看到%rsi被用作boot_params指针的原因——它必须被精确地传递给内核。

重要提示:非稳定 ABI

Linux 内核官方强烈警告:Zeropage (struct boot_params)不是一个稳定的 ABI (应用程序二进制接口)。

这意味着它的内部布局(如字段的偏移和大小)可能随内核版本变化而改变。因此,任何外部引导程序都不应依赖其内部结构,而应通过内核提供的、已版本化的实模式启动协议来与内核交互。Kexec 或 LinuxBIOS 等直接使用 32/64 位协议的程序,则必须严格遵守协议规范。

http://www.jsqmd.com/news/1404654/

相关文章:

  • 宝宝餐后常喊肚子疼?这背后的原因你可能没想到
  • JMeter安装配置全攻略:从Java环境到性能测试实战避坑指南
  • 2026新型割圈圆机生产厂家实力优选:高精密针织与提花技术的源头工厂价值解析 - 卓企推荐
  • 武汉人工智能应用软件开发有哪些实际能力?部署前如何验证
  • 线性回归:从数学原理到Python实战
  • 抖音视频下载不再求人:免费开源工具 douyin_downloader 一键保存无水印高清视频
  • 2026南京GEO产业采购指南:规避服务商风险,适配本地需求的选型思路 - 产业观察报
  • 2026年12月PMP首考:别人还在纠结考不考,你已经值回票价了
  • 2026年横评10款降AI率平台:一键锁定高效助手!
  • 2026年美国FBA头程物流靠谱企业盘点及云途货运详情梳理 - 小范同学a
  • 函数结构体应用实例
  • 拟贝叶斯-STFT混合算法在时频分析中的应用与优化
  • Windows 11应用程序控制策略拦截问题解决方案
  • 潍坊冷库聚氨酯保温喷涂哪家靠谱?看懂这三点轻松避开施工坑。 - 滚动商讯
  • HOOPS Visualize Web 快速入门
  • 化工危险实训装备 + 化工预防体验实训装置 + 化工特殊作业实验设备职校产教融合实训室建设方案 - 滚动商讯
  • Python Bad file descriptor错误解析:从文件描述符原理到并发编程实践
  • 【爱马仕】Hermes 桌面智能自动化工具,Windows 整合包无痛部署方案
  • 开源机械臂Moltbot与Mac mini自动化方案:技术拆解与营销迷局
  • 真火壁炉科普:室内烟管越长取暖越好?烟管很短等于浪费热量?
  • 2026 香港新晉訂造傢俬品牌信得過嗎?
  • 北大AI Agent开发教程全解析:从小白到实战的198小时学习路径
  • macOS Python包安装全攻略:从依赖冲突到编译错误的实战解决方案
  • 永久微信活码怎么制作?
  • 外贸GEO02|从SEO到GEO:搜索变了,你的获客方式也要变 - 外贸圈集团
  • 从巴贝奇分析机到现代计算机:通用计算思想的百年传承
  • Typora高效文字高亮与标红:3种方案与实战技巧
  • 2026高端脱模剂推荐,多场景适用
  • CSS控制SVG颜色:从原理到实战的完整指南
  • SQLite FTS全文搜索实战:从倒排索引原理到中文分词优化