📄 0110whatislinux.htm
字号:
1.4 <a href="#whatislinux_gnu">关于 GNU 计画</a><br>
</span>
2. <a href="#torvalds">Torvalds 的 Linux 发展</a><br>
<span class=text_h2>
2.1 <a href="#torvalds_minix">与 Minix 之间</a><br>
2.2 <a href="#torvalds_multi">对 386 硬体的多工测试</a><br>
2.3 <a href="#torvalds_first">初次释出 Linux 0.02</a><br>
2.4 <a href="#torvalds_team">Linux 的发展∶虚拟团队的产生</a><br>
2.5 <a href="#torvalds_dist">Linux distributions</a><br>
</span>
3. <a href="#linuxpt">Linux 的特色</a><br>
<span class=text_h2>
3.1 <a href="#linuxpt_pt">Linux 的特色</a><br>
3.2 <a href="#linuxpt_adv">Linux 的优缺点</a><br>
3.1 <a href="#linuxpt_other">其他 Linux 相关</a><br>
</span>
4. <a href="#important">重点回顾</a><br>
5. <a href="#FAQ">本章练习</a><br>
6. <a href="#reference">参考资料</a><br>
<span class=text_h2>
7. <a href="http://phorum.vbird.org/viewtopic.php?t=23871"
target="_blank">针对本文的建议∶http://phorum.vbird.org/viewtopic.php?t=23871</a>
</span>
</span>
</div>
<!-- 本文的正式部分 -->
<hr><a NAME="whatislinux"></a><img src="images/penguin-m.gif" alt="大标题的图示" height="34" width="25" align="middle" /><span class="text_h1">什么是 Linux ?</span><br>
<div class=block1>
Linux 这玩意儿是在电脑上面运作的,所以,当然得要了解一下电脑这玩意儿。首先,到底有哪些种类的电脑呢?
而 Linux 可以在哪些种类的电脑上面运作?且 Linux 源自哪里?这些我们都得来谈一谈先!<br><br>
<hr><a name="whatislinux_computer"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /> <span class="text_h2">计算机∶计算的辅助工具</span><br>
<div class=block2>
在目前的都市生活中,您应该很难不接触到电脑这个玩意儿吧?
这个电脑当初在开发的时候,是希望可以辅助与简化人们进行大量的运算工作,
后来才发展成为一些特殊用途。无论如何,电脑基本的功能就是∶
『<span class="text_import2">接受使用者输入指令,经由 CPU 的数学与逻辑单元运算处理后,
以产生或储存成有用的资讯</span>』。为了达成这个功能,当然电脑就必须要有∶
<ul>
<li>输入单元∶例如滑鼠、键盘、读卡机等等
<li>中央处理器(CPU)∶含有算数逻辑、控制、记忆等单元
<li>输出单元∶例如萤幕、印表机等等</ul>
如果您看过电脑的话,那么上面的东西其实就是组成您电脑的主要元件棉!
而为了连结各个元件,因此有了主机板,所以,您的主机里面就包含了主机板以及 CPU ,
还有各种需要的介面卡。而萤幕、键盘、滑鼠则透过与主机的连结,就构成一部可以运作的电脑了。
另外,由于<span class="text_import2">电脑仅认识 0/1 ,因此电脑主要是以二进位的方式来计算的</span>,
因此,通常电脑的记忆/储存单位都是以 Byte 或 bits 为基本单位。他们的单位是这样的∶
<ul><span class="text_import2">
<li>1 Bytes = 8 bits
<li>1 KB = 1024 Bytes
<li>1 MB = 1024 KB
<li>1 GB = 1024 MB</ul></span>
而电脑也因为他的复杂度,而分为数种等级,例如∶
<ul>
<li><span class=text_import2>超级电脑(Supercomputer)∶</span><br>
超级电脑是运作速度最快的电脑,但是他的维护、操作费用也最高!
主要是用于需要有高速计算的计画中。例如∶国防军事、气象预测、太空科技,
用在模拟的领域较多。详情也可以参考∶国家高速网路与计算中心<a
href="http://www.nchc.org.tw/" target="_blank">http://www.nchc.org.tw/</a> 的介绍!
至于全世界的 500 大超级电脑,则请参考∶<a
href="http://www.top500.org/" target="_blank">http://www.top500.org/</a></li><br>
<li><span class=text_import2>大型电脑(Mainframe Computer)∶</span><br>
大型电脑通常也具有数个高速的 CPU ,功能上虽不及超级电脑,
但也可用来处理大量资料与复杂的运算。例如大型企业的主机、
全国性的证券交易所等每天需要处理数百万笔资料的企业机构,
或者是大型企业的资料库伺服器等等。</li><br>
<li><span class=text_import2>迷你电脑(Minicomputer)∶</span><br>
迷你电脑仍保有大型电脑同时支援多使用者的特性,但是主机可以放在一般作业场所,
不必像前两个大型电脑需要特殊的空调场所。通常用来作为科学研究、
工程分析与工厂的流程管理等。</li><br>
<li><span class=text_import2>微电脑(Microcomputer)∶</span><br>
又可以称为个人电脑,也是我们这本书主要探讨的目标!体积最小,价格最低,
但功能还是五脏俱全的!大致又可分为桌上型、笔记型等等。</ul>
虽然在目前个人电脑的使用甚为广泛,但是在 1990 年以前,个人电脑是比较不被重视的!
因为(1)他的运算速度在当时实在很差,而且(2)当时比较有名的作业系统也没有对个人电脑支援。
所以才会流行不太起来~ 嘿嘿!提到作业系统棉~
底下我们就来谈一谈之前的作业系统。
</div>
<hr><a name="whatislinux_os"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /> <span class="text_h2">什么是作业系统</span><br>
<div class=block2>
什么是作业系统 (Operation System, OS) 呢?我们先来想一想,
上面介绍的计算机(电脑)是如何工作的?举例来说,您电脑萤幕上面显示的讯息,
是如何显示出来的呢?嗯!是藉由显示卡与萤幕显像的。那么如果你想要看 VCD 呢?
呵呵,就需要 1.)有影音资料的光碟片、 2.)可读取光碟片的光碟机、
3.) 可以转换影音资料输出的中央处理器 (CPU)、 4.)可以显示影像的显示晶片(显示卡)、
5.) 可以传输声音的音效晶片(音效卡)、 6.)可以输出影像的萤幕以及 7.)可以发出声音的喇叭!
也就是说∶<span class=text_import2>所有在『工作』的东西都是『硬体』呀</span>!
对啦!就是硬体在工作!<br><br>
那么问题来了,现在我们知道,电脑所进行的工作都是电脑硬体帮我们达成的,但是,
为什么这些硬体知道如何播放 VCD 呢?这当然是因为有某个东西在正确的控制硬体的工作了,
那个咚咚就是∶ <span class=text_import2>作业系统</span> 啦!
作业系统可以管理整部电脑的硬体,他可以控制 CPU 进行正确的运算,
他可以分辨硬碟里头的资料并进行读取,他还必须要能够认识所有的介面卡,
这样,才能够将所有的硬体通通正确的使用上啊!
所以,如果没有这个作业系统,那么您的电脑就等于是一堆废铁而已啊!<br><br>
虽然作业系统可以完整的掌控所有的硬体资源,但是,对于使用者来说,还是不够的!
因为作业系统虽然可以掌控所有的硬体,但是,如果使用者无法与作业系统沟通,
那么这个作业系统就没有什么用处了。简单的来说,以上面的 VCD 为例,
虽然作业系统可以控制硬体播放 VCD ,但是,如果使用者没有办法控制何时要播出 VCD 的话,
那么到底我们要怎么看 VCD 啊?对吧!<br><br>
所以说,一个比较『<span class=text_import2>完整的作业系统</span>』应该要包含
两个东西,一个是『<span class=text_import2>核心与其提供的介面工具</span>』、
一个是『<span class="text_import2">利用核心提供的介面工具所开发出来的软体</span>』。
我们以大家常使用的 Windows 电脑来做一个简单的说明好了。大家应该都使用过 Windows
电脑里面的『档案总管』吧!当你开启档案总管的时候,他就会显示你硬碟当中的资料,
这个『显示硬碟里面的资料,就是核心帮你做的』,但是,
『你要核心去显示硬碟哪一个目录下的资料,则是由档案总管这个工具帮你达成的』!
这样可以理解吗?<br><br>
那么核心有没有作不到的事?当然有的,举例来说,
如果您曾经自行安装过比较新的显示卡在您的个人电脑上面,
那么应该常常会发生 Windows 电脑告知您∶『找不到合适的驱动程式来显示』的问题吧?
也就是说,即使您有最新的显示卡安装在您的个人电脑上面,而且也有播放 VCD 的程式,
但是因为『核心』无法操控这个最新的显示卡,所以,就无法正常的显示您的 VCD 了。
没错!<span class=text_import2>你的整个硬体是由核心来管理的,而如果核心不认识你的硬体,
那么你将无法使用该硬体设备</span>,例如上面提到的最新的显示卡。<br>
<div style="padding: 10 0 10 0 ;" align="right"><table width="90%"><tr><td><b>Tips:</b><br /><span style="font-style: italic; color : darkgreen"> 在定义上,只要能够让电脑硬体正确无误的运作,那就算是作业系统了。
所以说,作业系统其实就是核心与其提供的介面工具,
不过,就如同上面讲的,因为最阳春的核心缺乏了与使用者沟通的亲和介面,
所以在目前,一般我们提到的『作业系统』都会包含核心与相关的使用者应用软体呢!
</span></td><td><img src="../images/vbird_face.gif" /></td></tr></table></div>
核心就是『<span class="text_import1">Kernel</span>』,
他是一个作业系统的最底层的东西,由他来掌管整个硬体资源的工作状态,而
每个作业系统都有自己的核心,所以说,
当有新的硬体加入到你的系统中的时候,若你的『
Kernel 』并没有支援他的时候,呵呵,这个新的硬体就肯定无法工作的,因为控制他的
Kernel 并不认识他呀!这样了解了吗?!先有个概略性的了解,
后面我们提到『<a href="0540kernel.php">核心编译</a>』的时候会再更详细的谈到他!<br><br>
一般来说,Kernel 为了达成使用者所需要的正确运算结果,他必须要管理的事项有∶
<ul>
<li><span class="text_import1">系统呼叫介面(System call interface) </span>∶
为了方便程式开发者可以轻易的透过与 kernel 的沟通,将硬体的资源进一步的利用,
于是需要有这个简易的介面来方便程式开发者。</li>
<li><span class="text_import1">行程管理(Process control) </span>∶
总有听过所谓的『多工环境』吧?一部电脑可能同时间有很多的工作跑到 CPU 等待运算处理,
Kernel 这个时候必须要能够控制这些工作,让 CPU 的资源作有效的分配才行!</li>
<li><span class="text_import1">记忆体管理(Memory management) </span>∶
控制整个系统的记忆体管理,若记忆体不足, Kernel 最好还能够提供虚拟记忆体的功能!</li>
<li><span class="text_import1">档案系统管理(File system management) </span>∶
档案系统的管理,例如资料的输入输出 (I/O) 等等的工作啦!
还有不同档案格式的支援啦等等,如果你的核心不认识某个档案系统,
那么您将无法使用该档案格式的档案棉!例如∶
Windows 98 就不认识 NTFS 档案格式的硬碟;</li>
<li><span class="text_import1">装置的驱动(Device drivers) </span>∶
就如同上面提到的,硬体的管理是
Kernel 的主要工作之一,当然棉,装置的驱动程式就是核心需要做的事情啦!
好在目前都有所谓的『可载入模组』功能,可以将驱动程式编辑成模组,
就不需要重新的编译核心啦!这个也会在后续的<a href="0540kernel.php">核心编译</a>当中提到的!</li>
</ul>
所以啦!所有硬体的资源都是 kernel 来管理的!至于我们要达成一些工作时,除了藉由核心本身提供的功能
( 例如上面提到的档案总管 ) 之外,还可以藉由其他的应用软体来达成喔!举个例子来说,你要看
VCD 影片是吧!那么除了 Windows 提供的媒体播放程式之外,你也可以自行安装
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -