###Linux的特色
Linux是Torvalds先生所開發出來的,基于GPL的版權宣告之下,可以在x86的架構下運作,也可以被移植到其他的大型主機上面。 由于開發的相關理念與兼容的問題,因此,我們也可以稱Linux為Unix Like操作系統的一種。
**Tips:**
<i>其實Unix-Like可以說是目前服務器類型的操作系統的統稱啦! 因為,不論是FreeBSD, BSD, Sun Unix, HP Unix, Red Hat Linux, Mandrake Linux等等,都是由同一個祖先Thompson所寫的『Unix』來的, 因此,這些咚咚都被統稱為Unix-Like的操作系統啰!</i>
*****
###Linux的特色
那么這個系統有什么特異功能呢?簡單的說:
- 自由與開放的使用與學習環境:
由于Linux是基于GPL的授權之下,因此他是自由軟件, 也就是任何人都可以自由的使用或者是修改其中的原始碼的意思! 這種開放性架構對科學界來說是相當重要的! 因為很多的工程師由于特殊的需求,常常需要修改系統的原始碼, 使該系統可以符合自己的需求!而這個開放性的架構將可以滿足各不同需求的工程師! 因此當然就有可能越來越流行啰!以鳥哥來說,目前環境工程界的空氣質量模式最新版 Models-3/CMAQ 就是以Linux為基準平臺設計的呢!
- 配備需求低廉:
Linux可以支持個人計算機的x86架構,系統資源不必像早先的Unix系統那般,僅適合于單一公司所出產的設備! 單就這一點來看,就可以造成很大的流行啰!不過,如果你想要在Linux下執行X Window系統, 那么硬件的等級就不能太低了!
- 核心功能強大而穩定:
而且由于Linux功能并不會輸給一些大型的Unix工作站,因此,近年來越來越多的公司或者是團體、 個人投入這一個操作系統的開發與整合工作!例如IBM與升陽公司都有推出x86的Linux服務器呢!
- 獨立作業:
另外,由于很多的軟件套件逐漸被這套操作系統拿來使用,而很多套件軟件也都在 Linux這個操作系統上面進行發展與測試,因此,Linux近來已經可以獨力完成幾乎所有的工作站或服務器的服務了,例如 Web, Mail, Proxy, FTP.....。
目前Linux已經是相當成熟的一套操作系統啰!而且不耗資源又可以自由取得!呵呵, 可以說造成微軟相當大的壓力呀!此外,由于他的系統硬件要求很低, 加上目前很多的人由于『Intel 的陰謀』而造成手邊有相當多的淘汰掉的硬件配備, Linux在這些被淘汰的硬件中就可以執行的相當的順暢與穩定!因此也造成相當多朋友的關注啰!
**Tips:**
<i>
呵呵!開玩笑的,因為Tom的硬件評論 (http://www.big5.tomshardware.com/) 網站常常這樣取笑Intel的說!呵!很好笑!</i>
這也是造成Linux成為最近幾年來最受矚目的操作系統之一,如前所述, 他會受到矚目的原因主要是因為他是『free』的,就是可以自由取得的操作系統啦! 然后他是開放性的系統,也就是你可以隨時的取得程序的原始碼,這對于程序開發工程師是很重要的! 而且,雖然他是Free的自由軟件,不過功能卻很強大!另外, Linux對于硬件的需求是很低的,這一點更造成它流行的主因,因為硬件的汰換率太快了, 所以很多人手邊都有一些很少在用的零件,這些零件組一組就可以用來跑Linux了, 反正做一個工作站又不用使用到屏幕(只要主機就可以啰),因此Linux就越來越流行啰!
**Tips:**
<i>也就是因為Linux具有 1.硬件需求低、 2.架構開放、 3.系統穩定性及保密性功能夠強、 4.完全免費,所以造成一些所謂『反微軟聯盟』的程序設計高手不斷的開發新軟件!以與Microsoft進行抗衡!</i>
****
###Linux的優缺點
那干嘛要使用Linux做為我們的主機系統呢?這是因為Linux有底下這些優點:
- 穩定的系統:
Linux本來就是基于Unix概念而發展出來的操作系統,因此,Linux具有與Unix系統相似的程序接口跟操作方式, 當然也繼承了Unix穩定并且有效率的特點。常聽到安裝Linux的主機連續運做一年以上而不曾當機、 不必關機是稀松平常的事;
- 免費或少許費用:
由于Linux是基于GPL授權下的產物,因此任何人皆可以自由取得Linux, 至于一些『安裝套件』的發行者, 他們發行的安裝光盤也僅需要些許費用即可獲得!不同于Unix需要負擔龐大的版權費用,當然也不同于微軟需要一而再、 再而三的更新你的系統,并且繳納大量費用啰!
- 安全性、漏洞的快速修補:
如果你常玩網絡的話,那么你最常聽到的應該是『沒有絕對安全的主機』! 沒錯!不過Linux由于支持者日眾,有相當多的熱心團體、個人參與其中的開發, 因此可以隨時獲得最新的安全信息,并給予隨時的更新,亦即是具有相對的較安全!
- 多任務、多使用者:
與Windows系統不同的,Linux主機上可以同時允許多人上線來工作, 并且資源的分配較為公平,比起Windows的單人多任務系統要穩定的多啰! 這個多人多任務可是Unix-Like上面相當好的一個功能,怎么說呢?你可以在一部 Linux主機上面規劃出不同等級的用戶,而且每個用戶登入系統時的工作環境都可以不相同, 此外,還可以允許不同的使用者在同一個時間登入主機,同時使用主機的資源。
- 使用者與群組的規劃:
在Linux的機器中,檔案的屬性可以分為『可讀、可寫、可執行』 等參數來定義一個檔案的適用性,此外,這些屬性還可以分為三個種類, 分別是『檔案擁有者、檔案所屬群組、其他非擁有者與群組者』。 這對于項目計劃或者其他計劃開發者具有相當良好的系統保密性。
- 相對比較不耗資源的系統:
Linux只要一部P-III以上等級的計算機就可以安裝并且使用愉快啰!還不需要到P-4或AMD K8 等級的計算機呢!不過,如果你要架設的是屬于大型的主機(服務上百人以上的主機系統), 那么就需要比較好一點的機器了。不過,目前市面上任何一款個人計算機均可以達到這一個要求啰!
- 適合需要小核心程序的嵌入式系統:
由于Linux只要幾百K不到的程序代碼就可以完整的驅動整個計算機硬件并成為一個完整的操作系統, 因此相當適合于目前家電或者是小電子用品的操作系統呢!那就是當紅炸子雞『嵌入式』系統啦! Linux真的是很適合例如手機、數字相機、PDA、家電用品等等的微計算機操作系統呢! ^_^
- 整合度佳且多樣的圖形用戶接口(GUI):
自從1994年Linux 1.0后就加入的X Window系統,在眾多黑客的努力之下終于與Linux有高度整合, 且主要的繪圖卡公司(Intel, NVidia, ATI等)都有針對Linux推出最新的驅動程序, 因此Linux的GUI已經有長足的進步了!另外,Linux環境下的圖形接口不只有一種呢! 包括大家耳熟能詳的KDE(http://www.kde.org/)以及GNOME(http://www.gnome.org)都是很常見的!
反正Linux好處說不完啦!不過雖然Linux具有這樣多的好處,但是他先天上有一個足以致命的地方, 使他的普及率受到很大的限制,就是Linux需要使用『指令列』的終端機模式進行系統的管理! 雖然近年來有很多的圖形接口開發使用在Linux上面,但畢竟要熟悉Linux還是以指令列來使用是比較好的, 因此要接受Linux的玩家必須比較要能熟悉對計算機下指令的行為,而不是用鼠標點一點icon就行了! Linux 還可以改進的地方:
- 沒有特定的支持廠商:
因為在Linux上面的所有套件幾乎都是自由軟件,而每個自由軟件的開發者可能并不是公司團體, 而是非營利性質的團體。如此一來,在你Linux主機上面的軟件若發生問題,該如何是好? 好在由于目前Linux商業界的整合還不錯,目前在臺灣比較具名的Red Hat與SuSE 均有設立了服務點。你可以經由這個服務點來直接向他們購買/咨詢相關的軟硬件問題呢! 不過,如果你并非選擇有專門商業公司的Linux distributions時?怎么辦? 沒有專人到府服務呢~這點倒是還不需要太擔心, 因為拜網絡風行之賜,你要問的問題幾乎在網絡上都可以找到答案喔!看你有沒有用心去找就是了!
- 游戲的支持度不足:
在現代這個時候,敢說你們家的桌面計算機里面完全沒有游戲的小朋友應該不多了! 游戲軟件也是個應用程序,所以它與操作系統的關系就相當密切了。 可惜的是目前很多游戲開發商并沒有在Linux平臺上面開發大型游戲,這間接導致Linux無法進入一般家庭說。
- 專業軟件的支持度不足:
這是鳥哥到學校教書后才發現的一件事,目前很多專業繪圖軟件公司所推出的專業軟件并不支持Linux操作系統, 這讓同學很難在不同的平臺上面操作相同的軟件!唉!很傷腦筋~
- 教育訓練作的還不夠好:
如果能夠在國小就教導小朋友使用自由軟件,那么長大自然就會使用自由軟件了! 在臺灣目前政策方面還是相當的搖擺不定,希望未來能夠給自由軟件一些機會。
老實說,這些缺點絕大部分都不是Linux本身的問題,倒是一些政策面與商業方面的考慮,才是最大的困擾。 不過,Linux與其他的操作系統一樣,就是一個工具而已!希望大家能夠在快樂中學習到Linux的精髓啦!^_^
****
###關于授權
現在市面上有好多的軟件,有的是自由軟件,有的是專利軟件。有的專利軟件免費,有的自由軟件要錢~ 啊!好煩啊!怎么分辨這些東西?其實,鳥哥并不是律師,對于法律也不十分懂,不過, 還是有幾個授權模式可以來談一談~
****
###Open Source (開放源碼)
軟件以Open Source的方式釋出時,表示除了可執行的軟件本身外,一定伴隨著原始碼的釋出喔!通常Open Source的軟件有幾個好處:
1. 程序設計師通常會等到程序成熟之后才會釋出(免得被笑,^_^),所以通常程序在雛形的時候,就已經具有相當的優良體質;
2. Open Source的精神,相信當程序原設計人將程序原始碼釋出之后,其他的程序設計師接受這份原始碼之后, 由于需要將程序改成自己所需的樣式,所以會經由本身的所學來加以改良,并從中加以改良與除蟲, 所以程序的debug功能會比傳統的close source來的快!
3. 由于程序是伴隨原始碼的,因此,系統將會不易存在鮮為人知的木馬程序或一些安全漏洞, 相對而言,會比較更加的安全!
4.
Open source的代表授權為GNU的GPL授權及BSD等等,底下列出知名的Open Source授權網頁:
- GNU General Public License:
http://www.gnu.org/licenses/licenses.html#GPL
目前有version 2, version 3兩種版本,Linux使用的是version 2這一版。 鳥哥也有收集一份GPL version 2 的中文化條文,您可以參考:http://vbird.dic.ksu.edu.tw/linux_basic/1010appendix_A.php
- Berkeley Software Distribution (BSD):
http://en.wikipedia.org/wiki/BSD_license
使用BSD source code最常接觸到的就是BSD授權模式了!這個授權模式其實與GPL很類似, 而其精神也與Open Source相呼應呢!
- Apache License, Version 2.0:
http://www.apache.org/licenses/LICENSE-2.0
Apache是一種網頁服務器軟件,這個軟件的發布方式也是使用Open source的。只是在apache的授權中規定, 如果想要重新發布此軟件時(如果你有修改過該軟件),軟件的名稱依舊需要定名為Apache才行!
- Close Source
相對于Open Source的軟件會釋出原始碼,Close source的程序則僅推出可執行的二進制程序(binary program)而已。 這種軟件的優點是有專人維護,你不需要去更動他;缺點則是靈活度大打折扣,用戶無法變更該程序成為自己想要的樣式! 此外,若有木馬程序或者安全漏洞,將會花上相當長的一段時間來除錯!這也是所謂專利軟件(copyright)常見的軟件出售方式。
雖然專利軟件常常代表就是需要花錢去購買,不過有些專利軟件還是可以免費提供大眾使用的! 免費的專利軟件代表的授權模式有:
- - Freeware:
http://en.wikipedia.org/wiki/Freeware
不同于Free software,Freeware為『免費軟件』而非『自由軟件!』雖然它是免費的軟件,但是不見得要公布其原始碼, 端看釋出者的意見啰!這個東西與Open Source畢竟是不太相同的東西喔!此外,目前很多標榜免費軟件的程序很多都有小問題! 例如假藉免費軟件的名義,實施用戶數據竊取的目的! 所以『來路不明的軟件請勿安裝!』
- - Shareware:
http://en.wikipedia.org/wiki/Shareware
共享件這個名詞就有趣了!與免費軟件有點類似的是,Shareware在使用初期,它也是免費的,但是, 到了所謂的『試用期限』之后,你就必須要選擇『付費后繼續使用』或者『將它移除』的宿命~ 通常,這些共享件都會自行撰寫失效程序,讓你在試用期限之后就無法使用該軟件。
- 第一部份 Linux 的規劃與安裝
- 第零章 計算機概論
- 1. 計算機:輔助人腦的好工具
- 2. 個人計算機架構與周邊設備
- 3. 數據表示方式
- 4. 軟件程序運作
- 5. 重點回顧、本章習題、參考數據與延伸閱讀
- 第一章 Linux是什么
- 1. Linux是什么
- 2. Torvalds的Linux發展
- 3. Linux的特色
- 4. 重點回顧、本章習題、參考數據與延伸閱讀
- 第二章 Linux如何學習
- 1. Linux當前的應用角色
- 2. 鳥哥的Linux苦難經驗全都錄
- 3. 有心朝Linux作業系統學習者的學習態度
- 4. 鳥哥的建議(重點在solution的學習)
- 5. 重點回顧、本章習題、參考數據與延伸閱讀
- 第三章 主機規劃與磁盤分區
- 1. Linux與硬件的搭配
- 2. 磁盤分區
- 3. 安裝Linux前的規劃
- 4. 重點回顧、本章習題、參考數據與延伸閱讀
- 第四章 安裝CentOS 5.x 與多重引導技巧
- 1. 本練習機的規劃--尤其是分割參數
- 2. 開始安裝CentOS 5
- 3. 安裝后的首次設定
- 4. 多重開機安裝流程與技巧
- 5. 關於大硬盤導致無法開機的問題
- 6. 重點回顧、本章習題、參考數據與延伸閱讀
- 第五章 首次登陸與 在線求助 man page
- 1. 首次登陸系統
- 2. 文本模式下命令的下達
- 3. Linux系統的在線求助man page與info page
- 4. 超簡單文書編輯器: nano
- 5. 正確的關機方法:sync,shutdown
- 6. 啟動過程的問題排解
- 7. 重點回顧、本章習題、參考數據與延伸閱讀
- 第二部分 Linux 文件、目錄與磁盤格式
- 第六章 Linux文件權限與 目錄配置
- 1. 使用者與群組
- 2. Linux文件權限概念
- 3. Linux目錄配置
- 4. 重點回顧、本章習題、參考數據與延伸閱讀
- 第七章 Linux文件與目錄管理
- 1. 目錄與路徑
- 2. 文件與目錄管理
- 3. 文件內容查閱
- 4. 文件與目錄的默認權限與隱藏權限
- 5. 命令與文件的搜尋:
- 6. 極重要!權限與命令間的關系:
- 7. 重點回顧、本章習題、參考數據與延伸閱讀
- 第八章 Linux 磁盤與 文件系統管理
- 1. 認識 EXT2 文件系統
- 2. 文件系統的簡單操作
- 3. 磁盤的分割、格式化、檢驗與掛載
- 4. 配置啟動掛載:
- 5. 內存置換空間(swap)之建置:
- 6. 文件系統的特殊觀察與操作
- 7. 重點回顧、本章習題、參考數據與延伸閱讀
- 第九章 文件的壓縮與打包
- 1. 壓縮文件的用途與技術
- 2. Linux 系統常見的壓縮命令
- 3. 打包命令:
- 4. 完整備份工具:dump
- 5. 光盤寫入工具
- 6. 其他常見的壓縮與備份工具
- 7. 重點回顧、本章習題、參考數據與延伸閱讀
- 第三部分:學習 Shell 與 Shell scripts
- 第十章 vim程序編輯器
- 1. 為何要學 vim
- 2. vi 的使用
- 3. vim 的額外功能
- 4. 其他 vim 使用注意事項
- 5. 重點回顧、本章習題、參考數據與延伸閱讀
- 第十一章 認識與學習 BASH
- 1. 認識 BASH 這個 Shell
- 2. Shell 的變量功能
- 3. 命令別名與歷史命令
- 4. Bash shell 的操作環境
- 5. 數據流重導向 (Redirection)
- 6. 管線命令 (pipe)
- 7. 重點回顧、本章習題、參考數據與延伸閱讀
- 第十二章 正規表示法與 文件格式化處理
- 1. 前言: 什么是正規表示法
- 2. 基礎正規表示法
- 3. 延伸正規表示法
- 4. 文件的格式化與相關處理
- 5. 重點回顧、本章習題、參考數據與延伸閱讀
- 第十三章 學習 shell scripts
- 1. 什么是 Shell Script
- 2. 簡單的 shell script 練習
- 3. 善用判斷式
- 4. 條件判斷式
- 5. 回圈 (loop)
- 6. shell script 的追蹤與 debug
- 7. 重點回顧、本章習題、參考數據與延伸閱讀
- 第四部分:Linux 使用者管理
- 第十四章 Linux 賬號管理與 ACL 權限控制
- 1. Linux 的賬號與群組
- 2. 賬號管理
- 3. 主機的細部權限規劃:ACL 的使用
- 4. 使用者身份切換
- 5. 使用者的特殊 shell 與 PAM 模塊
- 6. Linux 主機上的用戶信息傳遞
- 7. 手動新增使用者
- 8. 重點回顧、本章習題、參考數據與延伸閱讀
- 第十五章 磁盤配額(Quota)與 進階文件系統管理
- 1. 磁碟配額 (Quota) 的應用與實作
- 2. 軟件磁盤陣列 (Software RAID)
- 3. 邏輯卷軸管理員 (Logical Volume Manager)
- 4. 重點回顧、本章習題、參考數據與延伸閱讀
- 第十六章 例行性工作排程 (crontab)
- 1. 什么是例行性工作排程
- 2. 僅運行一次的工作排程
- 3. 循環運行的例行性工作排程
- 4. 可喚醒停機期間的工作任務
- 5. 重點回顧、本章習題、參考數據與延伸閱讀
- 第十七章 程序管理與 SELinux 初探
- 1. 什么是程序 (Process)
- 2. 工作管理 (job control)
- 3. 程序管理
- 4. 特殊文件與程序
- 5. SELinux 初探
- 6. 重點回顧、本章習題、參考數據與延伸閱讀
- 第五部分:Linux 系統管理員
- 第十八章 認識系統服務 (daemon)
- 1. 什么是 daemon 與服務 (service)
- 2. 解析 super daemon 的配置文件
- 3. 服務的防火墻管理 xinetd, TCP Wrappers
- 4. 系統開啟的服務
- 5. 重點回顧、本章習題、參考數據與延伸閱讀
- 第十九章 認識與分析登錄檔
- 1. 什么是登錄文件
- 2. syslogd :記錄登錄文件的服務
- 3. 登錄文件的輪替 (logrotate)
- 4. 分析登錄文件
- 5. 本章習題練習、針對本文的建議
- 第二十章 啟動流程、模塊管理 與 loader
- 1. Linux 的啟動流程分析
- 2. 核心與核心模塊
- 3. Boot loader: Grub
- 4. 啟動過程的問題解決
- 5. 重點回顧、本章習題、參考數據與延伸閱讀
- 第二十一章 系統配置工具(網絡與 打印機)與硬件偵測
- 1. CentOS 系統配置工具: setup
- 2. 利用 CUPS 配置 Linux 打印機
- 3. 硬件數據收集與驅動,及 lm_sensors
- 4. 重點回顧、本章習題、參考數據與延伸閱讀
- 第二十二章 軟件安裝: 原始碼與 Tarball
- 1. 開放源碼的軟件安裝與升級簡介
- 2. 使用傳統程序語言進行編譯的簡單范例
- 3. 用 make 進行巨集編譯
- 4. Tarball 的管理與建議
- 5. 函式庫管理
- 6. 檢驗軟件的正確性
- 7. 重點回顧、本章習題、參考數據與延伸閱讀
- 第二十三章 軟件安裝:RPM, SRPM 與 YUM 功能
- 1. 軟件管理員簡介
- 2. RPM 軟件管理程序: rpm
- 3. SRPM 的使用: rpmbuild
- 4. YUM 線上升級機制
- 5. 管理的抉擇:RPM 還是 Tarball
- 6. 重點回顧、本章習題、參考數據與延伸閱讀
- 第二十四章 X Window 配置介紹
- 1. 什么是 X Window System
- 2. X Server 配置檔解析與配置
- 3. 顯卡驅動程序安裝范例
- 4. 重點回顧、本章習題、參考數據與延伸閱讀
- 第二十五章 Linux 備份策略
- 1. 備份要點
- 2. 備份的種類、頻率與工具的選擇
- 3. VBird 的備份策略與 scripts
- 4. 災難復原的考量
- 5. 重點回顧、本章習題、參考數據與延伸閱讀
- 第二十六章 核心編譯
- 1. 編譯前的任務:認識核心與取得核心原始碼
- 2. 核心編譯的前處理與核心功能選擇
- 3. 核心的編譯與安裝
- 4. 額外(單一)核心模塊編譯
- 5. 重點回顧、本章習題、參考數據與延伸閱讀