refactor: 重构文档目录
移除了所有数字标号 Log:
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
# 3.1. 启动过程概述
|
||||
# 启动过程概述
|
||||
|
||||
你一定好奇从计算机开机到进入桌面,到底发生了什么?这篇文章将会带你了解一下启动过程。
|
||||
|
||||
计算机启动就像一个多级火箭发射的过程,每一级都有自己的任务,上一级完成任务后,下一级才能开始工作。这里我们将会从最底层的硬件开始,一步步的了解启动过程。
|
||||
|
||||
## 3.1.1. 第一级:BIOS(Basic Input/Output System)
|
||||
## 第一级:BIOS(Basic Input/Output System)
|
||||
|
||||
BIOS是计算机的基本输入输出系统,它是计算机的第一级启动程序,它的主要功能是检测计算机的硬件配置,然后将控制权交给操作系统。
|
||||
|
||||
@@ -12,7 +12,7 @@ BIOS是计算机的基本输入输出系统,它是计算机的第一级启动
|
||||
|
||||
还有一种启动程序叫做uboot,它和UEFI类似,但是不常见于我们日常使用的计算机中,主要存在于国产计算机和部分基于ARM的单板机中。
|
||||
|
||||
## 3.1.2. 第二级:引导加载程序
|
||||
## 第二级:引导加载程序
|
||||
|
||||
引导加载程序是计算机的第二级启动程序,它的主要功能是加载操作系统内核,然后将控制权交给操作系统内核。
|
||||
|
||||
@@ -62,13 +62,13 @@ menuentry 'deepin GNU/Linux' ... {
|
||||
|
||||
参见 “info grub” 及 grub-install(8)。
|
||||
|
||||
## 3.1.3. 第三级:内核
|
||||
## 第三级:内核
|
||||
|
||||
内核是计算机的第三级启动程序,它的主要功能是加载操作系统的驱动程序,然后将控制权交给操作系统的第一个进程。
|
||||
|
||||
在我们deepin系统中,内核是linux内核,由上一级grub2加载。内核加载驱动程序,所以你可以在内核启动参数中指定加载哪些驱动程序,比如我们可以通过内核启动参数来指定加载nvidia显卡驱动。
|
||||
|
||||
## 3.1.4. 第四级:第一个进程
|
||||
## 第四级:第一个进程
|
||||
|
||||
第一个进程是操作系统的第一个进程,它的主要功能是加载操作系统的其他进程,然后将控制权交给操作系统的第一个用户进程。
|
||||
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
# 3.2. Systemd初始化
|
||||
# Systemd初始化
|
||||
|
||||
本节描述系统是怎样通过 PID=1 的 systemd(1) 程序来启动(即初始化进程)。
|
||||
|
||||
## 3.2.1. 什么是systemd
|
||||
## 什么是systemd
|
||||
|
||||
systemd是Linux系统的一个守护进程,它的作用是管理系统中的所有进程,比如启动、停止、重启、查看状态等。
|
||||
|
||||
你可以使用`systemctl` 命令来管理systemd进程。详见[Systemd](https://wiki.deepin.org/zh/Systemd)
|
||||
|
||||
## 3.2.2. systemd的初始化
|
||||
## systemd的初始化
|
||||
|
||||
systemd 初始化进程基于单元配置文件 (参见 systemd.unit(5)) 来并行派生进程,这些单元配置文件使用声明样式来书写,代替之前的类 SysV 的过程样式。这些单元配置文件从下面的一系列路径来加载 (参见 systemd-system.conf(5)) :
|
||||
|
||||
@@ -46,13 +46,13 @@ systemd 提供向后兼容的功能。在 "/etc/init.d/rc[0123456S].d/[KS]name"
|
||||
模拟的运行级别 2 到 4 全部被符号链接到了相同的“multi-user.target”。
|
||||
:::
|
||||
|
||||
## 3.2.3. 主机名
|
||||
## 主机名
|
||||
|
||||
内核维护系统主机名。在启动的时候,通过 systemd-hostnamed.service 启动的系统单位设置系统的主机名,此主机名保存在 "/etc/hostname"。这个文件应该只包含系统主机名,而不是全称域名。
|
||||
|
||||
不带参数运行 hostname(1) 命令可以打印出当前的主机名。
|
||||
|
||||
## 3.2.4. 文件系统
|
||||
## 文件系统
|
||||
|
||||
硬盘和网络文件系统的挂载选项可以在 "/etc/fstab" 中设置,参见 fstab(5) 和 第 9.6.7 节 “通过挂载选项优化文件系统”。
|
||||
|
||||
@@ -64,7 +64,7 @@ systemd 提供向后兼容的功能。在 "/etc/init.d/rc[0123456S].d/[KS]name"
|
||||
每次启动的时候,在挂载了所有文件系统以后,"/tmp", "/var/lock", 和 "/var/run" 中的临时文件会被清空。
|
||||
:::
|
||||
|
||||
## 3.2.5. 网络接口初始化
|
||||
## 网络接口初始化
|
||||
|
||||
对于deepin,网络接口通常由两个服务进行初始化:lo 接口通常在“networking.service”处理,而其它接口则由“NetworkManager.service”处理。
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# 3.3. 内核消息
|
||||
# 内核消息
|
||||
|
||||
内核消息是内核向用户空间发送的消息,它们可以是错误、警告、信息等。
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# 3.4. 系统消息
|
||||
# 系统消息
|
||||
|
||||
在 systemd 下, 内核和系统的信息都通过日志服务 systemd-journald.service (又名 journald)来记录,放在"/var/log/journal"下的不变的二进制数据,或放在"/run/log/journal/"下的变化的二进制数据.这些二进制日志数据,可以通过 journalctl(1) 命令来访问。例如,你可以显示从最后一次启动以来的日志,按如下所示:
|
||||
```
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# 3.5. 系统管理
|
||||
# 系统管理
|
||||
|
||||
systemd 不仅仅提供系统初始化,还用 systemctl(1) 命令提供通用的系统管理操作
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# 3.6. 其他系统监控
|
||||
# 其他系统监控
|
||||
|
||||
这里是 systemd 下其它零星的监控命令列表。请阅读包括 cgroups(7) 在内的相关的 man 手册页
|
||||
| 操作 | 命令片段 |
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# 3.7. 定制Systemd
|
||||
# 定制Systemd
|
||||
|
||||
## 3.7.1. 套接字激活
|
||||
## 套接字激活
|
||||
|
||||
套接字激活是指,当一个服务需要监听一个端口时,它不会直接监听,而是由systemd来监听,然后将连接转发给服务。这样做的好处是,当服务不需要监听端口时,systemd就不会监听,从而节省了资源。
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# 3.8. udev系统
|
||||
# udev系统
|
||||
|
||||
udev是一个用于管理设备节点的守护进程,它会根据设备的属性来创建设备节点,udev的配置文件位于/etc/udev/目录下
|
||||
|
||||
@@ -12,7 +12,7 @@ udev是一个用于管理设备节点的守护进程,它会根据设备的属
|
||||
|
||||
由于 udev 系统是一个正在变化的事物,我在其它文档进行了详细描述,在这里只提供了最少的信息。
|
||||
|
||||
## 3.8.1. 内核模块初始化
|
||||
## 内核模块初始化
|
||||
|
||||
通过 modprobe(8) 程序添加和删除内核模块,使我们能够从用户进程来配置正在运行的 Linux 内核。udev 系统(参见 第 3.8 节 “udev 系统”)自动化它的调用来帮助内核模块初始化。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user