📄 0110whatislinux.htm
字号:
<li>复制∶您可以自由的复制该软体;
<li>修改∶您可以将取得的原始码进行程式修改工作,使之适合您的工作;
<li>再发行∶您可以将您修改过的程式,再度的自由发行,而不会与原先的撰写者冲突;
<li>回馈∶您应该将您修改过的程式码回馈于社群!</span></ul>
但请特别留意,您所修改的任何一个自由软体都不应该也不能这样∶<ul><span class=text_import2>
<li>修改授权∶您不能将一个 GPL 授权的自由软体,在您修改后而将他取消 GPL 授权~
<li>单纯贩卖∶您不能单纯的贩卖自由软体。</span></ul>
也就是说,既然 GPL 是站在互助互利的角度上去开发的,您自然不应该将大家的成果占为己有,
而取消 GPL 授权的!对吧!因此您当然不可以将一个 GPL 软体的授权取消,
即使您已经对该软体进行大幅度的修改!那么自由软体也不能贩卖吗?当然不是!还记得上一个小节里面,
我们提到史托曼藉由贩卖 Emacs 取得一些经费,让自己生活不至于匮乏吧??是的!
自由软体是可以贩售的,不过,不可仅贩售该软体,应同时搭配售后服务与相关手册~
这些可就需要工本费了呢!<br><br>
很多人还是有疑问,目前不是有很多 Linux 开发商吗?为何他们可以贩售 Linux 这个 GPL 授权的软体?
原因很简单,因为他们大多都是贩售『售后服务!』所以,他们所使用的自由软体,
都可以在他们的网站上面下载!(当然,每个厂商他们自己开发的工具软体就不是 GPL 的授权软体了!)
但是,您可以购买他们的 Linux 光碟,如果您购买了光碟,他们会提供相关的手册说明文件,
同时也会提供您数年不等的谘询、售后服务、软体升级与其他协力工作等等的附加价值!
所以说,目前自由软体工作者,他们所赖以维生的,几乎都是在『服务』这个领域呢!
毕竟自由软体并不是每个人都会撰写,有人有需要您的自由软体时,他就会请求您的协助,
此时,您就可以透过服务来收费了!这样来说,
<span class=text_import2>自由软体确实还是具有商业空间的喔!</SPAN><br><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"> 很多人对于 GPL 授权一直很疑惑,对于 GPL 的商业行为更是无法接受!
关于这一点,鸟哥在这里还是要再次的申明, GPL 是可以从事商业行为的!
而很多的作者也是藉由这些商业行为来得以取得生活所需,更进一步去发展更优秀的自由软体!
千万不要听到『商业』就排斥!这对于发展优良软体的朋友来说,是不礼貌的!
</span></td><td><img src="../images/vbird_face.gif" /></td></tr></table></div>
上面提到的大多是与使用者有关的项目,那么 GPL 对于自由软体的作者有何优点呢?
大致的优点有这些∶<ul>
<li>软体安全性较佳;
<li>软体执行效能较佳;
<li>软体除错时间较短;
<li>贡献的原始码远永都存在。</ul>
这是因为既然是 Open Source 的自由软体,那么您的程式码将会有很多人帮您查阅,
如此一来,程式的漏洞与程式的优化将会进展的很快!所以,在安全性与效能上面,
自由软体一点都不输给商业软体喔!此外,因为 GPL 授权当中,修改者并不能修改授权,
因此,您如果曾经贡献过程式码,嘿嘿!您将名留青史呢!不错吧! ^_^<br><br>
不过,就鸟哥的观点来看, GPL 对于程式开发者的优点是相当多的,不过,
对于不熟悉程式的一般人来说, GPL 的优点其实不太容易看出来~
首先,虽然他是随手可得的自由软体,不过,您也必须要会使用基本的编译器才行吧!
(呵呵!这也是您为何要买这本书/察看鸟哥的网站的原因吧! ^_^)
这对于一般人来说并不容易!当然啦,如果每个人都跟 Stallman 一样神,那商业公司就不用存在啦!
嘿嘿!对于不懂程式的人来说,商业公司是一个很快速的解决之道啊!
而对于我们广大的读者群来说,认识了/学习了 Linux 与自由软体的相关技巧后,
对于未来真的是有很不错的帮助喔!
</div>
</div>
<hr><a NAME="torvalds"></a><img src="images/penguin-m.gif" alt="大标题的图示" height="34" width="25" align="middle" /><span class="text_h1">Torvalds 的 Linux 发展</span><br>
<div class=block1>
我们前面一节当中,提到了 Linux 是由 Torvalds 这个芬兰人所发明的。
那么为何托瓦兹可以发明 Linux 呢?凭空想像而来的?还是有什么渊源?
这里我们就来谈一谈棉!<br><br>
<hr><a name="torvalds_minix"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /> <span class="text_h2">与 Minix 之间</span><br>
<div class=block2>
Linus Torvalds (托瓦兹, 1969 年出生)的外祖父是赫尔辛基大学的统计学家,
他的外祖父为了让自己的小孙子能够学点东西,
所以从小就将托瓦兹带到身边来管理一些微电脑。在这个时期,托瓦兹接触了组合语言
(Assembly Language),那是一种直接与晶片对谈的程式语言,也就是所谓的低阶语言。
必须要很了解硬体的架构,否则很难以组合语言撰写程式的。<br><br>
在 1988 年间,托瓦兹顺利的进入了赫尔辛基大学,并选读了电脑科学系。
在就学期间,因为学业的需要与自己的兴趣,托瓦兹接触到了Unix 这个作业系统。
当时整个赫尔辛基只有一部最新的 Unix 系统,同时仅提供 16 个终端机 (terminal)。
还记得我们上一节刚刚提过的,早期的电脑仅有主机具有运算功能,
terminal 仅负责提供 Input/Output 而已。在这种情况下,
实在很难满足托瓦兹的需求,因为.....光是等待使用 Unix 的时间,就很耗时~
为此,他不禁想到∶『我何不自己搞一部 Unix 来玩?』不过,
就如同 Stallman 当初的 GNU 计画一样,要写核心程式,谈何容易~<br><br>
不过,幸运之神并未背离托瓦兹,因为不久之后,他就知道有一个类似 Unix 的系统,
并且与 Unix 完全相容,还可以在 Intel 386 机器上面跑的作业系统,
那就是我们上一节提过的,谭宁邦教授为了教育需要而撰写的 Minix 系统!
他在购买了最新的 Intel 386 的个人电脑后,就立即安装了 Minix 这个作业系统。
另外,由于 Minix 这个作业系统是有附上原始码的~所以,托瓦兹也经由这个原始码
学习到了很多的核心程式设计的设计概念喔!
</div>
<hr><a name="torvalds_multi"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /> <span class="text_h2">对 386 硬体的多工测试</span><br>
<div class=block2>
事实上,托瓦兹对于个人电脑的 CPU 其实并不满意,因为他之前碰的电脑都是工作站型的电脑,
这类电脑的 CPU 特色就是可以进行『多工处理』的能力。什么是多工呢?
理论上,<span class=text_import2>一个 CPU 在一个时间内仅能进行一项工作</span>,
那如果有两个工作同时出现到系统中呢?举例来说,
您可以在现今的电脑中同时开启两个以上的办公软体,例如电子试算表与文书处理软体。
这个同时开启的动作代表著这两个工作同时要交给 CPU 来处理~
啊! CPU 一个时间点内仅能处理一个工作,那怎么办?没关系,
这个时候如果具有多工的 CPU 就会自动在不同的工作间切换~
亦即我先跑 10% 的电子试算表,再转到文书处理器跑 10% ,再回去电子试算表....
一直到将两个工作结束为止(不一定同时结束!如果某个工作先结束了,
CPU 就会全速去跑剩下的那个工作了!)
<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"> 为什么有的时候我同时开两个档案(假设为 A, B 档案)所花的时间,
要比开完 A 再去开 B 档案的时间还要多?现在是否稍微可以理解?
因为如果同时开启的话, CPU 就必须要在两个工作之间不停的切换~
而切换的动作还是会耗去一些 CPU 时间的!所以棉,同时启用两个以上的工作在一个 CPU 上,
要比一个一个的执行还要耗时一点。这也是为何现在 CPU 开发商要整合两个 CPU 于一个晶片中!
也是为何在运作情况比较复杂的伺服器上,需要比较多的 CPU 负责的原因!
</span></td><td><img src="../images/vbird_face.gif" /></td></tr></table></div>
早期 Intel 的 x86 架构电脑不是很受重视的原因,就是因为 x86 的晶片对于多工的处理不佳,
CPU 在不同的工作之间切换不是很顺畅。但是这个情况在 386 电脑推出后,
有很大的改善。托瓦兹在得知新的 386 晶片的相关资讯后,他认为,
以价格性能比的观点来看, Intel 的 386 便宜而且性能上也就稍微可以将就将就 ^_^。
所以他就贷款去买了一部 Intel 的 386 来玩。<br><br>
前面提到,托瓦兹是玩组合语言的,组合语言对于硬体有很密切的关系,
为了彻底发挥 386 的效能,于是托瓦兹花了不少时间在测试 386 机器上!
他的重要测试就是在测试 386 的多功效能上。首先,他写了两个小程式,
一个程式会持续输出 A ,另一个会持续输出 B,他将两个程式同时执行,
结果,他看到萤幕上很顺利的一直出现 ABABABAB......
他知道,他成功了! ^_^<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"> 要达到多工(multitasking)的环境,除了硬体(主要是 CPU)需要能够具有多工的特性外,
作业系统也需要支援这个功能喔!一些不具有多工特性的作业系统,
想要同时执行两个程式是不可能的。除非先被执行的程式执行完毕,否则,
后面的程式不可能被主动执行。至于多工的作业系统中,每个程式被执行时,
都会有一个最大 CPU 使用时间,若该工作运作的时间超过这个 CPU 使用时间时,
该工作就会先被丢出 CPU 的运作中,而再度的进入核心工作排程中,等待下一次的 CPU 运作。
这有点像在开记者会啦,主持人(CPU)会问『谁要发问』?一群记者(工作程式)
就会举手(看谁的工作重要!),先举手的自然就被允许发问,问完之后,
主持人又会问一次谁要发问,当然,所有人(包括刚刚那个记者)都可以举手!
如此一次一次的将工作给他完成啊! ^_^
多工的环境对于复杂的工作情况,帮助很大喔!
</span></td><td><img src="../images/vbird_face.gif" /></td></tr></table></div>
</div>
<hr><a name="torvalds_first"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /> <span class="text_h2">初次释出 Linux 0.02</span><br>
<div class=block2>
探索完了 386 的硬体相关资讯,并且也安装了类似 Unix 的 Minix 作业系统,
同时还取得 Minix 的原始码,接下来,托瓦兹干嘛去了??
因为 Minix 的发展控制在谭宁邦教授手上,他希望 Minix 能以教育的立场去发展,
所以对于 Minix 的开发并不是十分的热中,但是一堆人对于 Minix 的功能需求又很强烈,
例如一些介面与周边的驱动程式与新的协定等等。在无法快速的得到解决后,
托瓦兹就想,那我乾脆自己写一个更适合我自己用的 Minix 好了!
于是他就开始进行核心程式的撰写了。<br><br>
对于托瓦兹来说, GNU 真的是一个不可多得的好家伙~
因为他用来撰写属于自己小核心的工具,就是 GNU 的 bash 操作介面与 gcc 编译器等等自由软体。
他以 GNU 的软体针对 386 并参考 Minix 的设计理念(注意,仅是程式设计理念,
并没有使用 Minix 的原始码)来写这个小核心。喝!没想到竟然可以写出这个小玩意,
而这个小玩意竟然可以在 386 上面顺利的跑起来~还可以读取 Minix 的档案系统。
真是太好了!不过还不够,他希望这个程式可以获得大家的一些修改建议,
于是他便将这个核心放置在网路上提供大家下载,同时在 BBS 上面贴了一则消息∶
<table class="term"><tr><td class="term"><pre>
Hello everybody out there using minix-
I'm doing a (free) operation system (just a hobby,
won't be big and professional like gnu) for 386(486) AT clones.
</pre></td></tr></table>
他说,他完成了一个好玩的小核心作业系统,这个核心是用在 386 机器上的,
同时,他真的仅是好玩,并不是想要做一个跟 GNU 一样大的计画!这则新闻引起很多人的注意,
他们也去托瓦兹提供的网站上下载了这个核心来安装。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -