From 311e4ac3e89bcf95fe15c696f49ea70a32464744 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=9C=E5=BD=B1=E6=98=9F=E8=BE=B0?= Date: Fri, 27 Mar 2026 13:18:06 +0800 Subject: [PATCH] docs: Translate to 40fb0c6 (#310) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs: Translate to 40fb0c6 * docs: 通顺语句。 * docs: 追踪翻译进度 Signed-off-by: yeying-xingchen * docs: update useful links Signed-off-by: yeying-xingchen --------- Signed-off-by: yeying-xingchen --- Booting/README.md | 36 ++++++++++++++++++++++++++++++++++-- CONTRIBUTORS.md | 2 ++ LINKS.md | 10 +++++----- TRANSLATION_STATUS.md | 2 +- 4 files changed, 42 insertions(+), 8 deletions(-) diff --git a/Booting/README.md b/Booting/README.md index 4f18021..aca8276 100644 --- a/Booting/README.md +++ b/Booting/README.md @@ -1,10 +1,42 @@ # 内核引导过程 -本章介绍了Linux内核引导过程。此处你将在这看到一些描述内核加载过程的整个周期的文章: +欢迎来到 Linux 内核的引导之旅。本章一步步讲述了从你开机那一刻起,到 Linux 内核加载到您机器的内存中时,完整的启动阶段。 -* [从引导程序到内核](linux-bootstrap-1.md) - 介绍了从启动计算机到内核执行第一条指令之前的所有阶段; +## 阅读方法 + +本章假设你熟悉基础计算机架构,并对 `C` 语言和 `x86_64` 汇编语法略有了解。你不需要成为内核专家,但读懂短代码片段和识别硬件术语会对阅读本章很有帮助。 + +本章的每一部分都聚焦于一个启动阶段。第一次按顺序阅读,然后,在想将特定符号或寄存器映射到序列中的位置时,作为参考点,逐步回顾。在本地电脑上拥有 Linux 内核的源代码,有助于了解细节。您可以使用以下命令获取源代码: + +```bash +git clone git@github.com:torvalds/linux.git +``` + +## 术语表 + +在阅读本章及其他章节时,你可能会遇到一些专业术语: + +- `CS`, `DS`, `SS`, `CR0`, `CR3`, `CR4`, `EFER` - 代表 x86 段寄存器和控制寄存器 +- `0x...` - 表示十六进制值 +- `entry_*` 和 `startup_*` - 是早期引导符号的常见前缀 +- `setup code` 指的是 Linux 内核的早期部分,用于执行将内核代码本身加载到内存的准备工作 +- `decompressor` 指的是将压缩后的内核映像解压到内存的 `setup code` 部分。 + +## 你将学到什么 + +- 处理器从固件和引导加载程序到达内核入口点的方式 +- x86_64 处理器的不同模式 +- 内核本身之前的早期 `setup code` 会被加载到内存中并开始工作 + +## 阅读顺序 + +* [从引导程序到内核](linux-bootstrap-1.md) - 介绍了从开机到内核执行第一条指令之前的所有阶段; * [在内核设置代码的第一步](linux-bootstrap-2.md) - 介绍了在内核设置代码的第一个步骤。你会看到堆的初始化,查询不同的参数,如 EDD,IST 等... * [视频模式初始化和保护模式切换](linux-bootstrap-3.md) - 介绍了内核设置代码中的视频模式初始化,并切换到保护模式。 * [切换 64 位模式](linux-bootstrap-4.md) - 介绍切换到 64 位模式的准备工作以及切换的细节。 * [内核解压缩](linux-bootstrap-5.md) - 介绍了内核解压缩之前的准备工作以及直接解压缩的细节。 * [内核地址随机化](linux-bootstrap-6.md) - 介绍了 Linux 内核加载地址随机化的细节。 + +## 内核版本 + +本章对应 `Linux kernel v6.19`。 diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 6a1d86f..d8b1dbe 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -51,3 +51,5 @@ @nannxnann [@chenhr56](https://github.com/chenhr56) + +[@yeying-xingchen](https://github.com/yeying-xingchen) diff --git a/LINKS.md b/LINKS.md index fe3deb0..33d5e6f 100644 --- a/LINKS.md +++ b/LINKS.md @@ -12,6 +12,11 @@ Linux 启动 * [64-ia-32-architectures-software-developer-vol-3a-part-1-manual.pdf](http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html) +Linux 内核内存管理 +-------------------------------------- + +* [Notes on the linux kernel VM subsystem by @lorenzo-stoakes](https://github.com/lorenzo-stoakes/linux-vm-notes) + 串口编程 ------------------------ @@ -39,11 +44,6 @@ GCC and GAS * [task_struct definition](http://lxr.free-electrons.com/source/include/linux/sched.h#L1274) -其他框架 ------------------------- - -* [PowerPC and Linux Kernel Inside](http://www.systemcomputing.org/ppc/) - 有帮助的链接 ------------------------ diff --git a/TRANSLATION_STATUS.md b/TRANSLATION_STATUS.md index 2d743f1..44c31f4 100644 --- a/TRANSLATION_STATUS.md +++ b/TRANSLATION_STATUS.md @@ -5,7 +5,7 @@ |章节|译者|翻译进度| | ------------- |:-------------:| -----:| | 1. [Booting](Booting)||已完成| -|├ [1.0](Booting/README.md)|[@xinqiu](https://github.com/xinqiu)|更新至[527b2b8921c3](https://github.com/0xAX/linux-insides/commit/527b2b8921c3d9c043bd914c5990d6a991e3035b)| +|├ [1.0](Booting/README.md)|[@yeying-xingchen](https://github.com/yeying-xingchen)|更新至[40fb0c6](https://github.com/0xAX/linux-insides/commit/40fb0c66dfbc3721955c62b98a3a89c35646f6a4)| |├ [1.1](Booting/linux-bootstrap-1.md)|[@hailincai](https://github.com/hailincai)|已完成| |├ [1.2](Booting/linux-bootstrap-2.md)|[@hailincai](https://github.com/hailincai)|已完成| |├ [1.3](Booting/linux-bootstrap-3.md)|[@hailincai](https://github.com/hailincai)|已完成|