提交 ce7058b2 编写于 作者: Y Yifan Wu

Small fix

上级 76680637
引言
=====================
**本章导读**
本章导读
--------------------------
..
......@@ -21,14 +21,8 @@
在操作系统发展历史上,在1956年就诞生了操作系统GM-NAA I/O,并且被实际投入使用,它的一个主要任务就是"自动加载运行一个接一个的程序"。
**实践体验**
---------------------------
本章设计实现了一个支持显示字符串应用的简单操作系统--“三叶虫”操作系统。
实践体验
-----------------------------
---------------------------
本章设计实现了一个支持显示字符串应用的简单操作系统--“三叶虫”操作系统。
......
引言
================================
**本章导读**
本章导读
---------------------------------
..
......@@ -40,7 +40,7 @@
**实践体验**
实践体验
---------------------------
本章我们的批处理系统将连续运行三个应用程序,放在 ``user/src/bin`` 目录下。
......
引言
========================================
**本章导读**
本章导读
--------------------------
......@@ -47,10 +47,6 @@
.. _term-multiprogramming:
.. _term-time-sharing-multitasking:
**实践体验**
----------------------
**多道程序** (Multiprogramming) 和 **分时多任务系统** (Time-Sharing Multitasking) 对于应用的要求是不同的,因此我们分别为它们
编写了不同的应用,代码也被放在两个不同的分支上。对于它们更加深入的讲解请参考本章正文,我们在引言中仅给出运行代码的方法。
......
......@@ -5,10 +5,9 @@
.. _term-time-division-multiplexing:
.. _term-transparent:
**本章导读**
本章导读
-------------------------------
..
chyyuu:有一个ascii图,画出我们做的OS。
......@@ -35,7 +34,7 @@
超强防护能力的侏罗纪“头甲龙”操作系统。
**实践体验**
实践体验
-----------------------
本章的应用和上一章相同,只不过由于内核提供给应用的访存接口被替换,应用的构建方式发生了变化,这方面在下面会深入介绍。
......
......@@ -125,9 +125,8 @@ commentsRunWhenDOMLoaded(addUtterances);
<li class="toctree-l1"><a class="reference internal" href="../chapter0/index.html">第零章:操作系统概述</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">第一章:RV64 裸机应用</a><ul class="current">
<li class="toctree-l2 current"><a class="current reference internal" href="#">引言</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id2"><strong>本章导读</strong></a></li>
<li class="toctree-l3"><a class="reference internal" href="#id3"><strong>实践体验</strong></a></li>
<li class="toctree-l3"><a class="reference internal" href="#id4">实践体验</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id2">本章导读</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id3">实践体验</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="1app-ee-platform.html">应用程序执行环境与平台支持</a></li>
......@@ -232,7 +231,7 @@ commentsRunWhenDOMLoaded(addUtterances);
<div class="section" id="id1">
<h1>引言<a class="headerlink" href="#id1" title="永久链接至标题"></a></h1>
<div class="section" id="id2">
<h2><strong>本章导读</strong><a class="headerlink" href="#id2" title="永久链接至标题"></a></h2>
<h2>本章导读<a class="headerlink" href="#id2" title="永久链接至标题"></a></h2>
<p>大多数程序员的第一行代码都从 <code class="docutils literal notranslate"><span class="pre">Hello,</span> <span class="pre">world!</span></code> 开始,当我们满怀着好奇心在编辑器内键入仅仅数个字节,再经过几行命令编译(靠的是编译器)、运行(靠的是操作系统),终于在黑洞洞的终端窗口中看到期望中的结果的时候,一扇通往编程世界的大门已经打开。在本章第一节 <a class="reference internal" href="1app-ee-platform.html"><span class="doc">应用程序执行环境与平台支持</span></a> 中,可以看到用Rust语言编写的非常简单的“Hello, world”应用程序。</p>
<p>不过我们能够隐约意识到编程工作能够如此方便简洁并不是理所当然的,实际上有着多层硬件和软件工具和支撑环境隐藏在它背后,才让我们不必付出那么多努力就能够创造出功能强大的应用程序。生成应用程序二进制执行代码所依赖的是以 <strong>编译器</strong> 为主的开发环境;运行应用程序执行码所依赖的是以 <strong>操作系统</strong> 为主的执行环境。</p>
<p>本章主要是设计和实现建立在裸机上的执行环境,从中对应用程序和它所依赖的执行环境有一个全面和深入的理解。</p>
......@@ -244,11 +243,7 @@ commentsRunWhenDOMLoaded(addUtterances);
</div>
</div>
<div class="section" id="id3">
<h2><strong>实践体验</strong><a class="headerlink" href="#id3" title="永久链接至标题"></a></h2>
<p>本章设计实现了一个支持显示字符串应用的简单操作系统–“三叶虫”操作系统。</p>
</div>
<div class="section" id="id4">
<h2>实践体验<a class="headerlink" href="#id4" title="永久链接至标题"></a></h2>
<h2>实践体验<a class="headerlink" href="#id3" title="永久链接至标题"></a></h2>
<p>本章设计实现了一个支持显示字符串应用的简单操作系统–“三叶虫”操作系统。</p>
<p>获取本章代码:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>git clone https://github.com/rcore-os/rCore-Tutorial-v3.git
......
......@@ -227,9 +227,8 @@ commentsRunWhenDOMLoaded(addUtterances);
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="0intro.html">引言</a><ul>
<li class="toctree-l2"><a class="reference internal" href="0intro.html#id2"><strong>本章导读</strong></a></li>
<li class="toctree-l2"><a class="reference internal" href="0intro.html#id3"><strong>实践体验</strong></a></li>
<li class="toctree-l2"><a class="reference internal" href="0intro.html#id4">实践体验</a></li>
<li class="toctree-l2"><a class="reference internal" href="0intro.html#id2">本章导读</a></li>
<li class="toctree-l2"><a class="reference internal" href="0intro.html#id3">实践体验</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="1app-ee-platform.html">应用程序执行环境与平台支持</a><ul>
......
......@@ -126,8 +126,8 @@ commentsRunWhenDOMLoaded(addUtterances);
<li class="toctree-l1"><a class="reference internal" href="../chapter1/index.html">第一章:RV64 裸机应用</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">第二章:批处理系统</a><ul class="current">
<li class="toctree-l2 current"><a class="current reference internal" href="#">引言</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id2"><strong>本章导读</strong></a></li>
<li class="toctree-l3"><a class="reference internal" href="#id3"><strong>实践体验</strong></a></li>
<li class="toctree-l3"><a class="reference internal" href="#id2">本章导读</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id3">实践体验</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="1rv-privilege.html">特权级机制</a></li>
......@@ -230,7 +230,7 @@ commentsRunWhenDOMLoaded(addUtterances);
<div class="section" id="id1">
<h1>引言<a class="headerlink" href="#id1" title="永久链接至标题"></a></h1>
<div class="section" id="id2">
<h2><strong>本章导读</strong><a class="headerlink" href="#id2" title="永久链接至标题"></a></h2>
<h2>本章导读<a class="headerlink" href="#id2" title="永久链接至标题"></a></h2>
<p>上一章,我们在 RV64 裸机平台上成功运行起来了 <code class="docutils literal notranslate"><span class="pre">Hello,</span> <span class="pre">world!</span></code> 。看起来这个过程非常顺利,只需要一条命令就能全部完成。但实际上,在那个
计算机刚刚诞生的年代,很多事情并不像我们想象的那么简单。 当时,程序被记录在打孔的卡片上,使用汇编语言甚至机器语言来编写。而稀缺且昂贵的
计算机由专业的管理员负责操作,就和我们在上一章所做的事情一样,他们手动将卡片输入计算机,等待程序运行结束或者终止程序的运行。最后,他们从
......@@ -248,7 +248,7 @@ commentsRunWhenDOMLoaded(addUtterances);
<img alt="../_images/deng-fish.png" class="align-center" id="fish-os" src="../_images/deng-fish.png" />
</div>
<div class="section" id="id3">
<h2><strong>实践体验</strong><a class="headerlink" href="#id3" title="永久链接至标题"></a></h2>
<h2>实践体验<a class="headerlink" href="#id3" title="永久链接至标题"></a></h2>
<p>本章我们的批处理系统将连续运行三个应用程序,放在 <code class="docutils literal notranslate"><span class="pre">user/src/bin</span></code> 目录下。</p>
<p>获取本章代码:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>git clone https://github.com/rcore-os/rCore-Tutorial-v3.git
......
......@@ -226,8 +226,8 @@ commentsRunWhenDOMLoaded(addUtterances);
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="0intro.html">引言</a><ul>
<li class="toctree-l2"><a class="reference internal" href="0intro.html#id2"><strong>本章导读</strong></a></li>
<li class="toctree-l2"><a class="reference internal" href="0intro.html#id3"><strong>实践体验</strong></a></li>
<li class="toctree-l2"><a class="reference internal" href="0intro.html#id2">本章导读</a></li>
<li class="toctree-l2"><a class="reference internal" href="0intro.html#id3">实践体验</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="1rv-privilege.html">特权级机制</a><ul>
......
......@@ -127,9 +127,8 @@ commentsRunWhenDOMLoaded(addUtterances);
<li class="toctree-l1"><a class="reference internal" href="../chapter2/index.html">第二章:批处理系统</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">第三章:多道程序与分时多任务</a><ul class="current">
<li class="toctree-l2 current"><a class="current reference internal" href="#">引言</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id2"><strong>本章导读</strong></a></li>
<li class="toctree-l3"><a class="reference internal" href="#id2">本章导读</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id3">实践体验</a></li>
<li class="toctree-l3"><a class="reference internal" href="#term-time-sharing-multitasking"><strong>实践体验</strong></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="1multi-loader.html">多任务加载器</a></li>
......@@ -231,7 +230,7 @@ commentsRunWhenDOMLoaded(addUtterances);
<div class="section" id="id1">
<h1>引言<a class="headerlink" href="#id1" title="永久链接至标题"></a></h1>
<div class="section" id="id2">
<h2><strong>本章导读</strong><a class="headerlink" href="#id2" title="永久链接至标题"></a></h2>
<h2>本章导读<a class="headerlink" href="#id2" title="永久链接至标题"></a></h2>
<p>上一章,我们实现了一个简单的批处理系统。首先,它能够自动按照顺序加载并运行序列中的每一个应用,当一个应用运行结束之后无需操作员的手动替换;
另一方面,在硬件提供的特权级机制的帮助下,运行在更高特权级的它不会受到有意或者无意出错的应用的影响,可以全方位监控应用的执行,一旦应用越过了
硬件所设置的界限,就会触发 Trap 并进入到批处理系统中进行处理。无论原因是应用出错或是应用声明自己执行完毕,批处理系统都只需要加载序列中
......@@ -258,10 +257,7 @@ commentsRunWhenDOMLoaded(addUtterances);
</div>
<div class="section" id="id3">
<h2>实践体验<a class="headerlink" href="#id3" title="永久链接至标题"></a></h2>
</div>
<div class="section" id="term-time-sharing-multitasking">
<span id="term-multiprogramming"></span><span id="id4"></span><h2><strong>实践体验</strong><a class="headerlink" href="#term-time-sharing-multitasking" title="永久链接至标题"></a></h2>
<p><strong>多道程序</strong> (Multiprogramming) 和 <strong>分时多任务系统</strong> (Time-Sharing Multitasking) 对于应用的要求是不同的,因此我们分别为它们
<p id="term-time-sharing-multitasking"><span id="term-multiprogramming"></span><strong>多道程序</strong> (Multiprogramming) 和 <strong>分时多任务系统</strong> (Time-Sharing Multitasking) 对于应用的要求是不同的,因此我们分别为它们
编写了不同的应用,代码也被放在两个不同的分支上。对于它们更加深入的讲解请参考本章正文,我们在引言中仅给出运行代码的方法。</p>
<p>获取多道程序的代码:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>git clone https://github.com/rcore-os/rCore-Tutorial-v3.git
......
......@@ -226,9 +226,8 @@ commentsRunWhenDOMLoaded(addUtterances);
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="0intro.html">引言</a><ul>
<li class="toctree-l2"><a class="reference internal" href="0intro.html#id2"><strong>本章导读</strong></a></li>
<li class="toctree-l2"><a class="reference internal" href="0intro.html#id2">本章导读</a></li>
<li class="toctree-l2"><a class="reference internal" href="0intro.html#id3">实践体验</a></li>
<li class="toctree-l2"><a class="reference internal" href="0intro.html#term-time-sharing-multitasking"><strong>实践体验</strong></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="1multi-loader.html">多任务加载器</a></li>
......
......@@ -128,8 +128,8 @@ commentsRunWhenDOMLoaded(addUtterances);
<li class="toctree-l1"><a class="reference internal" href="../chapter3/index.html">第三章:多道程序与分时多任务</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">第四章:地址空间</a><ul class="current">
<li class="toctree-l2 current"><a class="current reference internal" href="#">引言</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#term-transparent"><strong>本章导读</strong></a></li>
<li class="toctree-l3"><a class="reference internal" href="#id3"><strong>实践体验</strong></a></li>
<li class="toctree-l3"><a class="reference internal" href="#term-transparent">本章导读</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id3">实践体验</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="1address-space.html">地址空间</a></li>
......@@ -232,7 +232,7 @@ commentsRunWhenDOMLoaded(addUtterances);
<div class="section" id="id1">
<h1>引言<a class="headerlink" href="#id1" title="永久链接至标题"></a></h1>
<div class="section" id="term-transparent">
<span id="term-time-division-multiplexing"></span><span id="term-illusion"></span><span id="id2"></span><h2><strong>本章导读</strong><a class="headerlink" href="#term-transparent" title="永久链接至标题"></a></h2>
<span id="term-time-division-multiplexing"></span><span id="term-illusion"></span><span id="id2"></span><h2>本章导读<a class="headerlink" href="#term-transparent" title="永久链接至标题"></a></h2>
<p>上一章,我们分别实现了多道程序和分时多任务系统,它们的核心机制都是任务切换。由于它们的设计初衷不同,它们切换
的时机和策略也不同。有趣的一点是,任务切换机制对于应用是完全 <strong>透明</strong> (Transparent) 的,应用可以不对内核
实现该机制的策略做任何假定
......@@ -254,7 +254,7 @@ commentsRunWhenDOMLoaded(addUtterances);
超强防护能力的侏罗纪“头甲龙”操作系统。</p>
</div>
<div class="section" id="id3">
<h2><strong>实践体验</strong><a class="headerlink" href="#id3" title="永久链接至标题"></a></h2>
<h2>实践体验<a class="headerlink" href="#id3" title="永久链接至标题"></a></h2>
<p>本章的应用和上一章相同,只不过由于内核提供给应用的访存接口被替换,应用的构建方式发生了变化,这方面在下面会深入介绍。
因此应用运行起来的话效果是和上一章保持一致的。</p>
<p>获取本章代码:</p>
......
......@@ -228,8 +228,8 @@ commentsRunWhenDOMLoaded(addUtterances);
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="0intro.html">引言</a><ul>
<li class="toctree-l2"><a class="reference internal" href="0intro.html#term-transparent"><strong>本章导读</strong></a></li>
<li class="toctree-l2"><a class="reference internal" href="0intro.html#id3"><strong>实践体验</strong></a></li>
<li class="toctree-l2"><a class="reference internal" href="0intro.html#term-transparent">本章导读</a></li>
<li class="toctree-l2"><a class="reference internal" href="0intro.html#id3">实践体验</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="1address-space.html">地址空间</a><ul>
......
无法预览此类型文件
因为 它太大了无法显示 source diff 。你可以改为 查看blob
引言
=====================
**本章导读**
本章导读
--------------------------
..
......@@ -21,14 +21,8 @@
在操作系统发展历史上,在1956年就诞生了操作系统GM-NAA I/O,并且被实际投入使用,它的一个主要任务就是"自动加载运行一个接一个的程序"。
**实践体验**
---------------------------
本章设计实现了一个支持显示字符串应用的简单操作系统--“三叶虫”操作系统。
实践体验
-----------------------------
---------------------------
本章设计实现了一个支持显示字符串应用的简单操作系统--“三叶虫”操作系统。
......
引言
================================
**本章导读**
本章导读
---------------------------------
..
......@@ -40,7 +40,7 @@
**实践体验**
实践体验
---------------------------
本章我们的批处理系统将连续运行三个应用程序,放在 ``user/src/bin`` 目录下。
......
引言
========================================
**本章导读**
本章导读
--------------------------
......@@ -47,10 +47,6 @@
.. _term-multiprogramming:
.. _term-time-sharing-multitasking:
**实践体验**
----------------------
**多道程序** (Multiprogramming) 和 **分时多任务系统** (Time-Sharing Multitasking) 对于应用的要求是不同的,因此我们分别为它们
编写了不同的应用,代码也被放在两个不同的分支上。对于它们更加深入的讲解请参考本章正文,我们在引言中仅给出运行代码的方法。
......
......@@ -5,10 +5,9 @@
.. _term-time-division-multiplexing:
.. _term-transparent:
**本章导读**
本章导读
-------------------------------
..
chyyuu:有一个ascii图,画出我们做的OS。
......@@ -35,7 +34,7 @@
超强防护能力的侏罗纪“头甲龙”操作系统。
**实践体验**
实践体验
-----------------------
本章的应用和上一章相同,只不过由于内核提供给应用的访存接口被替换,应用的构建方式发生了变化,这方面在下面会深入介绍。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册