Skip to content

Commit bdd0e62

Browse files
author
deployBot
committed
Deploy at Fri Apr 26 10:29:35 UTC 2024
1 parent 9992def commit bdd0e62

File tree

8 files changed

+297
-425
lines changed

8 files changed

+297
-425
lines changed

_sources/lectures/intro.rst.txt

Lines changed: 81 additions & 81 deletions
Large diffs are not rendered by default.

index.html

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -197,12 +197,12 @@ <h1>Linux 内核教学<a class="headerlink" href="#linux" title="永久链接至
197197
<li class="toctree-l4"><a class="reference internal" href="so2/lec1-intro.html#section-29">内核堆栈</a></li>
198198
<li class="toctree-l4"><a class="reference internal" href="so2/lec1-intro.html#section-30">可移植性</a></li>
199199
<li class="toctree-l4"><a class="reference internal" href="so2/lec1-intro.html#asmp">非对称多处理(ASMP)</a></li>
200-
<li class="toctree-l4"><a class="reference internal" href="so2/lec1-intro.html#symmetric-multiprocessing-smp">对称多处理(Symmetric MultiProcessing,SMP)</a></li>
201-
<li class="toctree-l4"><a class="reference internal" href="so2/lec1-intro.html#cpu">CPU可扩展性</a></li>
200+
<li class="toctree-l4"><a class="reference internal" href="so2/lec1-intro.html#smp">对称多处理(SMP)</a></li>
201+
<li class="toctree-l4"><a class="reference internal" href="so2/lec1-intro.html#cpu">CPU 可扩展性</a></li>
202202
</ul>
203203
</li>
204-
<li class="toctree-l3"><a class="reference internal" href="so2/lec1-intro.html#linux">Linux内核概述</a><ul>
205-
<li class="toctree-l4"><a class="reference internal" href="so2/lec1-intro.html#linux-1">Linux开发模型</a></li>
204+
<li class="toctree-l3"><a class="reference internal" href="so2/lec1-intro.html#linux">Linux 内核概述</a><ul>
205+
<li class="toctree-l4"><a class="reference internal" href="so2/lec1-intro.html#linux-1">Linux 开发模型</a></li>
206206
<li class="toctree-l4"><a class="reference internal" href="so2/lec1-intro.html#section-31">维护者层次结构</a></li>
207207
<li class="toctree-l4"><a class="reference internal" href="so2/lec1-intro.html#linux-2">Linux 源代码布局</a></li>
208208
<li class="toctree-l4"><a class="reference internal" href="so2/lec1-intro.html#linux-3">Linux 内核结构</a><ul>
@@ -211,7 +211,7 @@ <h1>Linux 内核教学<a class="headerlink" href="#linux" title="永久链接至
211211
<li class="toctree-l5"><a class="reference internal" href="so2/lec1-intro.html#section-33">进程管理</a></li>
212212
<li class="toctree-l5"><a class="reference internal" href="so2/lec1-intro.html#section-34">内存管理</a></li>
213213
<li class="toctree-l5"><a class="reference internal" href="so2/lec1-intro.html#i-o">块 I/O 管理</a></li>
214-
<li class="toctree-l5"><a class="reference internal" href="so2/lec1-intro.html#section-35">虚拟文件系统切换</a></li>
214+
<li class="toctree-l5"><a class="reference internal" href="so2/lec1-intro.html#section-35">虚拟文件系统</a></li>
215215
<li class="toctree-l5"><a class="reference internal" href="so2/lec1-intro.html#section-36">网络堆栈</a></li>
216216
<li class="toctree-l5"><a class="reference internal" href="so2/lec1-intro.html#linux-4">Linux 安全模块</a></li>
217217
</ul>
@@ -1092,12 +1092,12 @@ <h1>Linux 内核教学<a class="headerlink" href="#linux" title="永久链接至
10921092
<li class="toctree-l3"><a class="reference internal" href="lectures/intro.html#section-15">内核堆栈</a></li>
10931093
<li class="toctree-l3"><a class="reference internal" href="lectures/intro.html#section-16">可移植性</a></li>
10941094
<li class="toctree-l3"><a class="reference internal" href="lectures/intro.html#asmp">非对称多处理(ASMP)</a></li>
1095-
<li class="toctree-l3"><a class="reference internal" href="lectures/intro.html#symmetric-multiprocessing-smp">对称多处理(Symmetric MultiProcessing,SMP)</a></li>
1096-
<li class="toctree-l3"><a class="reference internal" href="lectures/intro.html#cpu">CPU可扩展性</a></li>
1095+
<li class="toctree-l3"><a class="reference internal" href="lectures/intro.html#smp">对称多处理(SMP)</a></li>
1096+
<li class="toctree-l3"><a class="reference internal" href="lectures/intro.html#cpu">CPU 可扩展性</a></li>
10971097
</ul>
10981098
</li>
1099-
<li class="toctree-l2"><a class="reference internal" href="lectures/intro.html#linux">Linux内核概述</a><ul>
1100-
<li class="toctree-l3"><a class="reference internal" href="lectures/intro.html#linux-1">Linux开发模型</a></li>
1099+
<li class="toctree-l2"><a class="reference internal" href="lectures/intro.html#linux">Linux 内核概述</a><ul>
1100+
<li class="toctree-l3"><a class="reference internal" href="lectures/intro.html#linux-1">Linux 开发模型</a></li>
11011101
<li class="toctree-l3"><a class="reference internal" href="lectures/intro.html#section-17">维护者层次结构</a></li>
11021102
<li class="toctree-l3"><a class="reference internal" href="lectures/intro.html#linux-2">Linux 源代码布局</a></li>
11031103
<li class="toctree-l3"><a class="reference internal" href="lectures/intro.html#linux-3">Linux 内核结构</a><ul>
@@ -1106,7 +1106,7 @@ <h1>Linux 内核教学<a class="headerlink" href="#linux" title="永久链接至
11061106
<li class="toctree-l4"><a class="reference internal" href="lectures/intro.html#section-19">进程管理</a></li>
11071107
<li class="toctree-l4"><a class="reference internal" href="lectures/intro.html#section-20">内存管理</a></li>
11081108
<li class="toctree-l4"><a class="reference internal" href="lectures/intro.html#i-o">块 I/O 管理</a></li>
1109-
<li class="toctree-l4"><a class="reference internal" href="lectures/intro.html#section-21">虚拟文件系统切换</a></li>
1109+
<li class="toctree-l4"><a class="reference internal" href="lectures/intro.html#section-21">虚拟文件系统</a></li>
11101110
<li class="toctree-l4"><a class="reference internal" href="lectures/intro.html#section-22">网络堆栈</a></li>
11111111
<li class="toctree-l4"><a class="reference internal" href="lectures/intro.html#linux-4">Linux 安全模块</a></li>
11121112
</ul>

lectures/intro-slides.html

Lines changed: 23 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -171,13 +171,13 @@ <h2>单体内核</h2>
171171
</article>
172172
<article class="admonition- slide level-2">
173173

174-
<h2>单体内核*可以*是模块化的</h2>
174+
<h2>单体内核 <em>可以</em> 是模块化的</h2>
175175

176176
<ul class="simple">
177177
<li>组件可以在编译时启用或禁用</li>
178-
<li>支持可加载的内核模块(在运行时)</li>
178+
<li>支持可加载内核模块(在运行时)</li>
179179
<li>将内核组织成逻辑上独立的子系统</li>
180-
<li>严格的接口,但其性能开销低:宏、内联函数以及函数指针</li>
180+
<li>接口严格,但其性能开销低:宏、内联函数以及函数指针</li>
181181
</ul>
182182

183183

@@ -188,8 +188,8 @@ <h2>单体内核*可以*是模块化的</h2>
188188

189189
<h2>“混合”内核</h2>
190190

191-
<p>许多操作系统和内核专家认为这个标签毫无意义,只是营销手段。Linus Torvalds 对此问题说</p>
192-
<p>“至于所谓的‘混合内核’,那只是营销而已。‘哦,那些微内核有很好的公关,我们怎么能给我们的工作内核也弄点好公关呢?哦,我知道了,让我们用一个酷酷的名字,来暗示它具有其他系统所拥有的所有公关优势’。</p>
191+
<p>许多操作系统和内核专家认为这种标签没有实际意义,仅仅是市场营销的策略。Linus Torvalds 对此评论道</p>
192+
<p>“至于所谓的‘混合内核’,那完全是营销的产物。‘噢,微内核获得了很多好评,我们怎样才能为我们的内核也赢得一些好评呢?我有个主意,就让我们给它起一个很酷的名字,暗示它拥有所有其他系统的优势。’</p>
193193

194194

195195

@@ -204,12 +204,12 @@ <h2>地址空间</h2>
204204
</ul>
205205
<blockquote>
206206
<div><ul class="simple">
207-
<li>RAM和外设内存</li>
207+
<li>RAM 和外设内存</li>
208208
</ul>
209209
</div></blockquote>
210210
<ul class="simple">
211211
<li>虚拟地址空间<ul>
212-
<li>CPU 在受保护/分页模式下看到的内存</li>
212+
<li>CPU 在受保护/分页模式下感知的内存</li>
213213
<li>进程地址空间</li>
214214
<li>内核地址空间</li>
215215
</ul>
@@ -302,9 +302,9 @@ <h2>多任务处理</h2>
302302

303303
<h2>抢占式内核</h2>
304304

305-
<p>抢占式多任务处理和抢占式内核是不同的术语</p>
306-
<p>如果一个进程在内核模式下运行时可以被抢占,则内核是抢占式的</p>
307-
<p>然而,请注意非抢占式内核可能支持抢占式多任务处理</p>
305+
<p>抢占式多任务处理与抢占式内核是两个不同的概念</p>
306+
<p>如果一个进程在内核模式下运行时可以被其他进程抢占,那么这个内核就是抢占式的</p>
307+
<p>然而,请注意,即使是非抢占式内核,也可能支持抢占式多任务处理</p>
308308

309309

310310

@@ -314,7 +314,7 @@ <h2>抢占式内核</h2>
314314

315315
<h2>可分页的内核内存</h2>
316316

317-
<p>如果内核内存的某些部分(代码、数据、堆栈或动态分配内存)可以交换到磁盘上,则内核支持可分页的内核内存</p>
317+
<p>如果内核内存的某些部分(如代码、数据、堆栈或动态分配的内存)能够被交换到磁盘上,那么该内核就支持可分页的内核内存</p>
318318

319319

320320

@@ -324,8 +324,8 @@ <h2>可分页的内核内存</h2>
324324

325325
<h2>内核堆栈</h2>
326326

327-
<p>每个进程都有一个内核堆栈,用于在执行系统调用时,保持函数调用链和局部变量状态。内核栈在进程处于内核模式时使用</p>
328-
<p>内核堆栈很小(4 KB - 12 KB),因此内核开发人员必须避免在堆栈上分配大型结构或未适当限定的递归调用</p>
327+
<p>每个进程都配备了一个内核堆栈,该堆栈用于维护函数调用链和局部变量的状态。当进程因系统调用而运行在内核模式下时,会使用到这个内核堆栈</p>
328+
<p>由于内核堆栈的容量相对较小(通常在 4 KB 12 KB 之间),内核开发人员必须避免在堆栈上分配大型数据结构或进行深度未受限的递归调用</p>
329329

330330

331331

@@ -439,9 +439,9 @@ <h2>Linux开发模型</h2>
439439
<ul class="simple">
440440
<li>开源,采用 GPLv2 许可证</li>
441441
<li>贡献者:公司、学术界和独立开发者</li>
442-
<li>开发周期:3 - 4 个月,包括 1 - 2 周的合并窗口(merge window)和错误修复阶段</li>
443-
<li>新功能只允许在合并窗口期间合并</li>
444-
<li>合并窗口结束后,每周会制作一个发行候选(release candidate)版本(rc1、rc2等</li>
442+
<li>开发周期:3——4 个月,包括 1——2 周的合并窗口(merge window)和错误修复阶段</li>
443+
<li>新特性只允许在合并窗口期间合并</li>
444+
<li>合并窗口结束后,每周会制作一个发行候选(release candidate)版本(rc1、rc2 等</li>
445445
</ul>
446446

447447

@@ -471,39 +471,7 @@ <h2>维护者层次结构</h2>
471471

472472
<h2>Linux 源代码布局</h2>
473473

474-
<div class="highlight-text"><div class="highlight"><pre><span></span>+-------+
475-
| linux |
476-
+-+-----+
477-
|
478-
+------+--------+---------+---------+--------------+--------------+
479-
| | | | | | |
480-
| v v v v v v
481-
| +------+ +-------+ +-------+ +--------+ +---------------+ +---------+
482-
| | arch | | block | | certs | | crypto | | Documentation | | drivers |
483-
| +------+ +-------+ +-------+ +--------+ +---------------+ +---------+
484-
|
485-
+-------+----------+--------+---------+--------+--------+---------+
486-
| | | | | | | |
487-
| v v v v v v v
488-
| +----------+ +----+ +---------+ +------+ +-----+ +--------+ +-----+
489-
| | firmware | | fs | | include | | init | | ipc | | kernel | | lib |
490-
| +----------+ +----+ +---------+ +------+ +-----+ +--------+ +-----+
491-
|
492-
+-----+------+---------+------------+------------+------------+
493-
| | | | | | |
494-
| v v v v v v
495-
| +----+ +-----+ +---------+ +---------+ +----------+ +-------+
496-
| | mm | | net | | samples | | scripts | | security | | sound |
497-
| +----+ +-----+ +---------+ +---------+ +----------+ +-------+
498-
|
499-
+------+--------+--------+
500-
| | |
501-
v v v
502-
+-------+ +-----+ +------+
503-
| tools | | usr | | virt |
504-
+-------+ +-----+ +------+
505-
</pre></div>
506-
</div>
474+
<img alt="../_images/ditaa-f45246aade5ecc7cfb71f7f103a57f95fc7c2b9e.png" src="../_images/ditaa-f45246aade5ecc7cfb71f7f103a57f95fc7c2b9e.png" />
507475

508476

509477

@@ -569,9 +537,9 @@ <h2>arch</h2>
569537

570538
<ul class="simple">
571539
<li>针对架构的特定代码</li>
572-
<li>可能进一步细分为针对机器的特定代码</li>
540+
<li>可能进一步细分为针对特定机器的代码</li>
573541
<li>与引导加载程序(boot loader)以及特定于架构的初始化程序进行交互</li>
574-
<li>访问各种硬件位,这些硬件位是架构或机器特定的,例如中断控制器、SMP 控制器、总线控制器、异常和中断设置以及虚拟内存处理</li>
542+
<li>操作各种硬件位,这些硬件位是架构或机器特定的,例如中断控制器、SMP 控制器、总线控制器、异常和中断设置以及虚拟内存处理</li>
575543
<li>针对架构优化的函数(例如 memcpy,字符串操作等)</li>
576544
</ul>
577545

@@ -666,13 +634,13 @@ <h2>块I/O管理</h2>
666634
</article>
667635
<article class="admonition- slide level-2">
668636

669-
<h2>虚拟文件系统切换</h2>
637+
<h2>虚拟文件系统</h2>
670638

671639
<div class="highlight-text"><div class="highlight"><pre><span></span> ^ ^ ^
672640
| stat | open | read
673641
v v v
674642
+------------------------------------------------------------+
675-
| 虚拟文件系统切换 |
643+
| 虚拟文件系统 |
676644
| |
677645
| |
678646
| /-------\ /--------\ /--------\ |
@@ -746,9 +714,9 @@ <h2>网络堆栈</h2>
746714
<h2>Linux 安全模块</h2>
747715

748716
<ul class="simple">
749-
<li>扩展默认的 Linux 安全模型的钩子</li>
717+
<li>扩展默认的 Linux 安全模型的钩子(hook)</li>
750718
<li>被几个 Linux 安全扩展使用:<ul>
751-
<li>安全增强型 Linux(Security Enhanced Linux,SELinux)</li>
719+
<li>安全增强型 Linux(SELinux)</li>
752720
<li>AppArmor</li>
753721
<li>Tomoyo</li>
754722
<li>Smack</li>

0 commit comments

Comments
 (0)