@@ -396,7 +396,7 @@ <h2>基本的操作系统名词和概念<a class="headerlink" href="#section-17"
396
396
< div class ="section " id ="section-18 ">
397
397
< h3 > 用户与内核的比较< a class ="headerlink " href ="#section-18 " title ="永久链接至标题 "> ¶</ a > </ h3 >
398
398
< span class ="admonition- "> </ span > < p > 内核(kernel)和用户(user)是操作系统中常用的两个术语。它们的定义很明确:内核是操作系统的一部分,以较高的权限级别运行;而用户(空间)通常指的是那些以较低权限级别运行的应用程序。</ p >
399
- < p > 然而,这些术语的含义过多 ,并且在某些情况下可能具有非常特定的含义。</ p >
399
+ < p > 然而,这些术语与其他词汇结合时含义经常会发生变化 ,并且在某些情况下可能具有非常特定的含义。</ p >
400
400
< p > 用户模式(User Mode)和内核模式(Kernel Mode)是指处理器执行模式的专业术语。在内核模式下,代码能够完全 < a class ="footnote-reference " href ="#hypervisor " id ="footnote-reference-1 "> [1]</ a > 控制 CPU,拥有最高权限;而用户模式下的代码则受到限制。例如,只有在内核模式下,才能启用或禁用 CPU 的本地中断;如果在用户模式下尝试这样的操作,则会触发异常,此时内核会介入处理。</ p >
401
401
< table class ="docutils footnote " frame ="void " id ="hypervisor " rules ="none ">
402
402
< colgroup > < col class ="label " /> < col /> </ colgroup >
@@ -454,7 +454,7 @@ <h3>单体内核<a class="headerlink" href="#section-20" title="永久链接至
454
454
</ div >
455
455
< div class ="section " id ="section-21 ">
456
456
< h3 > 微内核< a class ="headerlink " href ="#section-21 " title ="永久链接至标题 "> ¶</ a > </ h3 >
457
- < p > 微内核(Microkernel)是一种内核设计 ,其中大部分功能以受保护的方式相互作用,并通常作为用户空间中的服务来运行。因为内核的关键功能现在在用户模式下运行,导致在内核模式下运行的代码量大幅减少,微内核由此得名。</ p >
457
+ < p > 微内核是一种内核设计 ,其中大部分功能以受保护的方式相互作用,并通常作为用户空间中的服务来运行。因为内核的关键功能现在在用户模式下运行,导致在内核模式下运行的代码量大幅减少,微内核由此得名。</ p >
458
458
< blockquote >
459
459
< div > < div class ="highlight-text "> < div class ="highlight "> < pre > < span > </ span > +-----+ +--------+ +---------+ +---------+
460
460
| 应用 | | 文件 | | 网络 | | 显示 |<--+
@@ -483,11 +483,11 @@ <h3>微内核<a class="headerlink" href="#section-21" title="永久链接至标
483
483
< p > 在微内核架构中,内核只包含最基本代码(允许不同运行进程间进行消息传递)。在实际应用中,这意味着内核仅实现调度程序和进程间通信(IPC)机制,以及基础内存管理,从而在应用程序和服务之间建立了保护层。</ p >
484
484
< p > 这种架构的优点之一是服务被隔离,因此某一个服务中的错误不会影响其他服务。</ p >
485
485
< p > 因此,如果一个服务崩溃,我们可以只重启它而不影响整个系统。然而,实践中很难实现这一点,因为重新启动一个服务可能会影响依赖该服务的所有应用程序(例如,如果文件服务器崩溃,所有打开文件描述符的应用程序在访问文件时会遇到错误)。</ p >
486
- < p > 这种架构为内核带来了模块化的设计,并在各个服务之间实现了内存隔离,但这样做的代价是牺牲了一定的性能。在传统的单体内核中,两个服务之间可以通过简单的函数调用来交互,而在微内核架构中,这种交互需要通过进程间通信(IPC)和任务调度来完成,从而引入了额外的性能开销。</ p >
486
+ < p > 这种架构为内核带来了模块化的设计,并在各个服务之间实现了内存隔离,但这样做的代价是牺牲了一定的性能。在传统的单体内核中,两个服务之间可以通过简单的函数调用来交互,而在微内核架构中,这种交互需要通过进程间通信(IPC)和任务调度来完成,从而引入了额外的性能开销 < a class =" footnote-reference " href =" #minix-vs-linux " id =" footnote-reference-2 " > [2] </ a > 。</ p >
487
487
< table class ="docutils footnote " frame ="void " id ="minix-vs-linux " rules ="none ">
488
488
< colgroup > < col class ="label " /> < col /> </ colgroup >
489
489
< tbody valign ="top ">
490
- < tr > < td class ="label "> [2]</ td > < td > < a class ="reference external " href ="https://lwn.net/Articles/220255/ "> https://lwn.net/Articles/220255/</ a > </ td > </ tr >
490
+ < tr > < td class ="label "> < a class =" fn-backref " href =" #footnote-reference-2 " > [2]</ a > </ td > < td > < a class ="reference external " href ="https://lwn.net/Articles/220255/ "> https://lwn.net/Articles/220255/</ a > </ td > </ tr >
491
491
</ tbody >
492
492
</ table >
493
493
</ div >
0 commit comments