📄 0110whatislinux.htm
字号:
<span class=text_import2>既然 1979 年的 Unix 第七版可以在 Intel 的 x86 架构上面进行移植,
那么是否意味著可以将 Unix 改写并移植到 x86 上面了呢?</span>在这个想法上,
谭宁邦教授于是乎自己动手写了 Minix 这个 Unix Like 的核心程式!
在撰写的过程中,为了避免版权纠纷,谭宁邦完全不看 Unix 核心原始码!
并且强调他的 Minix 必须能够与 Unix 相容才行!谭宁邦在 1984 年开始撰写核心程式,
到了 1986 年终于完成,并于次年出版 Minix 相关书籍,同时与新闻群组相结合~<br><br>
这个 Minix 版本比较有趣的地方是,他并不是完全免费的,无法在网路上提供下载!
必须要透过磁片/磁带购买才行!虽然真的很便宜~不过,毕竟因为没有在网路上流传,
所以 Minix 的传递速度并没有很快速!此外,购买时,随磁片还会附上 Minix 的原始码!
这意味著使用者可以学习 Minix 的核心程式设计概念喔!
(<span class=text_vbird>这个特色对于 Linux 的启始开发阶段,可是有很大的关系喔!</span>)
此外,开发者仅有谭宁邦教授,因为学者很忙啊!加上谭宁邦始终认为 Minix 主要用在教育用途上面,
所以对于 Minix 是点到为止!所以, Minix 很受欢迎没错,
不过,使用者的要求/需求的声音可能就比较没有办法上升到比较高的地方了!
这样说,您明白吧??? ^_^ </ul>
<li><span class="text_import1">1984 年之二∶ GNU 与 FSF 计画的成立</span><ul>
Richard Mathew Stallman (史托曼) 在 1984 年发起的 GNU 计画,对于现今的自由软体风潮,
真有不可磨灭的地位!目前我们所使用得很多自由软体,几乎均直接或间接助益于 GNU 这个计画呢!
那么史托曼是何许人也?为何他会发起这个 GNU 计画呢?<br><br>
<a href="http://www.stallman.org" target="_blank">Richard Mathew Stallman </a>(生于 1953 年,
网路上自称的 ID 为 RMS)
从小就很聪明!他在 1971 年的时候,进入骇客圈中相当出名的人工智慧实验室(AI Lab.),
这个时候的骇客专指电脑功力很强的人,而非破坏电脑的怪客 (cracker) 喔!
当时的骇客圈对于软体的著眼点几乎都是在『分享』,所以并没有专利方面的困扰!
这个特色对于史托曼的影响很大!不过,后来由于管理阶层的问题,导致实验室的优秀骇客离开该实验室,
并且进入其他商业公司继续发展优秀的软体。但史托曼并不服输,仍然持续在原来的实验室开发新的程式与软体。
后来,他发现到,自己一个人并无法完成所有的工作,于是想要成立一个开放的团体来共同努力!<br><br>
1983 年以后,因为实验室硬体的更换,使得史托曼无法继续以原有的硬体与作业系统继续自由程式的撰写~
而且他进一步发现到,过去他所使用的 Lisp 作业系统,是麻省理工学院的专利软体,
是无法共享的,这对于想要成立一个开放团体的史托曼是个阻碍。于是他便放弃了 Lisp 这个系统。
后来,他接触到 Unix 这个系统,并且发现, Unix 在理论与实际上,都可以在不同的机器间进行移植。
于是他开始转而使用 Unix 系统。因为 Lisp 与 Unix 是不同的系统,
所以,他原本已经撰写完毕的软体是无法在 Unix 上面运行的!为此,
他就开始将软体移植到 Unix 上面。并且,为了让软体可以在不同的平台上运作,
因此,史托曼将他发展的软体均撰写成可以移植的型态!<br><br>
1984 年,史托曼开始 <a href="http://www.gnu.org" target="_blank">GNU</a>
计画,<span class=text_import2>这个计画的目的是想要∶
建立一个自由的开放的 Unix 作业系统。</span>
但是建立一个作业系统谈何容易啊!而且在当时的 GNU 是仅有自己一个人单打独斗的史托曼~
这实在太麻烦,但又不能不做这个计画,于是史托曼反其道而行~『既然作业系统太复杂,
我就先写可以在 Unix 上面运行的小程式,这总可以了吧?呵呵!』在这个想法上,
史托曼便开始了程式的写作。在写作期间,为了不让自己吃上官司,他绝对不看专利软体的原始码!
为了这个计画,他开始使用原本 Unix 上面跑的软体,
并自行撰写功能与 Unix 原有专利软体相仿的软体。<br><br>
但不论是什么软体,都得要进行编译成为二进位档案(binary file)后才能够执行,
因此他便开始撰写 C 语言的编译器,那就是现在相当有名的 GNU C (gcc)!
这个点相当的重要!这是因为 C 语言编译器版本众多,但都是专利软体,
如果他写的 C 编译器够棒,效能够佳,那么将会大大的让 GNU 计画出现在众人眼前!<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"> 我们在前面稍微提过,电脑仅认识 0/1 的资料,但是人类不认识啊!
人类对于纯文字的资料(就是所谓的 ASCII 档案格式)比较有感觉。
但是偏偏电脑又不认识 ASCII 格式的文字,很头痛,不是吗?
为此,就会有很多的所谓的『编译器』来辅助我们撰写程式。
我们一般使用文字编辑器以 ASCII 纯文字格式来撰写程式,
再透过所谓的『编译器(compiler)』』将刚刚完成的文字档案
『编译』成为电脑认识的二进位制(binary file)的档案,
以让电脑认识且可以执行的程式啊!
</span></td><td><img src="../images/vbird_face.gif" /></td></tr></table></div>
但开始时并不顺利,为此,他先转而将 Emacs 编辑器写成可以在 Unix 上面跑得软体,
并公开公布原始码,因为 Emacs 太优秀了,因此,很多人便直接向他购买。此时 Internet 尚未流行,
所以,<span class=text_import2>史托曼便藉著 Emacs 以磁带(tape)出售,赚了一点钱</span>
,进而开始全力撰写其他软体。并且成立 <span class="text_import2">自由软体基金会
(FSF, Free Software Foundation)</span>,请更多工程师与志工撰写软体。
终于还是完成了 GCC,这比 Emacs 还更有帮助!
此外,他还撰写了更多可以被呼叫的 C 函式库(GNU C library),
以及可以被使用来操作作业系统的基本介面 BASH shell !
这些都在 1990 年左右完成了!<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"> 如果纯粹使用文字编辑器来编辑程式的话,那么程式语法如果写错时,
只能利用编译时发生的错误讯息来修订了,这样实在很没有效率。
Emacs 则是一个很棒的编辑器!注意!是编辑(editor)而非编译(compiler)!
他可以很快的立刻显示出您写入的语法可能有错误的地方,这对于程式设计师来说,
实在是一个好到不能再好的工具了!所以才会这么的受到欢迎啊!
</span></td><td><img src="../images/vbird_face.gif" /></td></tr></table></div>
到了 1985 年,为了避免 GNU 所开发的自由软体被其他人所利用而成为专利软体,
所以他与律师草拟了有名的<span class=text_import2>通用公共许可证
(General Public License, GPL)</span>,
并且称呼他为 <span class="text_import2">copyleft</span> (相对于专利软体的 copyright!)。
关于 GPL 的相关内容我们在下一个小节继续谈论,在这里,必须要说明的是,
由于有 GNU 所开发的几个重要软体,如∶<br><br><ul><span class=text_import2>
<li>Emacs
<li>GNU C (GCC)
<li>GNU C Library (glibc)
<li>Bash shell</ul></span><br>
造成后来很多的软体开发者可以藉由这些基础的工具来进行程式开发!
进一步壮大了自由软体团体!这是很重要的!不过,对于 GNU 的最初构想
『建立一个自由的 Unix 作业系统』来说,有这些优秀的程式是仍无法满足,
因为,当下并没有『自由的 Unix 核心』存在.....所以这些软体仍只能在那些有专利的
Unix 平台上工作~~一直到 Linux 的出现......</ul>
<li><span class="text_import1">1988 年∶ 图形介面 XFree86 计画</span><ul>
有鉴于图形使用者介面 ( <span class=text_import2>Graphical User Interface, GUI</span> )
的需求日益加重,在 1984 年由 MIT 与其他协力厂商首次发表了 X Window System
,并且更在 1988 年成立了非营利性质的 XFree86 这个组织。所谓的 XFree86 其实是
<span class=text_import2>X Window System + Free + x86</span> 的整合名称呢!
而这个 XFree86 的 GUI 介面更在 Linux 的核心 1.0 版于
1994 年释出时,整合于 Linux 作业系统当中!<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"> 为什么称图形使用者介面为 X 呢?因为由英文单字来看, Window 的 W
接的就是 X 啦!意指 Window 的下一版就是了!
需注意的是, X Window 并不是 X Window<b>s</b> 喔!
</span></td><td><img src="../images/vbird_face.gif" /></td></tr></table></div></ul>
<li><span class="text_import1">1991 年∶ 芬兰大学生 Linus Torvalds 的一则简讯</span><ul>
到了 1991 年,芬兰的赫尔辛基大学的 Linus Torvalds 在 BBS 上面贴了一则消息,
宣称他以 bash, gcc 等工具写了一个小小的核心程式,这个核心程式可以在 Intel 的 386
机器上面运作,让很多人很感兴趣!从此开始了 Linux 不平凡的路程!</ul>
</div>
<hr><a name="whatislinux_gnu"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /> <span class="text_h2">关于 GNU 计画</span><br>
<div class=block2>
1984 年创立 GNU 计画与 FSF 基金会的 Stallman 先生认为,
写程式最大的快乐就是让自己发展的良好的软体让大家来使用了!
而既然程式是想要分享给大家使用的,不过,每个人所使用的电脑软硬体并不相同,
既然如此的话,那么该程式的原始码 (Source code) 就应该要同时释出,
这样才能方便大家修改而适用于每个人的电脑中呢!这个将原始码释出的举动,
就称为 Open Source !此外,史托曼同时认为,如果您将您程式的 Source code
分享出来时,若该程式是很优秀的,那么将会有很多人使用,
而每个人对于该程式都可以查阅 source code ,无形之中,就会有一票人帮您除错棉!
您的这支程式将会越来越壮大!越来越优秀呢!<br><br>
而为了避免自己的开发出来的 Open source 的自由软体被拿去做成专利软体,
于是 Stallman 同时将 GNU 与 FSF 发展出来的软体,都挂上 GPL 的版权宣告~
这个 FSF 的核心观念是『<span class=text_import2>版权制度是促进社会进步的手段,
版权本身不是自然权力。</span>』对于 FSF 有兴趣或者对于 GNU
想要更深入的了解时,请参考<a href="http://saturn.stu.edu.tw/~ckhung/"
target="_blank">树德大学的洪朝贵教授</a>的网站
<a href="http://saturn.stu.edu.tw/~ckhung/a/c_83.php"
target="_blank">http://saturn.stu.edu.tw/~ckhung/a/c_83.php</a>,或直接到 GNU 去∶
<a href="http://www.gnu.org" target="_blank">http://www.gnu.org</a> 里面有更为深入的解说!<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"> 为什么要称为 GNU 呢?其实 GNU 是 GNU's Not Unix 的缩写,
意思是说, GNU 并不是 Unix 啊!那么 GNU 又是什么呢?
就是 GNU's Not Unix 嘛!.....如果您写过程式,
就会知道,这个 GNU = GNU's Not Unix 可是无穷回圈啊!忙碌~<br><br>
另外,什么是 Open Source 呢?所谓的 source 是程式发展者写出的原始程式码,
Open Source 就是,软体在发布时,同时将作者的原始码一起公布的意思!
</span></td><td><img src="../images/vbird_face.gif" /></td></tr></table></div>
那么这个 GPL ( GNU General Public License, GPL ) 是什么玩意儿?
为什么要将自由软体挂上 GPL 的『版权宣告』呢?这个版权宣告对于作者有何好处?
首先, Stallman 对 GPL 一直是强调 Free 的,这个 Free 的意思是这样的∶<br><br>
<span class=text_import2>"Free software" is a matter of liberty, not price.
To understand the concept, you should think of "free speech", not "free beer".
"Free software" refers to the users freedom to run, copy, distribute,
study, change, and improve the software </span><br><br>
大意是说, Free Software (自由软体) 是一种自由的权力,并非是『价格!』
举例来说,你可以拥有自由呼吸的权力、你拥有自由发表言论的权力,
但是,这并不代表您可以到处喝『免费的啤酒!(free beer)』,也就是说,
<span class=text_import2>自由软体的重点并不是指『免费』的,而是指具有『自由度, freedom』的软体</span>,
史托曼进一步说明了自由度的意义是∶<span class=text_import2>
使用者可以自由的执行、复制、再发行、学习、修改与强化自由软体</span>。
这无疑是个好消息!因为如此一来,你所拿到的软体可能原先只能在 Unix 上面跑,
但是经过原始码的修改之后,你将可以拿他在 Linux 或者是 Windows
上面来跑!总之,一个软体挂上了 GPL 版权宣告之后,他自然就成了自由软体!
这个软体就具有底下的特色∶<ul><span class=text_import2>
<li>取得软体与原始码∶您可以根据自己的需求来执行这个自由软体;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -