###重點回顧
- 計算機主要以二進制作為單位,而目前常用的磁盤容量單位為bytes,其單位換算為1Byte = 8bits, 其他的以1024為其倍數,如 1GByte=1024MBytes等等。
- 操作系統(Operation System)主要在管理與驅動硬件,因此必須要能夠管理內存、管理裝置、 負責行程管理以及系統呼叫等等。因此,只要能夠讓硬件準備妥當(Ready)的情況, 就是一個陽春的操作系統了。
- 最陽春的操作系統僅在驅動與管理硬件,而要使用硬件時,就得需要透過應用軟件或者是殼程序(shell) 的功能,來呼叫操作系統操縱硬件工作。因此,目前稱為操作系統的, - 除了上述功能外,通常已經包含了日常工作所需要的應用軟件在內了。
- Unix的前身是由貝爾實驗室(Bell lab.)的Ken Thompson利用匯編語言寫成的, - 后來在1971-1973年間由Dennis Ritchie以C程序語言進行改寫,才稱為Unix。
- 1977年由Bill Joy釋出BSD (Berkeley Software Distribution),這些稱為Unix-like的操作系統。
- 1984年由Andrew Tanenbaum制作出Minix操作系統,該系統可以提供原始碼以及軟件;
- 1984年由Richard Stallman提倡GNU計劃,倡導自由軟件(Free software), - 強調其軟件可以『自由的取得、復制、修改與再發行』,并規范出GPL授權模式, 任何GPL(General Public License)軟件均不可單純僅販賣其軟件,也不可修改軟件授權。
- 1991年由芬蘭人Linus Torvalds開發出Linux操作系統。簡而言之,Linux成功的地方主要在于: Minix(Unix), GNU, Internet, POSIX 及虛擬團隊的產生。
- Linux本身就是個最陽春的操作系統,其開發網站設立在http://www.kernel.org,我們亦稱Linux操作系統最底層的數據為『核心(Kernel)』。
- 目前Linux核心的發展分為兩種版本,分別是穩定版本的偶數版,如2.6.X,適合于商業與家用環境使用; 一種是發展中版本的奇數版如2.5.X 版,適合開發特殊功能的環境。
- Linux distributions的組成含有:『Linux Kernel + Free Software + Documentations(Tools) + 可完全安裝的程序』所制成的一套完整的系統。
****
###本章習題
(要看答案請將鼠標移動到『答:』底下的空白處,按下左鍵圈選空白處即可察看)
實作題部分:
- 請依據本章內容的說明,下載 Fedora 最新版本的 Live CD ,并將該 Live CD 刻錄成為光盤 (或 DVD) 后, 調整你的主機 BIOS 成為使用光驅開機,在開機時放入剛剛刻錄的 Live CD ,使用該光驅開機。在開機后你應該能夠進入系統。 請進入該系統,嘗試打開終端機、瀏覽器等,并嘗試操作一下該系統。由于該系統并不會影響到你的硬盤數據, 請盡量玩玩!
- 承上題,打開終端機并且輸入『 uname -r 』這個指令,出現的核心版本為何?是穩定還是發展中版本?
- 請上網找出目前 Linux 核心的最新穩定版與發展中版本的版本號碼,請注明查詢的日期與版本的對應。
- 請上網找出 Linux 的吉祥物企鵝的名字,以及最原始的圖檔畫面。(提示:請前往 http://www.linux.org 查閱)
簡答題部分:
- 你在你的主機上面安裝了一張網絡卡,但是開機之后,系統卻無法使用,你確定網絡卡是好的,那么可能的問題出在哪里?該如何解決?
>因為所有的硬件都沒有問題,所以,可能出問題的地方在于系統的核心(kernel) 不支持這張網絡卡。解決的方法,(1)到網絡卡的開發商網站,(2)下載支持你主機操作系統的驅動程序, (3)安裝網卡驅動程序后,就可以使用了。
- 我在一部主機上面安裝Windows操作系統時,并且安裝了顯示適配器的驅動程序,他是沒有問題的。但是安裝Linux時,卻無法完整的顯示整個X >Window。請問,我可不可以將Windows上面的顯示適配器驅動程序拿來安裝在Linux上?
不行!因為核心不同,針對硬件所寫的驅動程序也會不相同,編譯程序也不同,當然,驅動程序也無法在兩個操作系統間兼容。 這也是為何開發商在他們的網站上面,都會同時提供許多不同操作系統的驅動程序之故。
- 一個操作系統至少要能夠完整的控制整個硬件,請問,操作系統應該要控制硬件的哪些單元?
>根據硬件的運作,以及數據在主機上面的運算情況與寫入/讀取情況,我們知道至少要能夠控制: (1)input/output control, (2)device control, (3)process management, (4)file management. 等等!
- 一個GBytes的硬盤空間,等于幾個KBytes?
>1GBytes = 1024 MBytes * 1024 KBytes/MBytes = 1048576 KBytes
- 我在Windows上面玩的游戲,可不可以拿到Linux去玩?
當然不行!因為游戲也是一個應用程序 (application),他必須要使用到核心所提供的工具來開發他的游戲, 所以這個游戲是不可在不同的平臺間運作的。除非這個游戲已經進行了移植。
- Linux本身僅是一個核心與相關的核心工具而已,不過,他已經可以驅動所有的硬件, 所以,可以算是一個很陽春的操作系統了。經過其他應用程序的開發之后,被整合成為Linux >distribitions。請問眾多的distributions之間,有何異同?
相同:(1)同樣使用 http://www.kernel.org 所釋出的核心; (2)支持同樣的標準,如 FHS、LSB 等; (3)使用幾乎相同的自由軟件 (例如 GNU 里面的 gcc/glibc/vi/apache/bind/sendmail... ); (4)幾乎相同的操作接口 (例如均使用 bash/KDE/GNOME 等等)。
不同:使用的 kernel 與各軟件的版本可能會不同;各開發商加入的應用工具不同,使用的套件管理模式不同(dpkg 與 RPM)
- Unix 是誰寫出來的? GNU 計劃是誰發起的?
>Unix 是 Ken Thompson 寫的,1973 年再由 Dennis Ritchie 以 C 語言改寫成功。 至于 GNU 與 FSF 則是 Richard Stallman 發起的。
- GNU 的全名為何?他主要由那個基金會支持?
>GNU 是 GNU is Not Unix 的簡寫,是個無窮循環! 另外,這個計劃是由自由軟件基金會 (Free Software Foundation, FSF) 所支持的! 兩者都是由 Stallman 先生所發起的!
- 何謂多人 ( 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 社群。
- 什么是 POSIX ?為何說 Linux 使用 POSIX 對于發展有很好的影響?
>POSIX 是一種標準規范,主要針對在 Unix 操作系統上面跑的程序來進行規范。 若你的操作系統符合 POSIX ,則符合 POSIX 的程序就可以在你的操作系統上面運作。 Linux 由于支持 POSIX ,因此很多 Unix 上的程序可以直接在 Linux 上運作, 因此程序的移植相當簡易!也讓大家容易轉換平臺,提升 Linux 的使用率。
- Linux 的發展主要分為哪兩種核心版本?
>主要分為奇數的發展中版本(develop),如 2.5 ,及偶數的穩定版本,如 2.6 。
- 簡單說明 Linux 成功的因素?
1. - 藉由 Minix 操作系統開發的 Unix like ,沒有版權的糾紛;
2. - 藉助于 GNU 計劃所提供的各項工具軟件, gcc/bash 等;
3. - 藉由 Internet 廣為流傳;
4. - 藉由支持 POSIX 標準,讓核心能夠適合所有軟件的開發;
5. - 托瓦茲強調務實,虛擬團隊的自然形成!
- 第一部份 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. 重點回顧、本章習題、參考數據與延伸閱讀