diff --git a/labs/arm_kernel_development.rst b/labs/arm_kernel_development.rst index 399a2fb..5c74a62 100644 --- a/labs/arm_kernel_development.rst +++ b/labs/arm_kernel_development.rst @@ -256,7 +256,7 @@ Qemu =========== .. include:: ../labs/exercises-summary.hrst -.. |LAB_NAME| replace:: ARM 内核开发 +.. |LAB_NAME| replace:: arm_kernel_development .. warning:: diff --git a/labs/block_device_drivers.rst b/labs/block_device_drivers.rst index 5733cda..54e7b46 100644 --- a/labs/block_device_drivers.rst +++ b/labs/block_device_drivers.rst @@ -689,7 +689,7 @@ ========= .. include:: ../labs/exercises-summary.hrst -.. |LAB_NAME| replace:: 块设备驱动程序 +.. |LAB_NAME| replace:: block_device_drivers 0. 简介 -------- diff --git a/labs/deferred_work.rst b/labs/deferred_work.rst index c767d46..194c590 100644 --- a/labs/deferred_work.rst +++ b/labs/deferred_work.rst @@ -553,7 +553,7 @@ tasklet ======== .. include:: ../labs/exercises-summary.hrst -.. |LAB_NAME| replace:: 延迟工作 +.. |LAB_NAME| replace:: deferred_work 0. 简介 -------- diff --git a/labs/device_drivers.rst b/labs/device_drivers.rst index 9f6c313..ef11ce9 100644 --- a/labs/device_drivers.rst +++ b/labs/device_drivers.rst @@ -583,7 +583,7 @@ ioctl ========= .. include:: ../labs/exercises-summary.hrst -.. |LAB_NAME| replace:: 设备驱动 +.. |LAB_NAME| replace:: device_drivers 0. 简介 ------- diff --git a/labs/device_model.rst b/labs/device_model.rst index ed5f481..d108f5f 100644 --- a/labs/device_model.rst +++ b/labs/device_model.rst @@ -867,7 +867,7 @@ PNP 操作 ========= .. include:: ../labs/exercises-summary.hrst -.. |LAB_NAME| replace:: 设备模型 +.. |LAB_NAME| replace:: device_model 0. 引言 --------- diff --git a/labs/exercises-summary.hrst b/labs/exercises-summary.hrst index 7106ef5..28aae53 100644 --- a/labs/exercises-summary.hrst +++ b/labs/exercises-summary.hrst @@ -15,13 +15,13 @@ .. code-block:: shell tools/labs $ make clean - tools/labs $ LABS= make skels + tools/labs $ LABS=<实验名称> make skels 你还可以使用以下命令为单个任务生成骨架代码: .. code-block:: shell - tools/labs $ LABS=/ make skels + tools/labs $ LABS=<实验名称>/<任务名称> make skels 生成骨架驱动程序后,构建源代码: @@ -35,7 +35,7 @@ tools/labs $ make console - 模块将放置在 /home/root/skels/|LAB_NAME|/ 目录中。 + 模块将放置在 /home/root/skels/|LAB_NAME|/<任务名称> 目录中。 重新构建模块时,无需停止虚拟机!本地 `skels` 目录与虚拟机共享。 diff --git a/labs/filesystems_part1.rst b/labs/filesystems_part1.rst index 602bcb4..bd64e27 100644 --- a/labs/filesystems_part1.rst +++ b/labs/filesystems_part1.rst @@ -414,7 +414,7 @@ VFS 函数通常以超级块、索引节点和/或包含指向超级块的指针 ========= .. include:: ../labs/exercises-summary.hrst -.. |LAB_NAME| replace:: 文件系统 +.. |LAB_NAME| replace:: filesystems .. _[SURVEY-LABEL] diff --git a/labs/filesystems_part2.rst b/labs/filesystems_part2.rst index 384b454..ca35f2d 100644 --- a/labs/filesystems_part2.rst +++ b/labs/filesystems_part2.rst @@ -550,7 +550,7 @@ Dentry 操作 ========= .. include:: ../labs/exercises-summary.hrst -.. |LAB_NAME| replace:: 文件系统 +.. |LAB_NAME| replace:: filesystems .. important:: diff --git a/labs/infrastructure.rst b/labs/infrastructure.rst index 63d0a4f..745bc55 100644 --- a/labs/infrastructure.rst +++ b/labs/infrastructure.rst @@ -35,7 +35,7 @@ .. code-block:: shell tools/labs $ make build - echo "# 自动生成的,不要编辑 " > skels/Kbuild + echo "# autogenerated, do not edit " > skels/Kbuild for i in ./kernel_modules/8-kprobes; do echo "obj-m += $i/" >> skels/Kbuild; done make -C /home/tavi/src/linux M=/home/tavi/src/linux/tools/labs/skels ARCH=x86 modules make[1]: Entering directory '/home/tavi/src/linux' diff --git a/labs/interrupts.rst b/labs/interrupts.rst index c878409..afef4e3 100644 --- a/labs/interrupts.rst +++ b/labs/interrupts.rst @@ -451,7 +451,7 @@ ioperm 函数的第三个参数用于请求或释放端口权限:1 表示获 * drivers/input/serio/i8042.c * drivers/input/keyboard/atkbd.c -Linux设备驱动程序 +Linux 设备驱动程序 -------------------- * `Linux 设备驱动程序,第 3 版,第 9 章——与硬件通信 `_ @@ -463,7 +463,7 @@ Linux设备驱动程序 ========= .. include:: ../labs/exercises-summary.hrst -.. |LAB_NAME| replace:: 中断 +.. |LAB_NAME| replace:: interrupts 0. 简介 -------- diff --git a/labs/kernel_profiling.rst b/labs/kernel_profiling.rst index 2392039..afe10aa 100644 --- a/labs/kernel_profiling.rst +++ b/labs/kernel_profiling.rst @@ -156,7 +156,7 @@ top ========= .. include:: ../labs/exercises-summary.hrst -.. |LAB_NAME| replace:: 内核分析 +.. |LAB_NAME| replace:: kernel_profiling .. note:: diff --git a/labs/memory_mapping.rst b/labs/memory_mapping.rst index 95efe70..1eff106 100644 --- a/labs/memory_mapping.rst +++ b/labs/memory_mapping.rst @@ -227,7 +227,7 @@ mmap 系统调用有以下参数: ========= .. include:: ../labs/exercises-summary.hrst -.. |LAB_NAME| replace:: 内存映射 +.. |LAB_NAME| replace:: memory_mapping 1. 将连续的物理内存映射到用户空间 -------------------------------------------------- diff --git a/labs/networking.rst b/labs/networking.rst index 90eee6c..bf49277 100644 --- a/labs/networking.rst +++ b/labs/networking.rst @@ -816,7 +816,7 @@ netcat ==== .. include:: ../labs/exercises-summary.hrst -.. |LAB_NAME| replace:: 网络 +.. |LAB_NAME| replace:: networking .. important:: diff --git a/lectures/intro.rst b/lectures/intro.rst index e3c2cd8..c0b5993 100644 --- a/lectures/intro.rst +++ b/lectures/intro.rst @@ -85,6 +85,7 @@ :inline-contents: True .. image:: ../img/lectures/Monolithic_kernel.svg + :width: 660px 尽管如此,大部分单体内核在子系统间都实现了逻辑上的分隔,尤其是核心内核与设备驱动程序之间,它们通常需要通过较为严格的 API 来互相访问服务(这些 API 并非总是固定不变的)。显然,这种做法依赖于内核的具体实现和架构设计。