天天看點

鳥哥的Linux私房菜-學習筆記-第一章【Linux】

重點回顧

計算機主要以二進制作為機關,而目前常用的磁盤容量機關為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) + 可完全安裝的程式』所制成的一套完整的系統。

  • 你在你的主機上面安裝了一張網絡卡,但是開機之後,系統卻無法使用,你确定網絡卡是好的,那麼可能的問題出在哪裡?該如何解決?因為所有的硬體都沒有問題,是以,可能出問題的地方在于系統的核心(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. 托瓦茲強調務實,虛拟團隊的自然

繼續閱讀