mirror of
https://github.com/MintCN/linux-insides-zh.git
synced 2026-05-05 21:00:03 +08:00
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:
@@ -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`。
|
||||
|
||||
@@ -51,3 +51,5 @@
|
||||
@nannxnann
|
||||
|
||||
[@chenhr56](https://github.com/chenhr56)
|
||||
|
||||
[@yeying-xingchen](https://github.com/yeying-xingchen)
|
||||
|
||||
10
LINKS.md
10
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/)
|
||||
|
||||
有帮助的链接
|
||||
------------------------
|
||||
|
||||
|
||||
@@ -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)|已完成|
|
||||
|
||||
Reference in New Issue
Block a user