01認識linux

簡單介紹
Linux是一套作業系統,什麼是作業系統呢?簡單來說像 是大家耳熟能詳的windows XP、98以及蘋果電腦的Mac OS都稱為作業系統,但不同的是,Linux是一套免費的軟體,可以自由下載或燒給別人都沒關係,可是其他的作業系統如windows XP、98和蘋果電腦的Mac OS就要摳摳囉。

不過使用Linux會比使用windows系列與蘋果之類的作業系統還要複雜許多,因 為Linux主要是針對電腦高手,可以不受拘束的自由修改成自己喜歡的系統,當然這需要一點功力,而windows與蘋果則較偏向一般大眾,華麗的界面與 人性化的操作,好用好上手是一般電腦使用者最需要的,這也是為什麼他們有高市佔率的原因了。換句話說,今天如果你是個喜歡打電動聽音樂看電影的地球人,我 比較建議你用windows或蘋果之類的作業系統,而那些電腦狂熱份子和一天沒接觸到電腦或網路就會缺氧的人,如筆者,我倒是挺建議去玩玩看Linux, 將會有像在原始森林冒險般的體驗,有著許多挑戰,這也正是 Linux好玩有趣的地方。


可以幹嘛?
我們己經大概知道Linux是一種作業系統的名稱,也知道是個頗複雜但又極具挑戰性的系統,那Linux學會了可以幹嘛勒???很簡單,我們先從Linux本身可以用來做什麼來談談吧。

首先呢,由於技術的進步,現在windows與蘋果相關的作業系統可以做的,Linux幾乎都可以做,像是看電影聽音樂打報告玩MSN,不過如果是玩遊 戲的話,可能會另人挺失望的。但好消息是在Linux上的軟體幾乎都是免費的,例如在現代的Linux裡面一般都會有燒錄軟體與播放DVD的軟體,以及許 多市面上需要摳摳但在這裡是免費的軟體,而且在剛灌好的系統上可以滿足一般使用者大部份的需求。微軟的Office系列軟體相信大家都耳熟能詳,在 Linux也可以用到類似功能的辦公軟體,如Open Office(號稱微軟office的複製品),同樣的這也是一款免費且功能強大的軟體,不過在Linux上這只是其中一例,還有很多好用且免費的軟體需 要玩家自己去體驗。

對於較進階的玩家來說,Linux有提供許多的文字編輯器,可用來修改一些系統設定檔或其他文字處理的相關功能,簡 單來說就是用來修改文字檔的軟體,例如windows的記事本。而Linux比較熱門的文字編輯器是vi與emacs。vi的特色是簡單有歷史,頗受 UNIX使用者的喜愛,UNIX也是一套作業系統,而emacs是新型且具有強大與有趣功能的編輯器。

Linux也提供了完整的程式撰 寫環境,讓程式設計師可以在這平台上盡情的發揮,並撰寫Linux或UNIX的應用程式或是系統程式。Linux最通用的程式編輯器是gcc(GNU’s Compiler Collection),也是C/C++的最佳編輯器之一,除了可以編輯C/C++外還可編輯Chill(以通訊為主要應用的程式語言)、 FORTRAN、JAVA,並支援許多先進的特性與最佳化的處理。

強大的網路功能更是Linux最大的優勢,也是堪稱是世界上功能最強 大的及最堅實的網路系統之一,而且又是免費,所以很多人常用Linux架設網路伺服器。特別是常見的LAMP組合,是由四個免費的軟體:Linux + Apache + MySQL+ PHP搭配在一起做為網頁伺服器的主機。Apache是一款免費的網頁伺服器軟體,MySQL是極受歡迎且好用的資料庫軟體,PHP是功能強大的動態網頁 程式語言,可以配合MySQL寫出像購物車,留言版之類的功能。除此之外,Linux也可以當做是整個網路的路由器,也可以被規畫成防火牆來使用,加上管 理簡便效能佳成本低,所以很多網路工作的人都熱切的擁抱它。在來看看與其他平台的合作表現吧,Linux可以與其它的UNIX機器一起工作,並支援 Samba軟體套件,讓Linux可以做為windows的檔案伺服器。更重要的是Linux環境是可以隨意修改調整的,甚至連低階的核心都可更改,對於 需要直接掌握到作業系統內部運作的企業而言,這點是極具吸引力。

不只如此,Linux也是叢集運算(cluster)最受歡迎的平台之 一,蝦米係叢集?簡單來說就是把一堆電腦連起來當一台電腦來用,較專業的說法是,藉由每秒10億位元(100MB)以上傳輸速度的高速網路,將一些便宜的 電腦聯結在一起以進行平行運算。把無數Linux電腦連結成一部超級電腦,來處理數值或科學運算的Linux的叢集應用己越來越廣泛,例如Google搜 尋引擎所使用的即是4000台Linux機器所組成的電腦叢集。

另外,Linux也是科學界喜歡的工作平台,他曾經遠至北太平洋公海, 在海洋研究船上負責通訊與資料分析工作;Linux系統也為南極的研究站所使用,從星星的形成至地震的分析都可以找到它的身影;也有很多醫院使用 Linux來維護病人的病歷資料,包括美國海軍陸戰隊也在使用,至於是用來幹嘛,就請讀者自己猜猜看囉。


怎麼冒出來的?
沒想到吧,世上竟然有這麼神奇的作業系統,不但可以用來休閒娛樂,還可以應用在科學領域上,最重要的是不用錢,天啊~太吸引人了,不過相信對第一次接觸到Linux的玩家一定感到很疑惑,為什麼不用錢勒???這個就要從他的歷史開始講起了。

Linux系統最初是由芬蘭赫爾辛基大學的學生Linus Torvalds在1991年開始開發,而他之所以會想開發,其靈感就是來自於UNIX作業系統的其中一個版本Minix。UNIX是一套功能強大且是全 球最受歡迎的作業系統之一,不過要摳摳,它的版本有很多種,主要是作為大型主機的系統,最初由貝爾實驗室所開發。

當時的他只是想建構一 個簡單的UNIX的作業系統,他花了不少時間重頭建構並讓程始碼可以執行,終於在1991年10月5日Linus發表了第一個正式版本-0.02。因為 Linux是Linus以自由軟體基金會的通用公開授權(General Public License ; GPL)透過網路所發行,加上是免費而且大家有權力可以自行修改更新,所以透過網路來撰寫與維護的開發人員越來越多,然後0.03,0.10,0.95陸 續推出,最後到了1994年3月Linux1.0版問世。

在Linux的發展中,BSD作業系統也扮演著一個關鍵的角色。BSD( Berkerley Software Distribution )是由加州大學柏克萊分校於1970年代,由一組設計團隊根據UNIX的原始碼所開發出來的。在提供Linux工具軟體使其普遍化而言,它則具有舉足輕重 的地位,也有些Linux的程式還包含了BSD的原始程式碼,甚至蘋果的作業系統也是奠基於BSD。

而現在的Linux擁有大量的應用 軟體、程式語言、工具軟體與硬體支援;並支援X視窗系統、網路與多重處理器等功能。也有很多公司發行免費的 Linux套件,簡單的說法就是在Linux上整合許多好用程式軟體,而不同的套件有著不同的程式軟體,但Linux本身還是一樣的,比較常見的像是 Red hat , SuSe , Debian。一般都是使用這些套件在安裝,因為大部份都有支援圖形化安裝較為容易外,套件本身也附了許多好用功能。而Red hat在9.0後就變成商用版本,雖然要摳摳不過也提供更多的功能與服務。Red hat也有發行Linux的免費版本-fedora,也是挺受大家歡迎的的套件之一。


深入介紹
其實從狹義的觀點來看,Linux只是一套作業系統的核心,所提供的只是基礎層次的系統服務:包括行程排班(process scheduling)、虛擬記憶體( virtual memory )、檔案管理( file management )、及I/O裝置的管理。但對大部份來說Linux所指的是整個作業系統,核心加上許多應用程式,一個完整的開發與工作環境,包含編輯器,圖形界面,文字 處理器,遊戲等。

Linux可以做的事情非常多,這點大家同意吧,之所以如此特別,其實用另一種角度來看,也可以形容它是一個免費的UNIX,UNIX能夠做的Linux幾乎都可以做,而且一樣穩定可靠,在與其他昂貴的工作站比較下,它擁有更佳的效能表現。

Linux是一個完整的多工多用戶的作業系統,多工就是可以在同一時間可以處理很多事,與市面上看到的作業系統一樣,多用戶是可以讓使用者同時一起連線 來使用。並最多可以支援到32顆處理器,也可以與其他作業系統和諧共存,如:windows95/98/NT/XP/2000、Mac OS及其他版本的UNIX。也支援各種檔案格式,像是windows的NTFS與FAT32以及蘋果電腦與UNIX的檔案格式。

在一開 始使用Linux時經常會另人感到困惑的地方,就是版本編號。在這裡有一個地方要特別強調,Linux的套件(如Red hat、Debian等)和Linux核心、應用軟體、元件、函式庫等的編號解讀是不同的,雖然數字越高表示越新,但仍存在著差異。先從Linux的套件 編號開始說吧,比較常看到的例如fedora 4.0版或是Debian 6.1版,其實也沒什麼好說的,就是越高越新,就這樣很簡單。接著來談談Linux核心、應用軟體、元件、函式庫等的編號吧,這裡就要注意了,因為編號的 第二個數字如果是奇數則代表是開發版,而如果是偶數則代表是穩定版,例如核心2.4.19就代表他是穩定版本,核心2.5.12就代表開發版本,這兩個版 本都會一起發佈。穩定版提供可以穩定工作的作業系統,開發版本提供最尖端的實驗性功能。

常會聽到別人在講核心(kernel), 這到底是什麼呢?這是Linux最重要的部份,作業系統的心臟,以極複雜的程式碼,負責控制應用程式與硬體裝置間的界面、安排行程的執行順序以達成多工效 果、處理許多攸關系統運作的常務工作。Linux的核心會將部份最近用過的檔案保存於記憶體,以盡量減少不必要的硬碟存取動作,因為硬碟存取是相當慢的, 雖然我們在電腦上感覺起來很順,但實際上硬碟正在吃力的做事,所以系統上所有可用的記憶體,會全被核心用來快取硬碟資料,因此在關機時一定要按照標準關機 程序,讓核心把記憶體的資料都先放回硬碟,切記不要直接關機,很傷的。

而講到核心,有一個常聽到的名詞-shell是一定要提的, shell是最重要的公用程式,負責解譯及執行使用者所輸作的命令,他是用來與核心溝通的界面,我們如果想使用核心,就必須要透過shell。shell 看起來很像MSDOS,就是黑底白字的畫面,然後可以打指令。Shell功能強大,可以同時管理數個正在進行中的行程,I/O的重新導向,與編寫指令搞 (shell script)的指令語言,類似dos的批次檔(.bat)。

在Linux上有很多shell可供選擇,而最大的差異在 於指令語言。最普遍的shell是bash( GUN Bourne Again Shell ),提供了許多先進的功能。另一種常用的shell是tcsh,這是一種C shell的版本,提供與bash類似的功能,還有ksh( korn shell )以及BSD的ash、zsh和rc(plan9的shell)。

接下來要聊的是讓Linux有著漂亮外觀的圖形界面, Linux之所以現在會有漂亮的外觀人性化的介面,主要是因為X視窗系統,X視窗系統是UNIX 的標準圖形使用者界面(GUI),最初是在1980年由MIT所開發,而Linux上的X視窗系統叫做XFree86,是從X11R6,(X視窗系統第 11版第6次發行所移置過來的),不過雖然X視窗系統提供了極彈性的視窗化系統,但多數使用者還是希望有一個完整的桌面環境,於是KDE與GNOME這兩 個常在安裝Linux中看到的應用軟體,為桌面電腦運算環境開啟了一個新紀元,這兩個桌面環境系統都有亮麗的圖形界面,不過KDE著重於操作便利性及穩定 性,GNOME較重視美麗的外觀及更多的設定功能。

最後,大家除了都知道這是免費的作業系統外,更重要的是要知道Linux的中心思想是開放原始碼軟體個概念,即將軟體的開發、除錯、測試與研究開放給任何有興趣的人來參與,所以Linux是由各路人馬合力開發與自由發行的。

在使用Linux上可能常需要動手解決一些小問題,對一些使用者來說可能會覺得很痛苦,但如果採取正面的思考方式,把它當成是一種使用Linux的樂 趣。Linux就會像一種冒險活動或一種生活方式,如同滑雪、越野單車運動一般,從修補自己的系統中學習,由解決問題中得到樂趣,相信Linux一定能為 電腦愛用者重新點燃他們第一次使用電腦時的那種熱情。

而在解決問題與學習Linux這部份,筆者列出以下幾個網站供各位參考:

1 GNU-Linux 初學之旅 http://www.study-area.org/tips/linux_entry.htm
2 鳥哥的Linux私房菜 http://linux.vbird.org/
3 台灣的 Linux 入口站 http://www.linux.org.tw/
4 自由軟體交換網 http://freesf.tnc.edu.tw/
5 快樂學習fedora linux http://live.fect.com.tw/

參考資料:linux技術手冊第四版o’reilly