<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>http://wiki.foofun.cn//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=117.91.74.46</id>
	<title>osdev - 用户贡献 [zh-cn]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.foofun.cn//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=117.91.74.46"/>
	<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=%E7%89%B9%E6%AE%8A:%E7%94%A8%E6%88%B7%E8%B4%A1%E7%8C%AE/117.91.74.46"/>
	<updated>2026-04-05T12:06:56Z</updated>
	<subtitle>用户贡献</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://wiki.foofun.cn//index.php?title=Basic_Theory_Of_Computer_Science&amp;diff=313</id>
		<title>Basic Theory Of Computer Science</title>
		<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=Basic_Theory_Of_Computer_Science&amp;diff=313"/>
		<updated>2022-01-25T06:47:23Z</updated>

		<summary type="html">&lt;p&gt;117.91.74.46：&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{In_Progress}}&lt;br /&gt;
&lt;br /&gt;
本文旨在向不熟悉计算机理论，计算的基本概念以及计算机系统的组织和结构的新用户解释。&lt;br /&gt;
&lt;br /&gt;
创建本文的想法是受到OSDev.org上此类理论文章和页面的普遍混乱的启发。&lt;br /&gt;
而且只要理论对初学者来说 '非常' 重要 '(并且只要他们通常从未读过严肃的 [[books]])'，这种理论材料的混乱结构就会引起全面研究OS开发的问题。 但是这篇文章是为了解决这个问题&lt;br /&gt;
&lt;br /&gt;
不可能在一篇文章中研究物理学，电路和计算机科学的所有主题。 相反，所有这些主题都将被简短地触及。&lt;br /&gt;
要按有组织的顺序这样做，我们必须将系统划分为各个层次，每个层次都有自己的规则和目标。 为此，我们必须 “控制系统的复杂性”&lt;br /&gt;
&lt;br /&gt;
== 控制电子系统的复杂性 ==&lt;br /&gt;
[[File:Abstraction_Layers.png|thumb|300px|right|抽象级别]]&lt;br /&gt;
你用来阅读本文 “(让我猜这是一台个人计算机)” 的系统是人类有史以来最复杂的系统之一。 试想几个单独的集成电路上的数千亿个晶体管联合在一起，以千兆赫的速率运行，一眨眼就运行了数亿行代码 -- 数十万计算机科学家、工程师和程序员团结一致，在不到80年的时间里让这一奇迹成真……&lt;br /&gt;
&lt;br /&gt;
但是，我敢打赌，使用这样的 “奇迹” 不会遇到任何麻烦。 它的主要原因是，尽管你没有真正意识到这一点，但你正在 “控制系统的复杂性”。 它让你只需点击几下鼠标就能打开这篇文章，而不必记住细节，例如，你的浏览器用来从网站上获取这篇文章的HTML协议。&lt;br /&gt;
相反，你将此任务委托给你的 “web浏览器”- 这是一个 ''' 应用软件 ''' [[File:Application_Software.png | 20px]]，它使用 ''' 操作系统 ''' [[File:Operating_System.png | 20px]] 的能力来运行，它使用 ''' 架构 ''' [[File:Architecture.png | 20px]] 层的定义和规则，依此类推&lt;br /&gt;
&lt;br /&gt;
通常开发者为一个一般的电子计算系统定义9层抽象:&lt;br /&gt;
# ''应用软件'' [[File:Application_Software.png|20px]]&lt;br /&gt;
#: 使用操作系统功能解决用户问题的程序&lt;br /&gt;
# ''操作系统 ''' [[File:Operating_System.png|20px]]&lt;br /&gt;
#: 操作计算机硬件，管理系统资源并为应用软件提供API和驱动程序&lt;br /&gt;
# '''指令架构 Architecture''' [[File:Architecture.png|20px]] (也称为 [[Instruction Set Architecture |指令集体系架构 ISA]])&lt;br /&gt;
#: 从程序员的角度描述电子系统。定义指令集，可见寄存器。由微架构实现&lt;br /&gt;
# '''微架构 Microarchitecture''' [[File:Microarchitecture.png| 20px]]&lt;br /&gt;
#: 使用逻辑元素实现体系结构&lt;br /&gt;
# '''逻辑门 Logic''' [[File:Logic.png | 20px]]&lt;br /&gt;
#: 各类组合数字电路以创建功能块，例如加法器，多路复用器等。&lt;br /&gt;
# '''数字电路 Digital Circuits''' [[文件: Digital_Circuits.png | 20px]]&lt;br /&gt;
#: 使用模拟电路创建数字电路模型，可用于数字设计&lt;br /&gt;
# '''模拟电路' '[[File:Analog_Circuits.png|20px]]&lt;br /&gt;
#: 组合设备以创建具有所需属性的电路&lt;br /&gt;
# '''设备器件 Devices''' [[File:Devices.png|20px]]&lt;br /&gt;
#: 使用物理模型来创建可用于电路的设备，例如晶体管和二极管&lt;br /&gt;
# ''' [[#Physics layer| 物理]]''' [[File:Physics.png | 20px]]&lt;br /&gt;
#: 探索世界并将获得的知识系统化到相互关联的规则和理论中 &amp;lt;abbr title = “意味着其他人不必自己获得该知识”&amp;gt; 轻松地 &amp;lt;/abbr&amp;gt; 由其他人研究&lt;br /&gt;
----&lt;br /&gt;
如你所见，每个抽象级别都使用底层级别的模型和功能 (例如，“逻辑”层 使用 “数字电路”层，就像 “应用软件”层 使用 “操作系统”层 一样)&lt;br /&gt;
此外，每个级别都隐藏了上面级别的实现细节 (例如，用户不必费心用 “计算机”层的形式表示他们的请求，只需要 “应用软件”层 提供了人类可理解的GUI)&lt;br /&gt;
&lt;br /&gt;
这意味着每一层都完成了两个任务:&lt;br /&gt;
* ''' 为上层提供简化的接口 '''&lt;br /&gt;
*: 例如，你的PC硬盘上没有 “文件”-仅能按指定顺序写入了一些字节。 “文件” 只是在物理驱动器上存储文件的抽象模型，由 “文件系统” 实现- 文件是你的 “操作系统” 的一部分。因此，“文件系统” 通过 “实现简单的文件I/o” 为应用软件提供了非常方便的 “界面接口”。&lt;br /&gt;
* ''' 隐藏本层的实现细节并对其进行管理 '''&lt;br /&gt;
*: 例如，“文件系统” 还包含用于不同类型的存储设备的驱动程序，例如硬盘驱动器，光盘驱动器等。 每个都有自己的接口要处理。 但是，作为用户，你并不需要牢记这些细节。 因此，'''filesystem''' 负责处理它，'''details''' 向用户隐藏此类详细信息 '''，'''管理''' 所有这些低级事物&lt;br /&gt;
&lt;br /&gt;
''由于本教程是为操作系统和应用程序开发人员编写的，因此将跳过对三个较低层次结构的仅描述以下内容''&lt;br /&gt;
&lt;br /&gt;
=== 数字电路 ===&lt;br /&gt;
[[File:Analog_Digital_Compare.png|thumb|300px|right|复杂的模拟信号和数字信号之间是有差异的。 虽然模拟信号被表面上似乎是完全混乱的，但数字信号仍然是可以理解的]]&lt;br /&gt;
如你所知，所有的现代计算机都是使用数字逻辑实现的，但是为什么呢？&lt;br /&gt;
&lt;br /&gt;
以下是几个主要原因:&lt;br /&gt;
# 数字信号比模拟信号更 “稳定” 和 “可靠”，因为它们不太容易产生失真，噪声和干扰。&lt;br /&gt;
# 数字电路使用不同的技术在硬件中设计和实现相对“容易” 和 “便宜”&lt;br /&gt;
# 不同的数字电路可以 “轻松组合”，创建更复杂的电路。&lt;br /&gt;
&lt;br /&gt;
这些事实是当今数字逻辑控制建立在模拟电路上的主要原因。&lt;br /&gt;
&lt;br /&gt;
那么，是什么帮助数字逻辑获得如此吸引人的属性呢？&lt;br /&gt;
它仅运行于两个信号状态-低和高，而不考虑像模拟电路那样宽的电压频谱范围。&lt;br /&gt;
[[Category:In Progress|{{PAGENAME}}]]&lt;br /&gt;
[[Category:Theory|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>117.91.74.46</name></author>
	</entry>
</feed>