Linux 基礎學習篇 - Mandrake 9

第一章、什麼是 Linux - for Mandrake 9

鳥哥的第一本書籍的主要內容,內容稍微與書籍不太一樣了!

最近更新時間: 2003/02/28

鳥哥的第一本書大約是在 2002 年的年底左右出版的,內容幾乎都是 Linux 基礎學習,一點也沒有談到伺服器的部份!這也是後來的雛型! 不過內容錯誤的地方很多,導致在 2003 年的年底推出了『基礎學習篇增訂版』的內容,大致上就是處理掉一些比較有嚴重錯誤的部份。 不過,因為 Linux 的版本變化非常快速,因此,寫完了這些文件之後,鳥哥還是持續在網站上更新文件內容,導致原本書籍內容的資料與網站資料差異太大! 這個問題直到鳥哥在 2008 年左右才發現!糟糕了!舊版的文件資料已經遺失~覺得相當扼腕~

因此,在底下的文件內容與當初的書籍內容雖然大同小異,不過章節的編排卻是有所不同!再花時間去一個一個處理,似乎也不太符合成本效益! 鳥哥僅是想要將自己以前的文件記錄下來而已,同時將過時的 big5 編碼改回 utf8 編碼,再加上可以支援 RWD 的樣式而已啦! 內容已經不多做編排~因此,如果內容文件你看不懂,那也是應該的! ^_^

建議您前往本站查詢最新版本的 Linux distribution 文章來閱讀,比較不會浪費時間。最新文章請前往鳥站首頁查閱囉!

什麼是 Linux ?什麼是作業系統?

要瞭解 Linux 之前,就不能不知道什麼是作業系統 ( Operation System, OS ),所以,首先我們來簡單的說一說什麼是作業系統吧!先來想一想,當我們使用電腦時,螢幕上面顯示的咚咚是由哪裡來的?嗯!是由顯示卡與螢幕顯像的;那麼你現在可以藉由網路看到這篇文章,則是藉由 Internet 、網路卡、網路線以及所有相關的電子器材與網路器材所完成的一項任務!如果你要看 VCD 呢?那麼就需要光碟機、光碟、音效卡的發聲等等的支援。這麼說來的話,所以在『工作』的東西都是『硬體』的工作呀!對了!就是這些電腦硬體在工作的。那麼硬體怎麼工作呢?那就是藉由『作業系統』來達成的囉!這個作業系統就是在溝通你這個使用者跟硬體之間的訊息傳遞啦!也就是說,沒有作業系統,那麼你的電腦硬體就只是一堆廢鐵,什麼工作都不能做的
那麼作業系統裡面含有什麼東西呢?簡單的來說,作業系統主要分為兩個東西,一個是『核心』、一個是『一堆核心提供的工具』我們以使用者常使用的 Windows 電腦來做一個簡單的說明好了。大家應該都使用過 Windows 電腦裡面的檔案總管吧?那麼當你開啟檔案總管的時候,他是否會顯示你硬碟當中的資料?這個顯示硬碟裡面的資料,就是『核心』幫你做的,但是,你要核心去顯示硬碟哪一個目錄下的資料,則是由『檔案總管』這個『工具』幫你達成的!這樣可以理解嗎?再來,如果您曾經使用過 Windows 2000 或 Windows XP 的話,那就更好了!你就應該聽過有所謂的『FAT32 與 NTFS 檔案格式』吧?在 Windows 98 這個早期的 Windows 版本中,他並無法讀取或者是找到 Windows XP 的 NTFS 檔案格式的硬碟,為什麼呢?因為他的『核心』本來就不認識 NTFS 啊!所以,即使你有檔案總管,但是由於核心根本不認識 NTFS ,所以,檔案總管也是沒有能力幫你達到你想要做的事情!這樣應該就更清楚了吧?沒錯!你的整個硬體是由核心來管理的,而如果核心不認識你的硬體,那麼你將無法使用該硬體設備,例如上面提到的 NTFS 檔案格式的硬碟!核心就是『 Kernel 』,他是一個作業系統的最底層的東西,由他來掌管整個硬體資源的工作狀態,而 Linux 有 Linux 自己的核心, Windows 也有他自己的核心。所以說,當有新的硬體加入到你的系統中的時候,那麼若你的『 Kernel 』並沒有支援他的時候,呵呵,這個新的硬體就肯定無法工作的,因為控制他的 Kernel 並不認識他呀!這樣瞭解了嗎?!先有個概略性的瞭解,後面我們提到『核心編譯』的時候會在更詳細的談到他!

一般來說,Kernel 管理的事項有:

  • System call interface :一些服務與 kernel 溝通之後,將硬體的資源進一步的利用;
  • Process control :系統程序控制中心,所以核心編的越小越好;
  • Memory management :控制整個系統的記憶體管理;
  • File system management :檔案系統的管理,例如 I/O 等等的工作啦!還有不同檔案格式的支援啦等等,如果你的核心不認識某個檔案系統,那麼您將無法使用該檔案格式的檔案囉!例如上面提到的 Windows 98 不認識 NTFS 檔案格式的硬碟;
  • Device drivers :就如同上面提到的,硬體的管理是 Kernel 的主要工作之一,當然囉,裝置的驅動程式就是核心需要做的事情啦!好在目前都有所謂的『可載入模組』功能,可以將驅動程式編輯成模組,就不需要重新的編譯核心啦!這個也會在後續的核心編譯當中提到的!
  • 所以啦!所有硬體的資源都是他來管理的!至於我們要達成一些工作時,除了藉由核心本身提供的功能 ( 例如上面提到的檔案總管 ) 之外,還可以藉由其他的應用軟體來達成喔!舉個例子來說,你要看 VCD 影片是吧!那麼除了 Windows 提供的媒體播放程式之外,你也可以自行安裝 VCD 播放程式來播放 VCD 囉!這個播放程式就是應用軟體囉,而這個應用軟體可以幫你去控制核心來工作 ( 就是放映影片囉 ) ,因此,我們可以這樣說,核心是控制整個硬體支援的咚咚,也是一個作業系統的最底層,然而要讓整個作業系統更完備的話,那還需要含有相當豐富的核心提供的工具,以及核心相關的應用軟體來支援
    OK!提到這裡那麼您知道 Linux 是什麼了嗎?呵呵!對啦!其實 Linux 就是一個作業系統,這個作業系統裡頭含有最主要的 kernel 以及 kernel 提供的工具啦!他提供了一個完整的作業系統當中最底層的硬體控制與資源管理的完整架構,這個架構是沿襲 Unix 良好的傳統來的,所以相當的穩定而功能強大!此外,由於這個優良的架構可以在目前的個人電腦 ( X86 系統 ) 上面跑,所以很多的軟體開發者將他們的工作心血移轉到這個架構上面,那就是很多的應用軟體啦!雖然 Linux 僅是其核心與核心提供的工具,不過,由於核心、核心工具與這些軟體開發者提供的軟體的整合,使得 Linux 成為一個更完整的、功能強大的作業系統囉!我們可以將 Linux 的系統與使用者的相關性看成底下的圖示:

    圖一、使用者、使用者介面與核心工具、核心、與硬體之相關性
    約略瞭解 Linux 是何物之後,接下來,我們要談一談,『為什麼說 Linux 是很穩定的作業系統呢?他是如何來的?

    從 Unix 到 Linux 這一段歷史

      為什麼大家常常會說, Linux 是很穩定的一套作業系統呢?這是因為, Linux 他有個老前輩,那就是 Unix 家族囉!有這個前輩的提攜,讓 Linux 這個小老弟很快的就成為一套穩定而優良的作業系統啦!所以,底下我們來談一談 Unix 到 Linux 的這一段歷史吧!
      早在 Linux 出現之前的二十年 ( 大約在 1970 年代 ), 就有一個相當穩定而成熟的作業系統存在了!那就是 Linux 的老大哥『 Unix 』是也!怎麼這麼說呢?!他們這兩個傢伙有什麼關係呀?這裡就給他說一說囉!眾所皆知的, Linux 的核心是由 Linus Torvalds 在 1991 年的時候給他開發出來的,並且丟到網路上提供大家下載,後來大家覺得這個小東西 ( Linux Kernel ) 相當的小而精巧,所以慢慢的就有相當多的朋友投入這個小東西的研究領域裡面去了!但是為什麼這的小東西這麼棒呢?!然而又為什麼大家都可以免費的下載這個東西呢?!嗯!等鳥哥慢慢的唬xx....喔不!聽我慢慢的道來!
    • 一個沒有完成的夢想: Bell, MIT 與 GE 的『 Multics 』系統

    • 早期的電腦並不像現在的個人電腦一般,他可不是一般人碰的到的玩意兒,除非是軍事或者是高科技用途才有可能接觸到這類的 Computer !而如前面所言,有電腦硬體還需要作業系統的配合才能夠發揮電腦的效能,不過,在那個年代,由於電腦算是『奢侈品』,喔~應該說是『貴重物品』,所以,可能一間學校就只有一部大型主機當然,那個年代所謂的大型主機仍然無法提供適度的運算能力的。不過,既然只有一部大型主機,然而有許許多多的教師、學生要想要來使用,怎麼辦呢?為了解決這個問題,在 1960 年代初期,麻省理工學院 ( MIT ) 發展了所謂的『相容分時系統 ( Compatible Time-Sharing System, CTSS )』,就字面上的意義來看,他主要讓大型主機可以提供多個終端機連線進入主機使用主機的資源, ( 附帶一提,當時的終端機 ( Terminal ) 本身並沒有軟體或者可供使用的資源,這些終端機要能使用,一定必需要連線登入主機之後,才能夠使用主機的資源來工作!) 當時可以讓約 30 位使用者連線使用主機。而為了讓這個分時系統更加的強大,所以,在 1965 年前後由貝爾研究室 ( Bell )、 麻省理工學院 ( MIT ) 及奇異電器公司 ( GE ) 開始來共同開發一個名為 Multics 的大型計畫,目標是想讓大型主機可以連線 300 位以上的使用者。不過,在奮鬥了四年之後,該計畫仍然宣告不治...喔!是失敗啦!(註: Multics 有複雜、多數的意思。)
    • 一個小型檔案系統的產生:1969 年 Ken Thompson 的小型 file server system

    • 在複雜的 Multics 系統的計畫失敗後,貝爾研究室當然就退出該計畫。就在這個計畫解散之後,曾經參與 Muitics 的貝爾研究室的成員 Ken Thompson 由於自己工作上的需求,需要一套檔案存取的小型作業系統,便在 1969 年的時候以 DEC 公司 ( Digital Equipment Corporation ) 的電腦 PDP-7 為硬體基準,設計了一個適合自己工作環境的小型檔案系統,其中也含有他自行開發的一些小工具。那個系統就是最早期的 Unix 的源頭!當初 Ken 設計這個檔案系統時,主要是為了自己的存取方便所設計的簡單 OS ,因此將原有的 Multics 系統大幅度的簡化,不過,在當時還並沒有 Unix 這個名詞的出現!
    • Unix 的正式誕生:1973 年 Ritchie 等人以 C 語言寫出第一個正式 Unix 核心

    • 由於 Thompson 寫的那個作業系統實在太好用了,所以在 Bell 研究室內部廣為流傳,並且數度經過改版。到了 1973 年, Bell 研究室的 Dennis Ritchie 等人為了讓這個系統的執行效能更佳化,所以使用編譯效能更好的 C 語言將原有的 1969 年的那個系統之核心大幅度的改寫過,並且確定該作業系統名稱為 Unix,呵呵!那就是最早的 Unix 作業系統囉!不過,由於這個作業系統是由這一群工程師所開發完成的,而且使用者也大多是這方面的工程師,因此造成了後來 Unix 系統介面較難被一般使用者接受的情況 @_@ (註: 相對於 Multics ,Unix 具有單一的意思!)
    • 重要的 Unix 分支: 1977 年 BSD 的誕生

    • 在 Unix 早期的發展中,有一件相當重要的事情,那就是 BSD 的誕生!由於 C 語言是一種高階語言,他可以被應用在不同的硬體架構上面,而 Unix 本身就是 C 語言寫成的!在 Unix 發表之後, 柏克萊大學 ( Berkeley ) 的教授對於這個作業系統相當的有興趣,在經過取得 Unix 的原始碼,並且幾經修改之後,終於在 1977 年發表了第一代的 Berkeley Software Distribution ( BSD ) 。這個 BSD 是 Unix 的一個分支,他的發展對於 Unix 有相當大的影響,例如後來的 Sun 公司就是使用 BSD 發展的核心進行自己商業的 Unix 版本的發展的!
    • 百家齊鳴的 Unix 版本:

    • 由於 C 語言是一個相當高階的程式語言,他與硬體沒有很直接的相關性,例如你的 Windows 也可以執行 C 程式語言!而由於 Unix 是由 C 語言寫成的,因此,也就是說,你只要經過稍微的原始碼修改程序,就可以在不同的硬體架構上面執行這個作業系統!後來,由於 Unix 的方便性,因此很多的商業公司及學術機構就加入這個作業系統的研發囉。不過,也由於 Unix 的便利性與改寫容易,因此就造成了很多的不同版本的 Unix 囉,例如 ATT 的 System V 、 加州大學的 BSD 版、 IBM 的 AIX 等等。
      由於『作業系統的核心 ( Kernel ) 必須要跟硬體配合,以提供及控制硬體的資源進行良好的工作!』,而在早期每一家生產電腦硬體的公司還沒有所謂的『協定』的概念,所以每一個電腦公司出產的硬體自然就不相同囉!因此他們必須要為自己的電腦硬體開發合適的 Unix 系統,所以,他們自行開發的 Unix 當然只能配合本身的硬體配備囉!例如在學術機構相當有名的 Sun 、 Cray 與 HP 就是這一種情況,他們開發出來的 Unix 並沒有辦法在其他的硬體架構下工作的! ( 我們都稱呼這種系統與配備為『超級電腦』 ) !由於沒有廠商針對個人電腦設計 Unix 系統,因此,在早期並沒有支援個人電腦的 Unix 作業系統的出現 ( 當然,這是由於早期的個人電腦並沒有現在這樣風行就是了! ) ,每一家公司自己出的 Unix 雖然在架構上面大同小異,但是卻真的僅能支援自身的硬體,所以囉,早先的 Unix 只能與伺服器 ( Server ) 或者是大型工作站 ( Workstation ) 劃上等號
      此外,由於版本太多了,而大家都是同樣來自於 Unix 這個老祖宗,當然也都稱自己是 Unix ,好了,如此一來,許多商業公司自然就會有類似的軟體發表,喝!那麼自然就有些許的商業糾紛囉!真是傷腦筋~
    • 1984 年的 GNU 與 Free Software Foundation:

    • Unix 在商業上面的問題讓許多對於 Unix 喜好者感到相當的憂心,其中一個就是有名的 Richard M. Stallman 先生。他認為, Unix 是一個相當好的作業系統,在這個系統上面,如果大家能夠將自己所學的貢獻出來,那麼這個系統將會更加的優異!Stallman 先生認為最大的快樂就是讓自己發展的良好的軟體讓大家來使用了!而且,由於每個人的工作環境 ( 指軟硬體平台 ) 可能都不太相同,所以,他也強調應該要有 Open Source 的概念,讓大家都能夠分享這一份的心得!他認為,有了 Open Source 之後,你的程式將有很多的人可以幫忙檢驗,將使得 Unix 社群更佳的茁壯。為了自己的理想, Stallman 在 1984 年實際創立了 GNU 與 自由軟體基金會 ( Free Software Foundation, FSF ),並創作了許多『自由軟體』供大眾來使用,此外,對於其作品以自由 ( free ) 的 GNU General Public License ( GPL ) 的授權模式提供大眾使用。這個 FSF 的核心觀念是『版權制度是促進社會進步的手段,版權本身不是自然權力。 』對於 FSF 有興趣或者對於 GNU 想要更深入的瞭解時,請參考朝陽大學的洪朝貴教授的網站,裡面有更為深入的解說!而且,Stallman 的 GNU General Public License 一直強調 Free 這個字眼!他是這樣說的:『"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』大意是說,自由軟體並不是指『免費』的,而是指具有『自由度, freedom』的軟體,什麼是自由度呢?也就是你在取得這個軟體之後,可以進行修改、進一步發表與複製在不同的電腦平台上面。這無疑是個好消息!因為如此一來,你所拿到的軟體可能原先只能在 Unix 上面跑,但是經過原始碼的修改之後,你將可以拿他在 Linux 或者是 Windows 上面來跑!Stallman 先生更直接對自由度下了這樣的說明:
      • 你可以根據任何你想要的提議 ( purpose ) 來跑這個 Free 的程式;
      • 你可以在理解了這支 Free 的程式的運作之後,將他修改成你所想要的樣式與功能;
      • 你可以將你自己修改過的 Free 的程式再次的發表,以幫助你的朋友們;
      • 你可以將這支 Free 的程式進行改良,並將改良過的程式公開發表,以造福社群!
      簡單的來說, GPL 授權具有幾個特點:
      • 任何軟體掛上 GPL 授權之後,即為自由的軟體,任何人均可取得,同時,亦可取得其原始碼 ( Source Code );
      • 取得 GPL 授權之軟體後,任何人均可進行修改原始碼,以符合自己的喜好;
      • 除此之外,經過修改的 Source Code 應回報給網路社會,提供大家來參考!
      但請特別留意,並非掛上 GPL 之後的軟體就不可販賣,這個是不同的兩回事呦!舉個例子來說,在 Red Hat 的官方網站上面提供 Red Hat 釋出的 Linux 安裝光碟提供大眾下載,但是 Red Hat 本身依然有在賣 Linux 的套件,而且還賣的『很不便宜!』為何可以如此呢?呵呵!因為 Red Hat 他們賣的資料當中,含有相當大量經過整了的文件資料,這些資料雖然在網路上面可以下載,然而花了這麼多的時間來整理這些資料,當然應該要給予相當程度的報酬囉!您說是吧!所以,請留意喔!並非 GPL 不可用來營利
      這個 GNU 對於後來的 Linux 有相當深遠的影響,由於 Stallman 先生發展了 GNU 這個計畫中,主力在推出各種方便而優異的工具軟體,例如廣為大家所知的 Emacs 文書編輯器、GCC, BASH..然而沒有作業平台怎麼使用這些軟體呢?然而,由於他倡導的自由軟體,讓後來的心血能很快的接觸原始碼來發展軟體,這就是後來的 Linux 的故事....這是後來的故事,等一下來說~
    • 1988 年的圖形介面 X-Free86 project:

    • 有鑑於圖形使用者介面 ( Graphical User Interface, GUI  ) 的需求日益加重,在 1984 年由 MIT 與其他協力廠商首次發表了 X Window System ,並且更在 1988 年成立了非營利性質的 XFree86 這個組織。所謂的 XFree86 其實是 X window system 與 Free 及 x86 系統架構的整合名稱呢!而這個 XFree86 的 GUI 介面更在 Linux 的核心 1.0 版於 1994 年釋出時,整合於 Linux 作業系統當中!
    • 1991 年 芬蘭大學生 Linus Torvalds 的一則簡訊:

    • 在後來的幾年內,由於電腦硬體工業的強力運作,以 intel 主導的 x86 系統架構的個人電腦大行其道,所以個人電腦算是相當流行的一個機器了!但在此時,人們使用的大多還是舊舊而且需要吃很多系統資源的 DOS 系列或其他的作業系統。 此時,有個芬蘭的郝爾辛基大學 (Helsinki )Linus Torvalds 學生做了件不尋常的事情! Linus 手邊有個 Minix 系統 ( 這也是 Unix 的分支 ) ,他對這個作業系統相當的有興趣!此外,由於當時他正好買了一部 386 的電腦,所以他就想說,咦!這個 Unix 這麼棒!這麼穩定,那我可不可以將他移植到個人電腦 ( X86 架構 ) 來使用呢?!好在由於 Stallman 提倡的 Open Source 風氣,他得以接觸到一些 source code ,而就經由這樣的一個想法,呵呵!他就很有心的讀取 Unix 的核心,並且去除較為繁複的核心程序,將他改寫成可以適用於一般個人電腦的 x86 系統上面,到了 1991 年,他終於將 0.02 版的 hobby 放到網路上面供大家下載,並且由於 hobby 受到大家的肯定,相當多的朋友一起投入這個工作中!終於到了 1994 年將第一個完整的核心 Version 1.0 釋出!並且造成目前的大流行.....由於 Linux kernel 的發展是由『虛擬團隊』所達成的,大家都是透過網路取得 Linux 的核心原始碼,經由自己精心改造後再回傳給 Linux 社群,進而一步一步的發展完成完整的 Linux 系統,至於 Torvalds 先生是這個集團中的發起者。由於這個群策群力的緣故, Torvalds 先生將 Linux 定為同樣造福大家的 GNU 授權模式!
    • 企鵝的來源:

    • 1994年發表 Linux 正式核心 1.0 的時候,大家要 Linus Torvalds 想一隻吉祥物,怪怪的 Torvalds 突然想到小時候去動物園被一隻企鵝追著滿地打滾~還被咬了一口!既然想不到其他的吉祥物了,乾脆就以這支企鵝來當吉祥物算了!所以,呵呵!目前我們常常看到這一隻企鵝就是這麼來的咯!

    什麼是 distribution

    好了,經由上面的說明,我們知道 Linux 是個『作業系統』,而且他是 GNU 的授權模式,並且有個老大哥是 Unix 。不過,畢竟由 Torvalds 先生負責維護的 Linux 提供的僅是『核心』與『核心工具』的集合,對於需要更完整功能的作業系統來說,畢竟還不夠完備,例如如果你要桌面程式,還得要加入 X-Window 系統對吧!?如果你要架設 WWW 還得加入伺服器軟體對吧?所以,雖然 Linux 的核心已經提供了相當多的支援與工具程式,但畢竟還不足以構成一個很完整的作業系統。
    好在,由於 Linux 的穩定性良好,並且可以在便宜的 x86 架構下的電腦平台運作,所以吸引了很多的套件商與自由軟體的開發團隊在這個 Linux 的核心上面開發相關的軟體,例如有名的 sendmail, wu-ftp, apache 等等。此外,亦有一些商業公司發現這個商機,因此,這些商業公司或者是非營利性的工作團隊,便將 Linux 核心、核心工具與相關的軟體集合起來,並加入自己公司或團隊的創意的系統管理模組與工具,而釋出一套可以完整安裝的作業系統,這個完整的 Linux 作業系統,我們就稱呼他為 distribution,或者是中文所謂的『安裝套件』囉!當然囉,由於是基於 GNU 的架構下,因此各家公司所發行的光碟套件是可以在網路上面自由下載的。不過,如果想要有較佳的服務,那麼購買該公司發行的光碟也是不錯的!
    不過,由於發展的 Linux 公司實在太多了,例如有名的 Red Hat, OpenLinux, Mandrake, Debian, SuSE 等等,所以很多人都很擔心,如此一來每個 distribution 是否都不相同呢?這就不需要擔心了,由於各個 distribution 都是架構在 Linux Kernel 下來發展屬於自己公司風格的 distribution,因此大家都遵守 Linux Standard Base ( LSB ) 的規範,也就是說,各個 distribution 其實都是差不多的!反正用到的都是 Linux Kernel 啊!只是各個 distribution 裡面所使用的各套件可能並不完全相同而已。所以囉,大家可以按照自己的喜好來選擇 Linux 的 distribution 光碟囉!底下列出幾個主要的 Linux 發行者網址:
    當然發行套件者不僅於此,您可以查閱其他的 Linux 新聞來發現喔!而其中中文化較為有名的就屬 CLE 這個套件發行者了!另外,台灣還有另一家 Linux 開發商,稱為 Linpus (百資),有興趣的話也可以到底下的網頁上看看! 好了,那麼哪一個安裝套件比較好呢?!就如同 VBird 前面提到的,每一個發行者所使用的 Linux 核心其實是一樣的,都是由 www.kernel.org 開發出來的核心呀!所以其架構,甚至包括其檔案放置的目錄,都是大同小異的,基本上除了某些內容套件不太一樣之外 ( 例如有人使用 wu-ftpd 有人使用 proftpd 等等 ) ,其他的檔案架構與指令系統其實幾乎都是相同的,因此我們不去探討哪一個套件比較棒!而是要來介紹如何學習與使用一個套件!至於下載的地點,網友提供了一個相當棒的多種 Linux distributions 的下載網站: 同時底下的網站還有各個著名的 Linux distribution 的比較!包括使用的熱門情況、市場佔有率、以及套件的相依程度等等:
    http://www.distrowatch.com/

    Linux 的功能與優缺點

    • Linux 的起源:

    • 前面提到了,Linus Torvalds 先生一直以來就喜歡那個小小的作業系統核心,而核心是管理一個系統的最底層的東西,所有的硬體資源都是由 kernel 來管控的!但是,就如同前面說的,早期的 Unix 並不支援 x86 的個人電腦架構,一直到了 1991 年在 BBS 裡面 Linus 先生貼了個小佈告之後,才有了重大的轉變:
      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.
      這封 BBS 的郵件即是由當時還是芬蘭的大學生 Linus Torvalds 所發表的,他說他修改了一個簡單的作業系統核心,核心名稱為 hobby,這個 hobby 的核心 ( Kernel ) 即為第一個 Linux 的核心系統!此外,由於他是基於 GNU 的協議而開發這個作業系統,所以他是 Free 的,任何人都可以下載使用!( 註:hobby 是個人興趣,just a hobby, won't be big and professional like gnu,其意思是:僅為個人興趣,不會玩得跟 gnu 那麼大啦~~~)
      Linus 所開發的這個 hobby 是基於 Unix 的系統所發展出來的,他將 Unix 裡面的很多資料又加以簡化,並且使之可以適用於 intel 主導的 x86 的系統下(當初的個人電腦系統為 386 與 486 架構),因此當初他所發表的這個最新的系統核心就被稱為 linus's unix ,簡稱為 Linux !當然,由於這個核心很像是當時的 Unix 系統,因此也稱為 Unix-like 系統囉!( 註:其實 Unix-Like 可以說是目前伺服器類型的作業系統的統稱啦!因為,不論是 FreeBSD, BSD, Sun Unix, SCO Unix, HP Unix, Red Hat Linux, Mandrake Linux 等等,都是由同一個祖先『Unix』來的,因此,這些咚咚都被統稱為 Unix-Like 的作業系統囉! )
      那麼這個系統有什麼特異功能呢?簡單的說:
      • 免費:由於他是基於 GPL  (  General Public License ) 的架構之下,因此他是 Free 的,也就是任何人都可以免費的使用或者是修改其中的原始碼的意思!這就是所謂的『開放性架構』,這對科學界來說是相當重要的!因為很多的工程師由於特殊的需求,常常需要修改系統的原始碼,使該系統可以符合自己的需求!而這個開放性的架構將可以滿足各不同需求的工程師!因此當然就有可能越來越流行囉!
      • 配備需求低廉:而他可以支援個人電腦的 X86 架構,系統資源不必像早先的 Unix 系統那般,僅適合於單一公司 ( 例如 Sun ) 設備!單就這一點來看,就可以造成很大的流行囉!
      • 功能強大而穩定:而且由於功能並不會輸給一些大型的 Unix 工作站,因此,近年來越來越多的公司或者是團體、個人投入這一個作業系統的開發與整合工作!
      • 獨立作業:另外,由於很多的軟體套件逐漸被這套作業系統拿來使用,而很多套件軟體也都在 Linux 這個作業系統上面進行發展與測試,因此, Linux 近來已經可以獨力完成幾乎所有的工作站或伺服器的服務了,例如 Web, Mail, Proxy, FTP.....。
      所以,目前他已經是相當成熟的一套作業系統囉!而且不耗資源又免費,呵呵,可以說造成微軟相當大的壓力呀!此外,由於他的系統硬體要求很低,加上目前很多的人由於『Intel 的陰謀』(呵呵!開玩笑的,因為 Tom 的硬體評論網站常常這樣說 Intel 的不是!呵!很好笑!)而造成手邊有相當多的淘汰掉的硬體配備, Linux 在這些被淘汰的硬體中就可以執行的相當的順暢與穩定!因此也造成相當多朋友的關注囉!
      這也是造成 Linux 成為最近幾年來最受矚目的作業系統之一,如前所述,他會受到矚目的原因主要是因為他是『free』的,就是免費的作業系統啦!然後他是開放性的系統,也就是你可以隨時的取得程式的原始碼,這對於程式開發工程師是很重要的!而且,雖然他是免費的,不過功能卻很強大!另外, Linux 對於硬體的需求是很低的,這一點更造成他流行的主因,因為硬體的汰換率太快了,所以很多人手邊都有一些很少在用的零件,這些零件組一組就可以用來跑 Linux 了,反正做一個工作站又不用使用到螢幕 ( 只要主機就可以囉 ) ,因此 Linux 就越來越流行囉!(插個嘴,也就是因為 Linux 具有 1.硬體需求低、 2.架構開放、 3.系統穩定性及保密性工能夠強、 4.完全免費,所以造成一些所謂『反微軟聯盟』的程式設計高手不斷的開發新軟體!以與 Microsoft 進行抗衡!)
    • Linux 的優點:

    • 那幹嘛要使用 Linux 做為我們的主機系統呢?這是因為 Linux 有底下這些優點:
      • 穩定的系統:Linux 本來就是建立在 Unix 上面發展出來的作業系統,因此,Linux 具有與 Unix 系統相似的的程式介面跟操作方式,當然也繼承了 Unix 穩定並且有效率的特點。常聽到安裝 Linux 的主機連續運做一年以上而不曾當機、不必關機是稀鬆平常的事;
      • 免費或少許費用:由於 Linux 是基於 GPL 的基礎下的產物,因此任何人皆可以自由取得 Linux ,至於一些『安裝套件』的發行者,他們發行的安裝光碟也僅需要些許費用即可獲得!不同於 Unix 需要負擔龐大的版權費用,當然也不同於微軟需要一而再、再而三的更新你的系統,並且繳納大量費用囉!
      • 安全性、漏洞的修補:如果你常玩網路的話,那麼你最常聽到的應該是『沒有絕對安全的主機』!沒錯!不過 Linux 由於支援者日眾,有相當多的熱心團體、個人參與其中的開發,因此可以隨時獲得最新的安全資訊,並給予隨時的更新,亦即是具有相對的較安全!
      • 多工、多使用者:與 Windows 系統不同的, Linux 主機上可以同時允許多人上線來工作,並且資源的分配較為公平,比起 Windows 的單人假多工系統要穩定的多囉! 這個多人多工可是 Unix-Like 上面相當好的一個功能,怎麼說呢?你可以在一部 Linux 主機上面規劃出不同等級的使用者,而且每個使用者登入系統時的工作環境都可以不相同,此外,還可以允許不同的使用者在同一個時間登入主機,以同時使用主機的資源。
      • 使用者與群組的規劃:在 Linux 的機器中,檔案的屬性可以分為『可讀、可寫、可執行』等參數來定義一個檔案的適用性,此外,這些屬性還可以分為三個種類,分別是『檔案擁有者、檔案所屬群組、其他非擁有者與群組者』。這對於專案計畫或者其他計畫開發者具有相當良好的系統保密性。
      • 相對比較不耗資源的系統:Linux 只要一部 p-100 以上等級的電腦就可以安裝並且使用愉快囉!還不需要到 P-III 等級的電腦呢!不過,如果你要架設的是屬於大型的主機(服務上百人以上的主機系統),那麼就需要比較好一點的機器了。不過,目前市面上任何一款個人電腦均可以達到這一個要求囉!
    • Linux 的缺點:

    • 反正 Linux 好處說不完啦!不過雖然 Linux 具有這樣多的好處,但是他先天上有一個足以致命的地方,使他的普及率受到很大的限制,就是 Linux 需要使用 『指令列』 的終端機模式進行系統的管理!雖然近年來有很多的圖形介面開發使用在 Linux 上面,但畢竟要熟悉 Linux 還是以指令列來使用是比較好的,因此要接受 Linux的玩家必須比較要能熟悉對電腦下指令的行為,而不是用滑鼠點一點 icon 就行了!不過如果只是要架一些簡單的小站呢?是不是大家都可以做的到?沒錯!其實只要對 Linux 做一些小小的設定就可以架站了!
      • 沒有特定的支援廠商:因為所有的套件都是免費的,自然也就沒有專人會到府服務啦!不過,這點倒是不需要擔心,因為拜網路風行之賜,你要問的問題幾乎在網路上都可以找到答案喔!看你有沒有用心去找就是了!
      • 圖形介面作的還不夠好:其實是因為 VBird 不玩 X-window 啦,所以也不知道目前發展到怎樣的一個地步了!基本上 VBird 常說的一句話就是:『Windows 上面有的咚咚 Linux 上面也一定可以找的到!,但 Linux 有的服務 Windows 可不見得有喔!』只不過,您可得自己找到自己想要的介面囉!

    一些名詞(GNU, GPL ??)

    • Linux Standard Base ( LSB )

    • 由於 Linux 是一個沒有『規格品』樣式的新鮮玩意兒,如果大家都自己玩自己的,那麼可想而知的是,未來想要在 Linux 這個作業系統上面發展軟體與硬體的廠商一定會無所適從的!為了讓軟體開發商、與硬體發展者有一個依循的方向,因此而有 Linux Standard Base 這個玩意兒的誕生!所以,各個 distribution 也都要遵循 LSB 上面的規範,軟硬體發展者也都會依循 LSB ,所以囉,我們才會常常說,各大 distribution 雖然在提供的工具與創意上面有所不同,但是基本上,他們的 Linux 架構都是很類似的!因此,你只要玩一套 Linux distribution 也就夠了!其他的 distribution 應該就難不倒你囉!
    • Unix-Like

    • 其實 Unix-Like 可以說是目前伺服器類型的作業系統的統稱啦!因為,不論是 FreeBSD, BSD, Sun Unix, SCO Unix, HP Unix, Red Hat Linux, Mandrake Linux 等等,都是由同一個祖先『Unix』來的,因此,這些咚咚都被統稱為 Unix-Like 的作業系統囉!目前,很多的軟體在開發的時候,基本上,都已經可以是用在各個 Unix-Like 的平台上的!了不起,更改一些原始碼就可以適用你所在的平台囉!
    • 伺服器、工作站、終端機...

    • 由於網路的盛行,我們或許常常會聽到一些名詞ㄋㄟ~所以,底下先來介紹幾個簡單的網路名詞吧! ^_^,來認識一下什麼是 伺服器 ( Server )、工作站 (  Workstation ) 與終端機 ( Ternianl )?簡單的來說,你可以這樣認為:
      • 伺服器 ( Server ):提供 Internet 一種以上的網路服務的主機,例如 yahoo 提供的是 WWW 的服務,那麼 yahoo 就可以稱之為 伺服器 了!那麼,你自己架設一台 mail server 呢?呵呵!那也是一個小型的伺服器囉!所以,你必須要清楚的知道,伺服器是有規模大小之分的!目前一部 Linux 上面就可以架設多個伺服器軟體囉!例如 WWW 伺服器的 Apache 軟體、 FTP 伺服器的 Wu-ftp 軟體等等的;
      • 工作站 ( Workstation ) :基本上,工作站可以視為僅提供一群特定人士,作為數值分析、科學用途的機器。例如我們研究室有一部 Sun 的機器,他僅提供我們研究室內部幾部電腦的連線,當我們有需要使用到 Fortran 這個程式語言時,就連線進入 Sun 這部機器,並在上面進行我們所需要的計算工作!這個就是工作站啦。而工作站與伺服器的差別,大概就在於有沒有提供 internet 上面的服務而已,例如,如果我將 Sun 上面的 mail server 開啟之後,那麼這部機器就可以稱之為 伺服器 了!同時也是我們的工作站喔!當然,更廣義的定義是,只要是沒有對 Internet 上面提供網路服務的,那就是工作站了!這當然也就包含所謂的終端機!
      • 終端機 ( Terminal ) :簡單的說,就是 end-user ( 就是你啦 ) 前面的那部電腦!呵呵,例如我都是使用我的工作機 ( Windows ) 連上我們的主機來工作,那麼這一部 Windows 的電腦,就可以稱為 terminal 機器囉!不過,更狹義的來說,『終端機』本身應該是不具備任何可以作業的軟體的,在終端機上面一定要連上 Server 之後,才能進行各項作業!那才是最狹義的終端機囉!例如我們前面說過的早期的大型主機連線模式
      大致上的分別可以用上面的觀點來看!
    • 幾個常見的授權模式與定義

    • 說說幾個常見的授權模式吧:
      • GNU General Public License :這個可以由剛剛的說明瞭解,他主要定義在『自由軟體』上面,任何掛上 GPL 授權的軟體,需要公布其原始碼 ( Open Source ),GPL 有幾個主要的大方向:
        1. 任何個人或公司均可釋出自由軟體 ( free software );
        2. 任何釋出自由軟體的個人或公司,均可由自己的服務來收取適當的費用;
        3. 該軟體的原始碼 ( Source Code ) 需要隨軟體附上,並且是可公開發表的;
        4. 任何人均可透過任何正常管道取得此一自由軟體,且均可取得此一授權模式。
      • Freeware :不同於 Free software , Freeware 為『免費軟體』而非『自由軟體!』雖然他是免費的軟體,但是不見得要公布其原始碼,端看釋出者的意見囉!這個東西與 Open Source 畢竟是不太相同的東西喔!此外,目前很多標榜 免費軟體 的程式很多都有小問題!例如假借免費軟體的名義,實施使用者資料竊取的目的!所以『來路不明的軟體請勿安裝!』
      • Shareware :共享軟體這個名詞就有趣了!與自由軟體有點類似的是, Shareware 在使用初期,他也是免費的,但是,到了所謂的『試用期限』之後,您就必須要選擇『付費後繼續使用』或者『將他移除』的宿命~通常,這些共享軟體都會自行撰寫失效程式,讓你在試用期限之後就無法使用該軟體。
      • Berkeley Software Distribution (BSD) :使用 BSD source code 最常接觸到的就是 BSD 授權模式了!這個授權模式其實與 GPL 很類似,而其精神也與 Open Source 相呼應呢!
      • Open Source :Open source 表示軟體釋出時,一定伴隨著原始碼的釋出喔!通常他有幾個好處:
        1. 程式設計師通常會等到程式成熟之後才會釋出 ( 免得被笑, ^_^ ),所以通常程式在雛形的時候,就已經具有相當的優良體質;
        2. Open Source 的精神,相信當程式原設計人將程式原始碼釋出之後,其他的程式設計師接受這份原始碼之後,由於需要將程式改成自己所需的樣式,所以會經由本身的所學來加以改良,並從中加以改良與除蟲,所以程式的 debug 功能會比傳統的 close source 來的快!
        3. 由於程式是伴隨原始碼的,因此,系統將會不易存在鮮為人知的木馬程式或一些安全漏洞,相對而言,會比較更加的安全!
      • Close Source :程式的核心是封閉的,優點是有專人維護,您不需要去更動他;缺點則是靈活度大打折扣,使用者無法變更該程式成為自己想要的樣式,此外,若有木馬程式或者安全漏洞,將會花上相當長的一段時間來除錯!
    • GNU General Public License ( GPL )

    • 上面我們提到了 Linux 是基於 GPL 的情況下而允許大眾可以做最大限度的使用!那麼 GPL 是什麼呢?基本上他是基於 GNU 的架構下的!簡單的說, GNU 就是『自由軟體』的意思,『自由軟體』是放置於網路上供人免費下載使用的軟體,基本上他會提供原始程式碼與編譯完成的執行檔(有的僅提供原始碼,要編譯得自己來才行),並鼓勵使用者修改程式使符合使用者本身的服務需求,當然囉,如果你將這些自由軟體修改之後,以商業的手法來販賣,也不會觸犯到什麼法律上的責任啦,只是如此一來則違反了自由軟體的創作美意了!在目前的臺灣教育界中,有一群老師也是在積極的從事這一種『自由軟體』的集體創作呢!如此一來將有助於臺灣中小學教師的電腦程度,並提供良好的學習環境呢!當真是很不錯呦!以下將 GNU/GPL 的中文譯本附上,大家可以稍微看一看囉!
      版權所有 (C) 1989,1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA   02111-1307USA
      允許每個人複製和發佈這一許可證原始文件的副本,但絕對不允許對它進行任何修改。
      聲明
      This is an unofficial translation of the GNU General Public License into Chinese.   It was not published by the Free Software Foundation, and does not legally state the distribution terms for software that uses the GNU GPL-- only the original English text of the GNU GPL does that.   However, we hope that this translation will help Chinese speakers understand the GNU GPL better.
      這是一份 GNU 通用公共許可證非正式的中文翻譯。它不是自由軟體基金會所發布,並且不能適用於使用 GNU GPL 的軟體 ── 只有 GNU GPL 英文原文的版本才行。然而,我們希望這份翻譯能幫助中文的使用者更了解 GNU GPL。
      序言
      大多數軟體許可證的用意在於剝奪您共享和修改軟體的自由。相反的,GNU 通用公共許可證力圖保證您共享和修改自由軟體的自由 ── 保證自由軟體對所有使用者都是自由的。GNU GPL 適用於大多數自由軟體基金會的軟體,以及任何因信任而採用 GNU GPL 的作者所開發的軟體。(有些自由軟體基金會軟體受 GNU 函式庫通用許可證的保護)。您也可以將它用到您的程式中。
       
      當我們談到自由軟體 ( free software ) 時,我們指的是自由而不是價格。我們把 GNU 通用公共許可證設計成您的 保障,讓您保有發佈自由軟體的自由 ( 您可以自由決定是否要對此項服務收取費用 );確保您能收到程式原始碼或者在您需要時能得到它;確保您能修改軟體或將它的一部分用於新的自由軟體;而且還確保您知道您擁有這些權利。
       
      為了保護您的權利,我們需要作出規定:禁止任何人剝奪您的權利,或者要求您放棄這些權利。如果您修改了自由軟體或者發佈了軟體的副本,這些規定就轉化為您的責任。
       
      例如,如果您發佈這樣一個程式的副本,不管是免費的還是收費的,您必須將您具有的一切權利給予您的接受者;您必須確認他們能收到或得到原始程式碼;並且將這些條款給他們看,使他們知道他們有這樣的權利。
       
      我們採取兩項措施來保護您的權利:
      1.用版權來保護軟體。
      2.提供您許可證,賦予您複製,發佈和修改這些軟體的法律許可。
      同樣,為了保護每個作者和我們自己,我們需要清楚地讓每個人明白,自由軟體沒有擔保 ( no warranty )。如果由於某人修改了軟體,並繼續加以傳播,我們需要它的接受者明白:他們所得到的並不是原來的自由軟體。由其他人引入的任何問題,不應損害原作者的聲譽。
       
      最後,由於任何自由軟體不斷受到軟體專利的威脅,故我們希望避免這樣的風險。如果自由軟體的再發佈者以個人名義獲得專利許可證,也就等同將軟體變為私有。為防止這一點,我們必須明確聲明:任何專利必須以允許每個人自由使用為前提,否則就不准許有專利。
       
      下面是有關複製、發佈和修改的確切的條款和條件。
       GNU 通用公共許可證 有關複製,發佈和修改的條款和條件
      凡是版權所有者在其程式和作品中聲明其程式和作品可以在 GNU GPL 條款的約束下發佈,這樣的程式或作品都受到本許可證約束。下面提到的 "程式" 指的是任何這樣的程式或作品。而 "程式的衍生作品" 指的是這樣的程式或者版權法認定下的衍生作品,也就是說包含此程式或程式的一部分的套件,可以是原封不動的,或經過修改的,和/或翻譯成其他語言的 ( 程式 )。( 在下文中,"修改" 一詞的涵義一律包含翻譯作品。) 每個許可證接受人 ( license ) 用 "您" 來稱呼。
       
      本許可證條款不適用於複製,發佈和修改以外的行為。這些行為超出這些條款的範圍。執行本程式的行為不受條款的限制。而程式的輸出只有在其內容構成本程式的衍生作品 ( 並非只是因為該輸出由本程式所產生 ) 時,這一條款才適用。至於程式的輸出內容是否構成本程式的衍生作品,則取決於程式具體的用途。
       
      1. 只要您在每一程式副本上明顯和恰當地宣告版權聲明和不承擔擔保的聲明,並原封不動保持此許可證的聲明和沒有擔保的聲明,並將此許可證連同程式一起給其他每位程式接受者,您就可以用任何媒體複製和發佈您收到的程式的原始碼。

      2.  
        您可以為轉讓副本的實際行動收取一定費用。您也可以自由決定是否以提供擔保來換取一定的費用。
         
      3. 您可以修改程式的一個或幾個副本或程式的任何部分,以此形成基於這些程式的衍生作品。只要您同時滿足下面的所有條件,您就可以按前面第一款的要求複製和發佈這一經過修改的程式或作品。

      4.  
        • 您必須在修改過的檔案中附有明顯的說明:您修改了此一檔案及任何修改的日期。
        • 您必須讓您發佈或出版的作品,包括本程式的全部或一部分,或內含本程式的全部或部分所衍生的作品,允許第三方在此許可證條款下使用,並且不得因為此項授權行為而收費。
        • 如果修改的程式在執行時以交談方式讀取命令,您必須使它在開始進入一般的交談使用方式時列印或顯示聲明:包括適當的版權聲明和沒有擔保的聲明 ( 或者您提供擔保的聲明 );使用者可以按此許可證條款重新發佈程式的聲明;並告訴使用者如何看到這一許可證的副本。 ( 例外的情況:如果原始程式以交談方式工作,但它通常並不列印這樣的聲明,那麼您基於此程式的作品也就不用列印聲明 )。
         
        這些要求適用於整個修改過的作品。如果能夠確定作品的一部分並非本程式的衍生產品,且可以合理地單獨考慮並將它與原作品分開的話,則當您將它作為獨立的作品發佈時,它不受此許可證和其條款的約束。但是當您將這部分與基於本程式的作品一同發佈時,則整個套件將受到本許可證條款約束,因為本許可證對於其他許可證持有人的授權擴大到整個產品,也就是套件的每個部分,不管它是誰寫的。
         
        因此,本條款的意圖不在於剝奪您對完全由您自身完成作品的權利,而是履行權利來控制基於本程式的集體作品或衍生作品的發佈。
         
        此外,將與本程式無關的作品和本程式 ( 或本程式的衍生作品 ) 一起放在貯存媒體或發佈媒體的同一卷上,並不導致將其他作品置於此許可證的約束範圍之 內。
         
      5. 您可以以目標碼或可執行形式複製或發佈程式 ( 或符合第 2 款,本程式的衍生作品 ),只要您遵守前面的第 1、2 款,並同時滿足下列三條中的任一條。

      6.  
        • 在通常用作軟體交換的媒體上,和目標碼一起附有機器可讀的完整的本程式原始碼。這些原始碼的發佈應符合上面第 1,2 款的要求。或者
        • 在通常用作軟體交換的媒體上,和目標碼一起,附上書面報價,提供替第三方複製原始碼的服務。該書面報價有效期不得少於 3 年,費用不得超過完成原程式發佈的實際成本,原始碼的發佈應符合上面的第 1,2 款的要求。或者
        • 和目標碼一起,附有您收到的發佈原碼的報價信息。 ( 這一條款只適用於非商業性發佈,而且您只收到程式的目標碼或可執行碼,和按 b 款要求提供的報價 )
         
        作品的原始碼指的是對作品進行修改最優先擇取的形式。對可執行的作品而言,完整的原始碼套件包括:所有模組的所有原始程式,加上有關的介面的定義,加上控制可執行作品的安裝和編譯的 script。至於那些通常伴隨著執行本程式所需的作業系統元件 ( 如編譯器、核心等 ) 而發佈的軟體 ( 不論是原始碼或可執行碼 ),則不在本許可證要求以程式原始碼形式伴隨發佈之列,除非它是本程式的一部分。
         
        如果可執行碼或目標碼是以指定複製地點的方式來發佈,那麼在同一地點提供等價的原始碼複製服務也可以算作原始碼的發佈,然而第三方並不需因此而負有必與目標碼一起複製原始碼的義務。
         
      7. 除了本許可證明白聲明的方式之外, 您不能複製,修改,轉發許可證和發佈程式。任何試圖用其他方式複製,修改,轉發許可證和發佈程式是無效的,而且將自動結束許可證賦予您的權利。然而,對那些從您那裡按許可證條款得到副本和權利的人們,只要他們繼續全面履行條款,許可證賦予他們的權利仍然有效。

      8.  
      9. 您沒有在許可證上簽字,因而您沒有必要一定接受此一許可證。然而,沒有任何其他東西賦予您修改和發佈程式及其衍生作品的權利。如果您不接受許可證,這些行為是法律禁止的。因此,如果您修改或發佈程式 ( 或本程式的衍生作品 ) ,您就表明您接受這一許可證以及它的所有有關複製、發佈和修改程式或基於程式的作品的條款和條件。

      10.  
      11. 每當您重新發佈程式 ( 或任何程式的衍生作品 ) 時,接受者自動從原始許可證頒發者那裡接到受這些條款和條件支配的複製、發佈或修改本程式的許可。您不可以增加任何條款來進一步限制本許可證賦予他們的權利。您也沒有強求第三方履行許可證條款的義務。

      12.  
      13. 如果由於法院判決或違反專利的指控或任何其他原因 ( 不限於專利問題 ) 的結果,使得強加於您的條件 ( 不管是法院判決,協議或其他 ) 和許可證的條件有衝突時,他們也不能令您背離許可證的條款。在您不能同時滿足本許可證規定的義務及其他相關的義務來發佈程式時,則結果您只能夠根本不發佈程式。例如,如果某一專利許可證不允許所有直接或間接從您那裡接受副本的人們,在不付專利費的情況下重新發佈程式,唯一能同時滿足兩方面要求的辦法是停止發佈程式。

      14.  
        如果本條款的任何部分在特定的環境下無效或無法實施,就使用條款的其餘部分,並將這部分條款作為整體用於其他環境。
         
        本條款的目的不在於引誘您侵犯專利或其他財產權的要求,或爭論這種要求的有效性。本條款的主要目的在於保護自由軟體發佈系統的完整性。它是通過公共許可證的應用來實現的。許多人已依賴同是出自此系統的應用程式,經由此系統發佈大量自由軟體而做出慷慨的供獻。作者 / 捐獻者有權決定他/她是否通過任何其他系統發佈軟體,許可證接受者不能強迫作者 / 捐獻者做某種特定的選擇。
         
        我們相信許可證其他部分已涵蓋本節所述狀況,本節目的只在更明確說明許可證其餘部分可能產生的結果。
         
      15. 如果由於專利或者由於有版權的介面問題使程式在某些國家的發佈和使用受到限制,則以本許可證發佈程式的原始作者可以增加發佈地區的限制條款,將這些國家明確排除在外,並在這些國家以外的地區發佈程式。在這種情況下,這些限制條款如同寫入本許可證一樣,成為許可證的條款。

      16.  
      17. 自由軟體基金會可能隨時出版通用公共許可證的修改版或新版。新版和當前的版本在精神上保持一致,但在細節上可能有出入,以處理新的問題與狀況。

      18.  
        每一版本都有不同的版本號。如果程式指定可適用的許可證版本號以及 "任何更新的版本" ,您有權選擇遵循指定的版本或自由軟體基金會以後出版的新版本。如果程式未指定許可證版本,您可選擇自由軟體基金會已經出版的任何版本。
         
      19. 如果您願意將程式的一部分結合到其他自由程式中,而它們的發佈條件不同,請寫信給作者,要求準予使用。如果是自由軟體基金會加以版權保護的軟體,請寫信給自由軟體基金會,我們有時會作為例外的情況處理。我們的決定受兩個主要目標的指導,這兩個主要目標是:我們的自由軟體的衍生作品繼續保持自由狀態,以及從整體上促進軟體的共享和重複利用。

      20.  
      21. 沒有擔保

      22. 由於程式准予免費使用,在適用法准許的範圍內,對程式沒有擔保。除非另有書面說明,版權所有者和/或其他提供程式的人們 "一樣" 不提供任何類型的擔保,不論是明確的,還是隱含的,包括但不限於可銷售和適合特定用途的隱含保證。全部的風險,如程式的質量和性能問題都由您來承擔。如果程式出現缺陷,您應當承擔所有必要的服務、修復和改正的費用。
         
      23. 除非適用法或書面協議的要求,在任何情況下,任何版權所有者或任何按許可證條款修改和發佈程式的人們都不對您的損失負有任何責任。包括由於使用或不能使用程式引起的任何一般的、特殊的、偶然發生的或重大的損失 ( 包括但不限於數據的損失,或者數據變得不精確,或者您或第三方的持續的損失,或者程式不能和其他程式協調運行等 ) 。即使版權所有者和其他人已被告知這種損失的可能性也不例外。
      條款結束
       
      ( 譯註:以下不是法律條文,只是要教一般的程式設計師如何使用 GNU GPL )
      如何將這些條款用到您的新程式
       
        如果您開發了新程式,而且您需要它得到公眾最大限度的利用,要做到這一點的最好辦法是將它施以 GNU GPL,使得每個人都能循此條款來修改和重新發佈你寫的軟體。
         
        為了做到這一點,請將程式附上下列聲明。最安全的方式是將它放在每個原始碼檔案的開頭,以便最有效地傳遞沒有擔保的信息。每個文件至少應有 "版權所有" 行以及在什麼地方能看到聲明全文的說明。
         
        用一行空間描述程式的名稱和它的用途版權所有 (C) 19XX 作者姓名
         
        本程式是自由軟體,您可以遵照自由軟體基金會 ( Free Software Foundation ) 出版的 GNU 通用公共許可證條款 ( GNU General Public License ) 第二版來修改和重新發佈這一程式,或者自由選擇使用任何更新的版本。
         
        發佈這一程式的目的是希望它有用,但沒有任何擔保。甚至沒有適合特定目的而隱含的擔保。更詳細的情況請參閱 GNU 通用公共許可證。
         
        您應該已經和程式一起收到一份 GNU 通用公共許可證的副本。如果還沒有,寫信給:
        Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
         
        此外還應加上如何和您保持聯繫的信息。
         
        如果程式以交談方式進行工作,當它開始進入交互方式工作時,應輸出類似下面的簡短聲明:
        Gnomovision 第 69 版,版權所有 (C) 19XX,作者姓名, Gnomovision 絕對沒有擔保。要知道詳細情況,請輸入 "show w"。 這是自由軟體,歡迎您遵守一定的條件重新發佈它,要知道詳細情況, 請輸入 "show c"。
         
        假設的命令 "show w" 和 "show c" 應顯示通用公共許可證的相應條款。當然,您使用的命令名稱可以不同於 "show w" 和 "show c" 。根據您的程式的具體情況,也可以用選單或滑鼠來顯示這些條款。
         
        如果需要,您應該取得您的上司 ( 如果您是程式員 ) 或您的學校簽署放棄程式版權的聲明。下面只是一個例子,您應該改變相應的名稱:
        Yoyodyne 公司以此方式放棄 James Hacker 所寫的 Gnomovision 程式的全部版權利益。
        Ty coon 簽名,1989.4.1 Ty coon 副總裁
         
        這一許可證不允許您將程式併入私有程式。如果您的程式是一個子函式庫。您可能會認為讓它和私有的應用程式連接會更有用。如果您想這麼做,請使用 GNU 函式庫通用公共許可證代替本許可證。

    本章習題練習 ( 要看答案請將滑鼠移動到『答:』底下的空白處,按下左鍵圈選空白處即可察看 )

    • 請問『 核心, kernel 』是什麼?而『作業系統』又是什麼?

    • 答:
        一部機器是否能夠正常的工作,需要藉由『核心』來管理,因此,『核心』可以說是一部機器是否能夠正常運作的主要咚咚!而這個『核心』就是所謂的『作業系統』最底層的元件了,他負責了作業系統與『硬體』之間的溝通,而我們要利用作業系統來使硬體正常的工作,也需要藉由『核心』來幫忙轉譯才行。至於所謂的『作業系統』則是建構在核心之上,加入許多的功能與物件,好讓使用者能夠更加輕易的管理核心來操縱硬體工作。至於『使用者、使用者操作介面、核心、硬體』之間的相關性就如同前面圖一的圖示所示。
    • 有個朋友問我說『 Linux 是什麼?』我該如何回答比較好?

    • 答:
        Linux 是由芬蘭人 Linus Torvalds 先生所寫出來的一個小核心作業系統,由於此一作業系統是依據 Unix 的核心修改而來的,因此這個作業系統承接了 Unix 的良好傳統:穩定性高、多人多工環境設計優良、要求配備較低等優點。不過, Linux 其實就是一個『核心』,這個『核心』是管理與操縱硬體來正確工作的主要功能。目前我們提到的 Linux 不論是由何家公司所發產出來的,都是使用 http://www.kernel.org 所釋出的 Linux 核心呢!
    • 怎麼有這麼多版本的 Linux 呢?有 Mandrake, Red Hat, CLE, OpenLinux… 一大堆,這些版本有什麼異同?

    • 答:
        就如同前面一題提到的, Linux 其實就是一個『核心』,而各開發商依據這個核心的功能,安置了各式各樣的伺服器與桌面程式,以構成可以完整安裝在個人電腦的光碟釋出版本,這就是各個版本的來源啦 ( distribution ),所以,各個 distribution 的伺服器與桌面程式或許有些許的不同,但是基本的檔案架構、BASH Shell 及基本操作系統與介面,都是相同的,因為,他們都是使用 www.kernel.org 所提供的核心來發展的!
    • 我要如何取得 Linux distribution 的可安裝光碟?

    • 答:
        目前各大版本的 Linux distribution 大致上仍然依附在 GPL 這個授權碼之上,因此在網路上面都可以輕易的下載,若有興趣的話可以到各發展的廠商主網頁去下載。然而為了頻寬的節省起見,建議在台灣以映像站台來下載速度上會快上很多,特別建議南台灣朋友可以到中山大學的 FTP 站 ( http://ftp.nsysu.edu.tw )下載資料!
    • 簡單的說明一下什麼是 GNU 的 GPL ?

    • 答:
      1. 任何個人或公司均可釋出自由軟體 ( free software );
      2. 任何釋出自由軟體的個人或公司,均可由自己的服務來收取適當的費用;
      3. 該軟體的原始碼 ( Source Code ) 需要隨軟體附上,並且是可公開發表的;
      4. 任何人均可透過任何正常管道取得此一自由軟體,且均可取得此一授權模式。
    • 何謂多人 ( Multi-user ) 多工 ( Multitask )?

    • 答:
        Multiuser 指的是 Linux 允許多人同時連上主機之外,每個使用者皆有其各人的使用環境,並且可以同時使用系統的資源!
        Multitask 指的是多工環境,在 Linux 系統下, CPU 與其他例如網路資源可以同時進行多項工作, Linux 最大的特色之一即在於其多工時,資源分配較為平均!
    • 簡單說明 GNU General Public License ( GPL ) 與 Open Source 的精神:

    • 答:
      1. GPL 的授權之軟體,乃為自由軟體(Free software),任何人皆可擁有他;
      2. 開發 GPL 的團體(或商業企業)可以經由該軟體的服務來取得服務的費用;
      3. 經過 GPL 授權的軟體,其屬於 Open source 的情況,所以應該公布其原始碼;
      4. 任何人皆可修改經由 GPL 授權過的軟體,使符合自己的需求;
      5. 經過修改過後 Open source 應該回饋給 Linux 社群。

      6. (PS. Open source 最大的優點為多人維護, debugs 的速度較快,程式亦較為安全,但是缺點則是缺乏『專人』維護!)
    修改歷史:
    • 2002/06/25:第一次完成
    • 2003/01/26:重新修訂,加入一些歷史事件、重新編排與加入 FAQ
    • 2003/02/28:加入百資以及 distrowatch 兩個網站的推薦!
    伺服器篇文件
    各版本彙整說明
    CentOS 6.x