docs: Translate to 40fb0c6 (#310)

* docs: Translate to 40fb0c6

* docs: 通顺语句。

* docs: 追踪翻译进度

Signed-off-by: yeying-xingchen <yeying-xingchen@openatom.club>

* docs: update useful links

Signed-off-by: yeying-xingchen <yeying-xingchen@openatom.club>

---------

Signed-off-by: yeying-xingchen <yeying-xingchen@openatom.club>
This commit is contained in:
夜影星辰
2026-03-27 13:18:06 +08:00
committed by GitHub
parent a4da605128
commit 311e4ac3e8
4 changed files with 42 additions and 8 deletions

View File

@@ -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) - 介绍了在内核设置代码的第一个步骤。你会看到堆的初始化,查询不同的参数,如 EDDIST 等...
* [视频模式初始化和保护模式切换](linux-bootstrap-3.md) - 介绍了内核设置代码中的视频模式初始化,并切换到保护模式。
* [切换 64 位模式](linux-bootstrap-4.md) - 介绍切换到 64 位模式的准备工作以及切换的细节。
* [内核解压缩](linux-bootstrap-5.md) - 介绍了内核解压缩之前的准备工作以及直接解压缩的细节。
* [内核地址随机化](linux-bootstrap-6.md) - 介绍了 Linux 内核加载地址随机化的细节。
## 内核版本
本章对应 `Linux kernel v6.19`

View File

@@ -51,3 +51,5 @@
@nannxnann
[@chenhr56](https://github.com/chenhr56)
[@yeying-xingchen](https://github.com/yeying-xingchen)

View File

@@ -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/)
有帮助的链接
------------------------

View File

@@ -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)|已完成|