一.作業系統
1.一個比較『完整的作業系統』應該要包含 兩個東西,一個是『核心與其提供的接口工具』、 一 個是『利用核心提供的接口工具所開發出來的軟體』。
2.一般來說,Kernel 為了達成使用者所需要的正确運算結果,他必須要管理的事項有:
(1) 系統呼叫接口(System call interface) : 為了友善程式開發者可以輕易的透過與 kernel 的溝 通,将硬體的資源進一步的利用, 于是需要有這個簡易的接口來友善程式開發者。
(2) 行程管理(Process control) : 一部計算機可能同時間有很 多的工作跑到 CPU 等待運算處理, Kernel 這個時候必須要能夠控制這些工作,讓 CPU 的資源 作有效的配置設定才行!
(3) 記憶體管理(Memory management) : 控制整個系統的記憶體管理,若記憶體不足, Kernel 最好還能夠 提供虛拟記憶體的功能
(4)檔案系統管理(File system management) : 檔案系統的管理,例如資料的輸入輸出 (I/O) 等等 的工作! 還有不同檔案格式的支援等等,如果你的核心不認識某個檔案系統, 那麼您将無 法使用該檔案格式的檔案!例如: Windows 98 就不認識 NTFS 檔案格式的硬碟;
(5)裝置的驅動(Device drivers) :硬體的管理是 Kernel 的主要工作之一, 當然,裝置的驅動程式就是核心需要做的事情! 好在目前都有所謂的『可加載子產品』功能, 可以将驅動程式編輯成子產品, 就不需要重新的編譯核心。
注:(1)所有硬體的資源都是 kernel 來管理的!
(2)核心是控制整個硬體支援的咚咚,也是一個作業系統的最底層, 然而要讓整個 作業系統更完備的話,那還需要含有相當豐富的核心提供的工具, 以及核心相關的應用軟體來支援。
3.Linux 的優缺點
(1)穩定的系統:
Linux 本來就是基于 Unix 概念而發展出來的作業系統,是以, Linux 具有與 Unix 系統相似的的程式接口跟操作方式,當然也繼承了 Unix 穩定并且有效率的特點。常聽到安裝 Linux 的主機 連續運做一年以上而不曾當機、不必關機是稀松平常的事;
(2)免費或少許費用:
由于 Linux 是基于 GPL 的基礎下的産物,是以任何人皆可以自 由取得 Linux , 至于一些『安 裝套件』的發行者, 他們發行的 安裝CD光牒也僅需要些許費用即可獲得!不同于 Unix 需要負擔龐 大的版權費用,當然也不同于微軟需要一而再、 再而三的更新你 的系統,并且繳納大量費用啰!
(3)安全性、漏洞的快速修補:
(4) 多任務、多使用者:
與 Windows 系統不同的, Linux 主機上可以同時允許多人上線來工作, 并且資源的配置設定較為公 平,比起 Windows 的單人假多任務系統要穩定的多!可以在一部 Linux 主機上面規劃出不同等級的使用者,而且每個 使用者登入系統時的工作環境都可以不相同, 此外,還可以允許不同的使用者在同一個時間登入 主機,以同時使用主機的資源。
(5)使用者與群組的規劃:
在 Linux 的機器中,檔案的屬性可以分為『可讀、可寫、可執行』 等參數來定義一個檔案的适 用性,此外,這些屬性還可以分為三個種類, 分别是『檔案擁有者、檔案所屬群組、其它非擁有者與群組者』。 這對于項目計劃或者其它計劃開發者具有相當良好的系統保密性。
(6)相對比較不耗資源的系統:
Linux 隻要一部 p-100 以上等級的計算機就可以安裝并且使用愉快!不過,如果要架設的是屬于大型的主機(服務上百人以上的主機系統), 那麼就需要比較好一點的機器。不過,目前市面上任何一款個人計算機均可以達到這一個要求!
(7)适合需要小核心程式的嵌入式系統:
由于 Linux 隻要幾百 K 不到的程式代碼就可以完成一個完整的作業系統, 是以相當适合于目前 家電或者是小電子用品的作業系統—『嵌入式』系統. Linux 真的是很适 合例如手機、數字相機、PDA、家電用品等等的微電腦作業系統!
二.伺服器、工作站、終端機
1.伺服器 ( Server ):
提供 Internet 一種以上的網絡服務的主機,例如 yahoo 提供的是 WWW 的 服務,那麼 yahoo 就可以稱之為 伺服器 了!伺服器是有規模大小之分的!目前一 部 Linux 上面就可以架設多個伺服器軟體!例如 WWW 伺服器的 Apache 軟體、 FTP 伺服器的 Wu-ftp 軟體等等的;
2.工作站 ( Workstation ) :
基本上, 工作站可以視為僅提供一群特定人士,作為數值分析、科 學用途的機器。工作站與伺服器的差别,就在于有沒有提供 internet 上面的服務而已,例如,如果将 Sun 上面的 mail server 開啟之後, 那麼這部機 器就可以稱之為伺服器了!同時也是我們的工作站喔! 當然,更廣義的定義是,隻要是沒有對 Internet 上面提供網絡服務的,那就是工作站了!這當然也就包含所謂的終端機!
3.終端機 ( Terminal ) :
簡單的說,就是 end-user ( 就是你 ) 前面的那部計算機!更狹義的來說,『終端機』本身應該是不具備任何可 以作業的軟體的, 在終端機上面一定要連上 Server 之後,才能進行各項作業! 那才是最狹義 的終端機!
注意:
(1)計算機主要以二進制作為機關,而目前常用的磁盤容量機關為 bytes,其機關換算為 1Byte = 8bits, 其它的以 1024 為其倍數,如 1GByte=1024MBytes 等等。
三、練習題
1.一個完整的作業系統至少要能夠完整的控制整個硬體,請問,作業系統應該要控制硬體的哪些單元?
(1)input/output control, (2)device control, (3)process management, (4)file management.
2.核心的功能在于管控整個系統的硬體,這包括了 CPU 運算單元的管理,輸入/輸出的管理,記憶體 的管理等等。 那麼請問一個較為完整的作業系統,應該包含哪些部分?
Kernel + Kernel Tools + Applications
3.你在你的主機上面安裝了一張網絡卡,但是開機之後,系統卻無法使用,您确定網絡卡是好的, 那 麼可能的問題出在哪裡?該如何解決?
因為所有的硬體都沒有問題,是以,可能出問題的地方在于系統的核心(kernel) 不支援這張網絡卡
解決的方法,到網絡卡的開發商網站,下載下傳支援您主機作業系統的驅動程式, 安裝網絡卡驅 動程式後,就可以使用了。
4.我在一部主機上面安裝 Windows 作業系統時,并且安裝了顯示卡的驅動程式,他是沒有問題的。 但是安裝 Linux 時,卻無法完整的顯示整個 X Window 。請問,我可不可以将 Windows 上面的 顯 示卡驅動程式拿來安裝在 Linux 上?
不行!因為核心不同,針對硬體所寫的驅動程式也會不相同, 編譯器也不同,當然,驅動程式也 無法在兩個作業系統間相容。 這也是為何開發商在他們的網站上面,都會同時提供許多不同操作 系統的驅動程式之故
5.我在 Windows 上面玩的遊戲,可不可以拿到 Linux 去玩?
當然不行!跟上一題相似的,因為遊戲也是一個應用程式 (application), 他必須要使用到核心 所提供的工具來開發他的遊戲, 是以這個遊戲是不可在不同的平台間運作的。除非這個遊戲已經 進行了移植。
6.什麼是軟體的移植?
程式是由程式代碼(通成為 ASCII 格式)經過編譯器編譯成為 binary file 之後, 才能夠在該操 作系統上面執行。是以,您可以将您的程式的程式代碼修改成可以适應 其它作業系統的環境,并 且加以編譯,使程式可以在其它平台上運作, 這個修改的動作即為移植
7.簡單的說明一下什麼是 GNU 的 GPL ?
1.任何個人或公司均可釋出自由軟體 ( free software );
2.任何釋出自由軟體的個人或公司,均可由自己的服務來收取适當的費用;
3.該軟體的原始碼 ( Source Code ) 需要随軟體附上,并且是可公開發表的; 4. 任何人均可透過任何正常管道取得此一自由軟體,且均可取得此一授權模式。
8.何謂多人 ( Multi-user ) 多任務 ( Multitask )?
Multiuser 指的是 Linux 允許多人同時連上主機之外, 每個使用者皆有其各人的使用環境,并 且可以同時使用系統的資源
9.有個朋友問我說『 Linux 是什麼?』我該如何回答比較好?
Linux 就是一個作業系統,或者說, Linux 是作業系統最底層的核心。 這個核心可 以管理整個計算機硬體,讓計算機硬體可以完整的運作起來,并等待使用者輸入指令。 最早 Linux 是由 Torvalds 在 1991 年寫出來的,後來他承接了 Unix 的良好傳統:穩定性高、 多人多 任務的環境設計優良、要求配備較低等優點
10.Linux 的發展主要分為哪兩種核心版本?
主要分為奇數的發展中版本(develop),如 2.5 ,及偶數的穩定版本,如 2.6 。