Zeropage
zeropage 是 Linux 内核启动过程中一个核心的数据结构它实际上就是struct boot_params的别称。什么是 ZeropageZeropage零页是 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) 字节。如何传递 ZeropageZeropage 的传递方式取决于启动协议32位启动协议内核要求 CPU 处于32位保护模式并禁用分页。此时%esi寄存器必须保存 Zeropage 的物理基地址。64位启动协议内核要求 CPU 处于64位长模式并启用分页。此时%rsi寄存器必须保存 Zeropage 的物理基地址。这正是在head_64.S中反复看到%rsi被用作boot_params指针的原因——它必须被精确地传递给内核。重要提示非稳定 ABILinux 内核官方强烈警告Zeropage (struct boot_params)不是一个稳定的 ABI (应用程序二进制接口)。这意味着它的内部布局如字段的偏移和大小可能随内核版本变化而改变。因此任何外部引导程序都不应依赖其内部结构而应通过内核提供的、已版本化的实模式启动协议来与内核交互。Kexec 或 LinuxBIOS 等直接使用 32/64 位协议的程序则必须严格遵守协议规范。

相关新闻

二维数组遍历核心:从行列对角线坐标计算到方向向量思维

二维数组遍历核心:从行列对角线坐标计算到方向向量思维

1. 项目概述:从一道题看二维数组遍历的核心思维 最近在带学生刷《信息学奥赛一本通》的题目,翻到第1120题“同行列对角线的格”,发现不少刚接触二维数组和坐标计算的同学在这里容易卡壳。这道题本身逻辑并不复杂,但它像一块极好的…

2026/10/13 15:24:18 阅读更多 →
扫描件里的字搜不到、复制不了?用 Umi-OCR 一键生成双层可搜索 PDF

扫描件里的字搜不到、复制不了?用 Umi-OCR 一键生成双层可搜索 PDF

扫描件里的字搜不到、复制不了?用 Umi-OCR 一键生成双层可搜索 PDF 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。…

2026/10/13 15:23:55 阅读更多 →
我给 DeepSeek Harness 做了个桌面版:双击运行 dsh,Everything is a Plugin

我给 DeepSeek Harness 做了个桌面版:双击运行 dsh,Everything is a Plugin

背景 DeepSeek 开源了 deepseek-harness(dsh)——一个插件化的 AI Agent 运行时,口号是 “Everything is a Plugin”,公式为 Agent Model Harness。它以 CLI 形式发布,通过 dsh web 命令在本地 3080 端口提供 Web 界…

2026/10/7 5:18:05 阅读更多 →

最新新闻

C#离线语音合成实战:eSpeakNG本地TTS集成与低延迟优化

C#离线语音合成实战:eSpeakNG本地TTS集成与低延迟优化

简介:本资源是一个基于C#与WPF实现的离线语音合成(TTS)完整项目,面向Windows桌面应用开发者及.NET初学者,解决无网络环境下将文本实时转为语音输出的核心需求,适用于辅助阅读、无障碍交互、工业HMI语音提示…

2026/10/13 15:24:02 阅读更多 →
Linux下UDP接口测试与多人聊天Demo完整实践

Linux下UDP接口测试与多人聊天Demo完整实践

在 Linux 下做网络编程,我猜很多人第一个接触的都是 TCP:连接可靠、代码套路固定、出问题也好排查。但要说真正把网络层的脾气摸清楚,UDP 接口测试是绕不开的一关。前几天我把“UDP 接口测试 && 多人聊天 demo”完整做了一遍&#xf…

2026/10/13 15:24:02 阅读更多 →
批量删除QQ空间说说脚本实战:Cookie、g_tk与接口调用解析

批量删除QQ空间说说脚本实战:Cookie、g_tk与接口调用解析

简介:2023年最新版QQ空间说说批量删除插件,专为QQ空间重度用户及需要一次性清理历史说说的人群打造,适用于新版QQ空间界面,解决逐条手动删除效率低下、难以批量管理的问题。资源共3个文件,核心为JavaScript自动删除脚本…

2026/10/13 15:24:02 阅读更多 →
代码覆盖率统计工具落地实践:从原理到质量门禁配置

代码覆盖率统计工具落地实践:从原理到质量门禁配置

前阵子团队做质量复盘,技术负责人抛出一句话:功能测了这么多,到底有多少代码被真正运行过?大家都愣住,因为当时没人能回答这个问题。后来我花了小半个月,把代码覆盖率统计工具从零搭了起来,覆盖…

2026/10/13 15:24:02 阅读更多 →
Scikit-learn模型评估实战指南:数据划分、指标选择与交叉验证

Scikit-learn模型评估实战指南:数据划分、指标选择与交叉验证

1. 为什么要认真对待模型评估这件事我见过太多人花大量时间调模型,最后却在评估环节草草了事:训练集上准确率刷到98%就觉得自己大功告成,扔上线才发现真实场景里完全不是那么回事。这里面的差别,恰恰就是“会训练模型”和“会做机…

2026/10/13 15:24:02 阅读更多 →
Linux网络排查从入门到实战:协议栈、路由、防火墙与NAT全解析

Linux网络排查从入门到实战:协议栈、路由、防火墙与NAT全解析

Linux下的网络基础,说真的,属于那种你觉得自己会了,但一到生产环境就露怯的主题。干运维这些年,我最大的体会是:网络不通的根因,绝大多数不是命令不够炫,而是没把底层的数据流转、协议分层、路由…

2026/10/13 15:22:58 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →