在目前的社會(huì)中,沒(méi)有電腦真的是很奇怪的一件事情!因?yàn)槲覀儽仨氁褂秒娔X幫我們進(jìn)行很多工作。
包括在辦公室中使用電腦來(lái)進(jìn)行各項(xiàng)作業(yè)、在資訊領(lǐng)域方面利用電腦來(lái)進(jìn)行伺服器的架設(shè)、
在休閒時(shí)利用電腦來(lái)上網(wǎng)瀏覽或聊天、在無(wú)聊時(shí)利用電腦來(lái)進(jìn)行電腦遊戲軟體的運(yùn)作等等。
但是妳知道目前電腦規(guī)格有哪些?為什麼我們使用的電腦通常被稱為『個(gè)人電腦』而不是啥特別的名詞?
為什麼電腦一定需要軟體才能夠使用?
為什麼我的遊戲無(wú)法在早期的 Windows 98 上面運(yùn)作?
這個(gè)我們都得要瞭解一下比較好。
電腦的功能
什麼是電腦呢?基本上,一部機(jī)器只要能夠『
接受指令的輸入,經(jīng)過(guò)邏輯判斷或者是算數(shù)運(yùn)算後,
能夠?qū)a(chǎn)生的資訊輸出到螢?zāi)换蛴”頇C(jī)等介面上的機(jī)器』我們就可以稱他為電腦了。
所以個(gè)人電腦、小型計(jì)算器、大型伺服器等等,都可以稱為電腦的。
那麼換句話說(shuō),我們透過(guò)鍵盤(pán)或滑鼠輸入指令,讓電腦主機(jī)進(jìn)行運(yùn)算後,將我們所需要的資料輸出到螢?zāi)簧希?
這就是電腦的運(yùn)作過(guò)程。
圖一、電腦組成示意圖
為了要將上圖中的『邏輯判斷、算數(shù)運(yùn)算』所在處的主機(jī)設(shè)計(jì)出來(lái),這部主機(jī)還得要負(fù)責(zé)連結(jié)輸入設(shè)備以及輸出設(shè)備,
並且還要能夠執(zhí)行算數(shù)處理以及邏輯方面的判斷,因此主機(jī)就得要有幾個(gè)組成的部分了,這包括:
中央處理器、主記憶體、系統(tǒng)匯流排(可以想成主機(jī)板上面的晶片組),以及各種輸入輸出元件
(I/O 裝置)。不過(guò),關(guān)鍵元素在於中央處理器,也就是俗稱的 CPU 啦!
為什麼說(shuō) CPU 最重要呢?就跟我們生活的時(shí)候任何事情都要透過(guò)腦袋來(lái)思考後才能產(chǎn)生行動(dòng)一樣,
事實(shí)上
CPU 裡面也是含有多個(gè)指令集,這些指令集可以想成腦袋的思考方式。
而為了配合這個(gè) CPU ,所有在主機(jī)上所設(shè)計(jì)出來(lái)的硬體當(dāng)然也要符合相關(guān)的規(guī)範(fàn)才可以!
就如古話說(shuō)的:『戲法人人會(huì)變,巧妙各有不同』一樣,既然電腦主要的功能就是在接受訊號(hào)的輸入,
經(jīng)過(guò)一些程序後將他轉(zhuǎn)變?yōu)檫m當(dāng)?shù)馁Y訊並且輸出而已,那麼當(dāng)不同的硬體開(kāi)發(fā)商在進(jìn)行研究時(shí),當(dāng)然可能產(chǎn)生不同的硬體規(guī)格啦!
但由於市場(chǎng)機(jī)制以及相關(guān)產(chǎn)品開(kāi)發(fā)商的支援,現(xiàn)今電腦硬體的架構(gòu)依 CPU 的類別主要區(qū)分為兩大類,分別如下所述:
- Complex Instruction Set Computer (CISC):複雜指令系統(tǒng)計(jì)算器
CPU 內(nèi)的指令集較為複雜,所以需要透過(guò)一個(gè)額外的解譯器來(lái)進(jìn)行指令的解析。
目前最常見(jiàn)的就是個(gè)人電腦的 x86 與 x86-64 (64位元) 架構(gòu)啦!
這種架構(gòu)是目前最常見(jiàn)的電腦架構(gòu)啦!
- Reduced Instruction Set Computer (RISC):精簡(jiǎn)指令系統(tǒng)計(jì)算器
由於 CISC 指令架構(gòu)較為複雜,為了簡(jiǎn)化指令集以加速程式的運(yùn)作,所以就有 RISC 架構(gòu)的產(chǎn)生。
這種架構(gòu)較為先進(jìn),常用於大型伺服器等級(jí)的硬體規(guī)格中。
目前使用這種架構(gòu) CPU 產(chǎn)品包括有:Sony 的 Play Station (PS)、IBM Power 架構(gòu)的 Xbox 360, 早期蘋(píng)果公司的 Macintosh、
昇陽(yáng)(Sun)電腦的 SPARC 架構(gòu)等等。(註:Sony, IBM, 蘋(píng)果公司以及昇陽(yáng)都是企業(yè)的公司名稱)
Tips: Sony 的遊戲機(jī) (Play Station) 使用的 CPU 名稱為 Cell;XBox 是微軟的遊戲機(jī),這個(gè)遊戲機(jī)裡面使用的 CPU 則是
IBM 發(fā)展的名為 Power 的 CPU,這款 CPU 也用在早期的蘋(píng)果公司的電腦中;SPARC 則是昇陽(yáng)公司自產(chǎn)的 CPU 型號(hào)。
這幾款 CPU 使用的架構(gòu)都是屬於 RISC 的架構(gòu)喔!
| |
如果對(duì)於 CPU 架構(gòu)有興趣的話,文末的
參考資料可以閱讀一番。
雖然 RISC 的架構(gòu)較為先進(jìn),不過(guò)由於個(gè)人電腦的普及性,以及拜 Intel 與 AMD 這兩家主要 x86 CPU
製造公司開(kāi)發(fā)出更精良且高速的 x86 CPU 之賜,目前您可以使用相對(duì)便宜很多的金額就買到效能很棒的 x86
個(gè)人電腦了。不但個(gè)人電腦是 x86 架構(gòu),現(xiàn)在就連很多伺服器以及企業(yè)關(guān)鍵應(yīng)用的主機(jī)也都使用 x86 的架構(gòu)。
因此底下我們將以 x86 架構(gòu)來(lái)說(shuō)明電腦硬體喔!(
註:Intel 及 AMD
是兩家製造個(gè)人電腦 CPU 的公司名稱)
Tips: 寫(xiě)這一段話的意義是,希望讀者能知道 CPU 的架構(gòu)是很多樣的!
製作 CPU 的公司並不是只有 Intel 或 AMD 而已。此外,很多的電腦、遊戲機(jī)都是使用 CPU 的架構(gòu),
所以,瞭解到個(gè)人電腦的基本架構(gòu),有助於您瞭解其他設(shè)備的主要組成呢! ^_^
| |
個(gè)人電腦所需硬體
如同上一小節(jié)所說(shuō)的,電腦主機(jī)主要包括了 CPU、記憶體、系統(tǒng)匯流排以及各項(xiàng) I/O 裝置。
那麼這些硬體主要的功能是什麼呢?我們就以人體來(lái)說(shuō)明好了。
- CPU:
就像是腦袋瓜子,主要負(fù)責(zé)邏輯思考與算數(shù)運(yùn)算。不過(guò)要注意的是,腦袋瓜子總得要接受外來(lái)的刺激才會(huì)思考!
所以囉,我們也要給予 CPU 適當(dāng)?shù)闹噶钺幔艜?huì)開(kāi)始動(dòng)作。這也是我們需要撰寫(xiě)程式的原因。
- 主記憶體:
就像我們的記憶力一樣!當(dāng)記憶能力越高,可以容納的外界刺激與儲(chǔ)存過(guò)去記憶的能力就越好!
所以當(dāng)有人問(wèn)到我們過(guò)去的記憶時(shí),不需要拿照片而在腦海裡面就立刻有影像出來(lái)啦!所以說(shuō),
電腦主機(jī)的主記憶體通常是越大越好! ^_^
- 輸入/輸出 (I/O) 裝置:
電腦主機(jī)的輸入/輸出裝置有非常的多,常見(jiàn)的例如硬碟、光碟、印表機(jī)、網(wǎng)路設(shè)備、視訊設(shè)備等等都算。
以人體來(lái)說(shuō),妳可以將硬碟想像成為一本筆記,妳可以在裡面寫(xiě)感想(寫(xiě)入硬碟)或者是讀讀裡面文字(讀取硬碟),
如果覺(jué)得某些文字不滿意,還可以使用修正液將他塗掉(刪除資料)。
- 系統(tǒng)匯流排:
系統(tǒng)匯流排是連接各項(xiàng)裝置的介面,妳可以將主機(jī)板看成是系統(tǒng)匯流排啦!
主機(jī)板是很重要的,因?yàn)樗麑⑸鲜龅母黜?xiàng)元件給他整合在一起,所以沒(méi)有主機(jī)板,
其他的元件就沒(méi)有作用了。妳可以將系統(tǒng)匯流排想成是人體的神經(jīng)系統(tǒng),
神經(jīng)系統(tǒng)可以連線身體的各個(gè)部位以達(dá)到讓人體活動(dòng)的實(shí)際目標(biāo)!
各項(xiàng)裝置的結(jié)合可以下圖來(lái)示意一下:
圖二、各元件的組成情況
(上述圖示主要取自 tom's 硬體指南,各元件圖片分屬個(gè)別公司所有)
就像雖然每個(gè)人都有腦袋、神經(jīng)系統(tǒng)、記憶力與各項(xiàng)外在書(shū)籍,但是每個(gè)人的腦袋、神經(jīng)系統(tǒng)傳導(dǎo)的能力以及記憶力都不同一樣,
由於製造商發(fā)展的能力不一樣,所造出來(lái)的各項(xiàng)電腦元件能力也不相同。
所以您在選購(gòu) CPU、主機(jī)板、記憶體以及各項(xiàng) I/O 裝置時(shí),務(wù)必詢問(wèn)專業(yè)人士,
否則有可能買到無(wú)法使用在您主機(jī)上面的硬體喔!
舉例來(lái)說(shuō),鳥(niǎo)哥之前的工作主機(jī)使用 AMD 公司出產(chǎn)的 Atlhon XP 1800+ CPU,搭配華碩公司的主機(jī)板。
為了比較快速的儲(chǔ)存系統(tǒng),所以鳥(niǎo)哥跑去買了一顆 SATA 介面的硬碟,
但是,買回來(lái)後才發(fā)現(xiàn)俺的主機(jī)板上面只有較早期的 IDE 硬碟介面,??!
還要去買一塊 SATA 擴(kuò)充卡來(lái)安裝~唉~失?。?br>
Tips: 什麼?看不懂啥是 IDE, SATA 以及 Athlon XP 嗎?沒(méi)關(guān)係!這些是電腦硬體相關(guān)的術(shù)語(yǔ),
妳只要知道 AMD 是一家製造 CPU 的公司,他們公司有出產(chǎn)一款 CPU ,而 AthlonXP 就是該款 CPU 的代號(hào)即可。
關(guān)於硬碟還有更多要介紹的,底下會(huì)說(shuō)明!
| |
程式運(yùn)作流程
鳥(niǎo)哥常常在開(kāi)玩笑的問(wèn)朋友說(shuō):『
沒(méi)有插電的電腦是一堆廢鐵,
那麼插了電的電腦是什麼?』您猜是什麼呢?答案是...『
一堆會(huì)電人的廢鐵!!』^_^!為什麼呢?
因?yàn)樯项^沒(méi)有程式嘛!所以說(shuō),電腦硬體上面必須要配合程式軟體才能夠順利的完成各項(xiàng)動(dòng)作。
那麼電腦是如何執(zhí)行各項(xiàng)軟體功能的呢?
假設(shè)有個(gè)人體身份是學(xué)生,他最近的工作是要去考試,為了應(yīng)付考試他應(yīng)該要如何動(dòng)作?
- 透過(guò)神經(jīng)傳導(dǎo),拿起課本,並從書(shū)本上面讀取會(huì)考的資訊,且記憶下來(lái);
- 進(jìn)入考場(chǎng)準(zhǔn)備考試,看到試卷後根據(jù)記憶將答案寫(xiě)下;
- 考完後交卷並離開(kāi)考場(chǎng)。
那麼如果是電腦程式呢?整個(gè)電腦主機(jī)各項(xiàng)元件是如何運(yùn)作?
- CPU 接受指令後,準(zhǔn)備讀取資料,主要藉由匯流排將硬碟的資料讀入主記憶體當(dāng)中;
- CPU 開(kāi)始處理程式碼,CPU 讀取的程式碼與資料都是由主記憶體當(dāng)中取得;
- 持續(xù)進(jìn)行該項(xiàng)任務(wù),直到任務(wù)完成為止。
上述的第一、二步驟如下圖三的示意:
圖三、程式的運(yùn)作流程
(上述圖示主要取自 tom's 硬體指南,各元件圖片分屬個(gè)別公司所有)
圖三給我們幾個(gè)很重要的概念,那就是:
- CPU 必須要接受程式碼之後才會(huì)開(kāi)始進(jìn)行運(yùn)作;
- 一般來(lái)說(shuō),目前的程式碼與資料都是放置在硬碟、光碟等儲(chǔ)存媒體當(dāng)中的;
- 不管是程式碼還是資料,最終都必須要被讀到主記憶體當(dāng)中後,CPU 才能使用;
- 任何資料的傳送幾乎都是透過(guò)主機(jī)板上的匯流排。
這是簡(jiǎn)單的程式運(yùn)作概念,對(duì)於妳未來(lái)要升級(jí)硬體,或者是檢查有無(wú)軟體錯(cuò)誤時(shí),
這個(gè)概念挺重要喔! ^_^。舉例來(lái)說(shuō),考慮到上述的第四點(diǎn),匯流排是很重要的!
而匯流排可以容納的資料傳輸速度(頻寬)是有限的,所以當(dāng)妳在進(jìn)行燒錄 DVD 的時(shí)候,
系統(tǒng)的整體效能會(huì)變慢,現(xiàn)在知道為什麼了吧?因?yàn)闊洉r(shí)匯流排被硬碟與 DVD 燒錄機(jī)之間傳輸?shù)馁Y料量給佔(zhàn)滿了!
所以其他程式要執(zhí)行時(shí),
圖三的 (1) 速度就慢了! ^_^
Tips: 為什麼很多硬體迷在購(gòu)買整部主機(jī)的時(shí)候,首先考慮的是主機(jī)板晶片組與CPU及主記憶體的頻寬?
因?yàn)樵谫Y料傳輸量很大的時(shí)候,這玩意兒影響可是很大的!
| |
程式怎麼來(lái)?
現(xiàn)在我們知道了,CPU 內(nèi)其實(shí)含有很多的指令集,而 CPU 需要由主記憶體中讀取所需要的程式碼與資料才能處理工作,
當(dāng)然啦,這些程式碼必須要能夠使用 CPU 內(nèi)的指令集來(lái)執(zhí)行算數(shù)、邏輯等動(dòng)作才行。那麼程式碼怎麼來(lái)?
其實(shí)程式的撰寫(xiě)最直接的就是參考 CPU 的指令集,然後利用 CPU 認(rèn)識(shí)的機(jī)器碼直接撰寫(xiě)程式,
這樣程式就可以直接運(yùn)作了。
但是這樣的動(dòng)作很麻煩,因?yàn)闄C(jī)器碼是機(jī)器認(rèn)識(shí)的語(yǔ)言,人類不容易瞭解!加上參考 CPU 指令集也是個(gè)苦差事,
因此這種撰寫(xiě)程式碼的行為除非是用在一些很小的嵌入式設(shè)備中,一般個(gè)人電腦很少使用這種模式來(lái)開(kāi)發(fā)應(yīng)用程式的。
取而代之的是一個(gè)作業(yè)程式來(lái)處理硬體問(wèn)題。
直接針對(duì)硬體來(lái)撰寫(xiě)應(yīng)用程式是沒(méi)有效率的,因?yàn)槊恐С淌蕉急仨殢念^撰寫(xiě),機(jī)器碼也不容易瞭解。
所以就有些公司或社群發(fā)展出所謂的『作業(yè)系統(tǒng)』。
作業(yè)系統(tǒng)是利用一組特殊的程式管理整個(gè)硬體資源,
同時(shí)作業(yè)系統(tǒng)還會(huì)提供一整組的標(biāo)準(zhǔn)開(kāi)發(fā)介面,讓程式設(shè)計(jì)師在撰寫(xiě)應(yīng)用程式時(shí),不需要考慮硬體,
僅需參考作業(yè)系統(tǒng)所提供的開(kāi)發(fā)介面來(lái)撰寫(xiě)程式即可。此時(shí)程式可使用作業(yè)系統(tǒng)推出的高階程式語(yǔ)言,
包括 C, .NET, Fortran, Java 等等。
我們可以將硬體、作業(yè)系統(tǒng)、開(kāi)發(fā)介面與工具、應(yīng)用程式、使用者作一個(gè)簡(jiǎn)單的相依圖示如下:
圖四、作業(yè)系統(tǒng)的示意圖
上面的圖示提供我們幾個(gè)簡(jiǎn)單的小概念:
- 作業(yè)系統(tǒng)直接參考硬體規(guī)格寫(xiě)成,所以同一個(gè)作業(yè)系統(tǒng)程式不能夠在不一樣的硬體架構(gòu)下運(yùn)作。
舉例來(lái)說(shuō),個(gè)人電腦版的 Windows XP 不能直接在 RISC 架構(gòu)的電腦下運(yùn)作。
所以您知道為何 Windows XP 又分為 32 位元及 64 位元的版本了吧?
因?yàn)?32/64 位元的 CPU 指令集不太相同,所以當(dāng)然要設(shè)計(jì)不同的作業(yè)系統(tǒng)版本了。
- 作業(yè)系統(tǒng)只是在管理整個(gè)硬體資源,包括 CPU、記憶體、輸入輸出裝置及檔案系統(tǒng)檔。
如果沒(méi)有其他的應(yīng)用程式輔助,作業(yè)系統(tǒng)只能讓電腦主機(jī)準(zhǔn)備妥當(dāng)(Ready)而已!並無(wú)法運(yùn)作其他功能。
所以?shī)叕F(xiàn)在知道為何 Windows XP 上面要達(dá)成網(wǎng)頁(yè)影像的運(yùn)作還需要類似 PhotoImpact 或 Photoshop 之類的軟體安裝了吧?
- 應(yīng)用程式的開(kāi)發(fā)都是參考作業(yè)系統(tǒng)提供的開(kāi)發(fā)介面,
所以該應(yīng)用程式只能在該作業(yè)系統(tǒng)上面運(yùn)作而已,不可以在其他作業(yè)系統(tǒng)上面運(yùn)作的。
現(xiàn)在您知道為何去購(gòu)買線上遊戲的光碟時(shí),光碟上面會(huì)明明白白的寫(xiě)著該軟體適合用於哪一種作業(yè)系統(tǒng)上了吧?
也該知道某些遊戲?yàn)楹尾荒軌蛟?Linux 上面安裝了吧?
目前最常見(jiàn)的作業(yè)系統(tǒng)主要有 Windows, Linux, Mac X, Unix 等,
在這些作業(yè)系統(tǒng)上面所開(kāi)發(fā)出來(lái)的程式基本上是不能夠互通的!因?yàn)樗拈_(kāi)發(fā)介面並不相同之故。
這也是為什麼當(dāng)妳去網(wǎng)路嘗試下載某些程式的時(shí)候,這個(gè)程式會(huì)有好多版本!
因?yàn)槌淌奖仨氁槍?duì)不同的作業(yè)系統(tǒng)去撰寫(xiě)才行喔!
我們拿常見(jiàn)的微軟公司的產(chǎn)品來(lái)說(shuō)明。妳知道 Windows XP, Office 2007 之間的關(guān)係了嗎?
- Windows XP 是一套作業(yè)系統(tǒng),他必須先安裝到個(gè)人電腦上面,否則電腦無(wú)法開(kāi)機(jī)運(yùn)作;
- Windows 98 與 Windows XP 是兩套不同的作業(yè)系統(tǒng),所以能在 Win 98 上安裝的軟體不見(jiàn)得可在 WinXP 上安裝;
- Windows XP 安裝好後,就只能擁有很少的功能,並沒(méi)有辦公室軟體;
- Office 2007 是一套應(yīng)用程式,要安裝前必須要瞭解他能在哪些作業(yè)系統(tǒng)上面運(yùn)作。
硬體與驅(qū)動(dòng)程式
瞭解了硬體與作業(yè)系統(tǒng)的相關(guān)概念後,現(xiàn)在我們知道作業(yè)系統(tǒng)主要在管理整個(gè)電腦主機(jī)的硬體資源,
為了要管理這些硬體支援,我們的作業(yè)系統(tǒng)當(dāng)然就得要『
驅(qū)動(dòng)整部主機(jī)上面的所有硬體』了!
一開(kāi)始時(shí),作業(yè)系統(tǒng)的設(shè)計(jì)者會(huì)將當(dāng)時(shí)主流的電腦硬體作個(gè)整理,取得硬體開(kāi)發(fā)商所提供的驅(qū)動(dòng)程式,
並主動(dòng)加入到作業(yè)系統(tǒng)當(dāng)中,以讓這個(gè)系統(tǒng)可以開(kāi)機(jī)並順利的認(rèn)識(shí)硬體。
不過(guò)硬體可是持續(xù)在進(jìn)步當(dāng)中的!包括主機(jī)板、顯示卡、硬碟等等。那麼比較晚推出的較新的硬體,
例如顯示卡,我們的作業(yè)系統(tǒng)當(dāng)然就不認(rèn)識(shí)囉!那作業(yè)系統(tǒng)該如何驅(qū)動(dòng)這塊新的顯示卡?
為了克服這個(gè)問(wèn)題,作業(yè)系統(tǒng)通常會(huì)提供一個(gè)開(kāi)發(fā)介面給硬體開(kāi)發(fā)商,
讓他們可以根據(jù)這個(gè)介面設(shè)計(jì)可以驅(qū)動(dòng)他們硬體的『驅(qū)動(dòng)程式』,如此一來(lái),只要使用者安裝驅(qū)動(dòng)程式後,
自然就可以在他們的作業(yè)系統(tǒng)上面驅(qū)動(dòng)這塊顯示卡了。
圖五、驅(qū)動(dòng)程式與作業(yè)系統(tǒng)
(上述圖示主要取自 tom's 硬體指南,各元件圖片分屬個(gè)別公司所有)
由上圖五我們可以得到幾個(gè)小重點(diǎn):
- 作業(yè)系統(tǒng)必須要能夠驅(qū)動(dòng)硬體,如此應(yīng)用程式才能夠使用該硬體功能;
- 一般來(lái)說(shuō),作業(yè)系統(tǒng)會(huì)提供開(kāi)發(fā)介面,讓開(kāi)發(fā)商製作他們的驅(qū)動(dòng)程式;
- 要使用新硬體功能,必須要安裝廠商提供的驅(qū)動(dòng)程式才行;
- 驅(qū)動(dòng)程式是由廠商提供的,與作業(yè)系統(tǒng)開(kāi)發(fā)者無(wú)關(guān)。
所以,如果妳想要在某個(gè)作業(yè)系統(tǒng)上面安裝一張新的顯示卡,那麼請(qǐng)要求該硬體廠商提供適當(dāng)?shù)尿?qū)動(dòng)程式吧! ^_^!
為什麼要強(qiáng)調(diào)『
適當(dāng)?shù)尿?qū)動(dòng)程式』呢?因?yàn)轵?qū)動(dòng)程式仍然是依據(jù)作業(yè)系統(tǒng)而開(kāi)發(fā)的,
所以,給 Windows 用的驅(qū)動(dòng)程式當(dāng)然不能使用於 Linux 的環(huán)境下了。
前一小節(jié)我們談到硬體與程式運(yùn)作的關(guān)係,也談到
程式主要是放置到一些儲(chǔ)存媒體上的,
現(xiàn)在的主機(jī)設(shè)備當(dāng)中,儲(chǔ)存媒體最重要的一項(xiàng)就是『硬碟』這個(gè)玩意兒啦!
當(dāng)妳的主機(jī)想要有作業(yè)系統(tǒng)時(shí),首先就得要將作業(yè)系統(tǒng)『安裝』到妳的硬碟當(dāng)中!
所以您說(shuō),硬碟是否很重要啊!
硬碟的連接介面:IDE, SATA
硬碟的介面規(guī)格近年來(lái)有重大突破,那就是由傳統(tǒng)的 IDE 介面轉(zhuǎn)換到新的 SATA 介面。
(我們這裡主要針對(duì)個(gè)人電腦,所以較高階的 SCSI 介面不在討論之列。)
那麼什麼是 IDE 什麼是 SATA 介面呢?簡(jiǎn)單的說(shuō),就是硬碟與主機(jī)板連結(jié)在一起的那個(gè)插槽不一樣啦!
我們以實(shí)際的硬碟來(lái)作說(shuō)明,請(qǐng)看下圖的兩款硬碟連接腳位:
圖六、兩款硬碟介面(左邊為 IDE 介面,右邊為 SATA 介面)
早期 IDE 硬碟的排線 (連接硬碟與主機(jī)板) 較寬,容易影響到機(jī)殼內(nèi)的熱對(duì)流,所以散熱不易。
如下圖所示,這一條排線上面有三個(gè)插槽,一邊接主機(jī)板,另外兩個(gè)則接在硬碟 (或稱為 IDE 裝置) 上。
圖七、IDE 介面的排線 (圖示取自 Seagate 網(wǎng)站)
一般來(lái)說(shuō),早期主機(jī)板上面的 IDE 插槽有兩個(gè),而每條排線上又可以有兩個(gè) IDE 裝置,所以最多可以接到四個(gè) IDE 裝置。
如果妳需要一個(gè)光碟機(jī),那麼最多妳的主機(jī)就可以接三顆硬碟的意思。不過(guò)妳應(yīng)該要想到的是:『既然排線可以接兩個(gè)硬碟,
那麼哪一顆硬碟會(huì)先被主機(jī)捉到?』這個(gè)時(shí)候得要進(jìn)行跳針 (Jump) 的設(shè)定才行喔!如
圖六所示,
IDE 排線右邊的那個(gè)插槽就是在設(shè)定跳針的地方!妳可以設(shè)定成主要(master)或次要(slave)的形式。
要注意,一條排線上面不可以同時(shí)為 master 或 slave ,否則主機(jī)會(huì)捉不到兩顆硬碟!在同一條排線上,
一定要一顆為 master 一顆為 slave 才行
由於 IDE 介面的發(fā)展已經(jīng)到了極限,而且排線又容易造成通風(fēng)不良,所以後來(lái)出現(xiàn)了一種新的介面,那就是 SATA 介面啦!
從
圖六妳已經(jīng)可以發(fā)現(xiàn)到 SATA 的排線接口非常的小,而且 SATA 的速度要比 IDE 快的多!
所以 SATA 已經(jīng)成為目前硬碟機(jī)介面的主流囉! SATA 的排線示意圖如下圖所示:
圖八、SATA 介面的排線 (圖示取自 Seagate 網(wǎng)站)
SATA 的排線直接連結(jié)硬碟與主機(jī)板,一條排線僅接一顆硬碟,所以?shī)叢恍枰{(diào)整跳針。
不過(guò)一張主機(jī)板上面 SATA 插槽的數(shù)量並不是固定的,且每個(gè)插槽都有編號(hào),在連接 SATA 硬碟與主機(jī)板的時(shí)候,
還是需要留意一下。
硬碟的組成
在開(kāi)始談實(shí)際使用硬碟之前,我們還得要知道一下硬碟的組成比較好。實(shí)際上,硬碟就是由硬碟盤(pán)與讀取頭所組成的。
硬碟盤(pán)是圓形的,資料就是透過(guò)磁頭寫(xiě)入到硬碟盤(pán)上面。資料能夠被寫(xiě)入到硬碟盤(pán)的最小單位是磁區(qū) (sector),
目前 x86 硬碟的磁區(qū)一個(gè)為 512 bytes 這麼大。而磁區(qū)聚合成為一個(gè)同心圓時(shí),那就是磁柱 (cylinder)。
如果以圖示來(lái)看,他有點(diǎn)像這樣:
圖九、硬碟盤(pán)組成示意圖
我這裡假設(shè)硬碟裡面僅有一個(gè)硬碟盤(pán)的狀況。所以硬碟最重要的組成就是:
磁區(qū)、磁柱、磁頭
(sector, cylinder, head),其中磁區(qū)一個(gè)有 512bytes 大,而磁柱為分割時(shí)的最小單位。
那麼是否每個(gè)磁區(qū)都一樣重要呢?其實(shí)整顆硬碟的第一個(gè)磁區(qū)特別的重要,因?yàn)樗涗浟苏w硬碟的重要資訊!
第一個(gè)磁區(qū)主要記錄了兩個(gè)重要的資訊,分別是:
- 主要開(kāi)機(jī)記錄區(qū)(Master Boot Record, MBR):可以安裝開(kāi)機(jī)管理程式的地方,有 446 bytes
- 分割表 (partition table):記錄整顆硬碟分割的狀態(tài),有 64bytes
MBR 是很重要的,因?yàn)楫?dāng)系統(tǒng)在開(kāi)機(jī)的時(shí)候,會(huì)主動(dòng)去讀取這個(gè)區(qū)塊的內(nèi)容,
這樣系統(tǒng)才會(huì)知道你的程式放在哪裡且該如何進(jìn)行開(kāi)機(jī)。如果妳要安裝多重開(kāi)機(jī)的系統(tǒng),
MBR 這個(gè)區(qū)塊的管理就非常非常的重要了! ^_^
那麼分割表又是啥?其實(shí)妳剛剛拿到的整顆硬碟就像一根原木,妳必須要在這根原木上面切割出妳想要的區(qū)段,
這個(gè)區(qū)段才能夠再製作成為你想要的家具!如果沒(méi)有進(jìn)行切割,那麼原木就不能被有效的使用。
同樣的道理,妳必須要針對(duì)妳的硬碟進(jìn)行分割,這樣硬碟才可以被妳使用的!
磁碟分割表
但是硬碟總不能真的拿鋸子來(lái)切切割割吧?那硬碟還真的是會(huì)壞掉去!那怎辦?
就利用參考對(duì)照磁柱號(hào)碼的方式來(lái)處理啦!在分割表所在的 64bytes 容量中,總共分為四組記錄區(qū),
每組記錄區(qū)記錄了該區(qū)段的啟始與結(jié)束的磁柱號(hào)碼。若將硬碟以長(zhǎng)條形來(lái)看,然後將磁柱以直條圖來(lái)看,
那麼那 64 bytes 的記錄區(qū)段有點(diǎn)像底下的圖示:
圖十、硬碟分割表的作用示意圖
由上圖來(lái)看,我們可以知道幾個(gè)小重點(diǎn):
- 其實(shí)所謂的『分割』只是針對(duì)那個(gè) 64bytes 的分割表進(jìn)行設(shè)定而已!
- 硬碟預(yù)設(shè)的分割表僅能寫(xiě)入四組分割資訊
- 這四組分割資訊我們稱為主要(primary)分割區(qū)
- 分割區(qū)的最小單位為磁柱(cylinder)
- 當(dāng)系統(tǒng)要寫(xiě)入磁碟時(shí),一定會(huì)參考磁碟分割表,才能針對(duì)某個(gè)分割區(qū)進(jìn)行資料的處理
那麼為何需要進(jìn)行分割呢?因?yàn)?span id="eq6qmui" class="text_import2">每個(gè)分割區(qū)的資料是分開(kāi)的
!所以,當(dāng)妳需要將某個(gè)分割區(qū)的資料重整時(shí),
例如妳要將妳電腦中 Windows 的 C 槽重新安裝一次 Windows 時(shí),妳可以將其他重要資料移動(dòng)到其他分割區(qū),
例如將郵件、桌面資料移動(dòng)到 D 槽去,那麼 C 槽重灌系統(tǒng)並不會(huì)影響到 D 槽!
所以善用分割區(qū),可以讓妳的資料更安全。
另外,由於分割區(qū)將資料集中在某個(gè)磁柱的區(qū)段,例如圖十當(dāng)中第一個(gè)分割槽位於磁柱號(hào)碼 1~100 號(hào),
如此一來(lái)當(dāng)有資料要讀取自該分割槽時(shí),磁碟只會(huì)搜尋前面 1~100 的磁柱範(fàn)圍,
由於資料集中了,將有助於資料讀取的速度與效能!所以說(shuō),分割是很重要的!
既然分割表只有記錄四組資料的空間,那麼是否代表我一顆硬碟最多只能分割出四個(gè)分割槽?
當(dāng)然不是啦!有經(jīng)驗(yàn)的朋友都知道,妳可以將一顆硬碟分割成十個(gè)以上的分割槽的!
那又是如何達(dá)到的呢?在 Windows/Linux 系統(tǒng)中,我們是透過(guò)一個(gè)稱為
延伸分割
(Extended partition) 的方式來(lái)處理的。
既然第一個(gè)磁區(qū)所在的分割表只能記錄四筆資料,那我可否利用額外的磁區(qū)來(lái)記錄更多的分割資訊?
那就是延伸分割的想法。實(shí)際上圖示有點(diǎn)像底下這樣:
圖十一、硬碟分割表的作用示意圖
在圖十一當(dāng)中,我們知道硬碟的四個(gè)分割記錄區(qū)僅使用到兩個(gè),P1 為主要分割,而 P2 則為延伸分割。
請(qǐng)注意,
延伸分割不能夠被用來(lái)作為資料存取的!
然後我們可以透過(guò)延伸分割所指向的那個(gè)區(qū)塊繼續(xù)作分割的記錄,如圖十一右下方那個(gè)區(qū)塊,
繼續(xù)分割出五個(gè)分割槽,這五個(gè)由延伸分割繼續(xù)切出來(lái)的分割槽,就被稱為
邏輯分割區(qū)
(logical partition)。同時(shí)注意一下,由於邏輯分割區(qū)是由延伸分割繼續(xù)分割出來(lái)的,
所以他可以使用的磁柱範(fàn)圍就是延伸分割所設(shè)定的範(fàn)圍喔!也就是圖中的 101~400 啦!
主要分割、延伸分割與邏輯分割的特性我們作個(gè)簡(jiǎn)單的定義囉:
- 主要分割與延伸分割最多可以有四筆 (硬碟的限制)
- 延伸分割最多只能有一個(gè) (作業(yè)系統(tǒng)的限制)
- 邏輯分割是由延伸分割持續(xù)切割出來(lái)的分割槽;
- 能夠被格式化後,作為資料存取的分割槽為主要分割與邏輯分割。延伸分割無(wú)法格式化;
- 邏輯分割的數(shù)量依作業(yè)系統(tǒng)而不同,在 Linux 系統(tǒng)中, IDE 的硬碟最多有 59 個(gè)邏輯分割,
SATA 硬碟則有 11 個(gè)邏輯分割。
事實(shí)上,分割是個(gè)很麻煩的東西,因?yàn)樗且源胖鶠閱挝坏摹哼B續(xù)』磁碟空間,
而且延伸分割又是個(gè)類似獨(dú)立的空間,所以在分割的時(shí)候得要特別注意。舉個(gè)例子來(lái)說(shuō),在 Windows 的分割當(dāng)中,
通常他們喜歡自訂成一個(gè)主要分割作為系統(tǒng)槽,其他的容量全部作為延伸分割,
然後再讓延伸分割繼續(xù)分成邏輯分割。好,那假設(shè)妳的 D 與 E 槽各有 30GB ,妳想將這兩槽整合成一槽,
底下這兩種情況到底可否整合?
圖十二、磁碟空間整合示意圖
在圖十二當(dāng)中,上圖的 D, E 因?yàn)橥瑢凫堆由旆指顑?nèi)的邏輯分割槽,因此妳只要:
(1)將這兩個(gè)分割槽刪除,然後 (2)再重新建立一個(gè)新的分割槽,就能在不影響其他分割槽的情況下,
將兩個(gè)分割槽的空間組合成為一個(gè)。但如果是圖十二的下圖,由於 D, E 槽分屬主分割與邏輯分割,
所以兩者不能夠整合在一起,除非妳將延伸分割破壞後再重新分割。不過(guò),這樣會(huì)影響到所有的邏輯分割!
要注意,
如果延伸分割被破壞,所有邏輯分割將會(huì)被刪除!
在硬碟分割完畢後,這顆硬碟就可以準(zhǔn)備被格式化使用了!不管你想要玩的是 Windows 還是 Linux ,
硬碟的分割概念是相當(dāng)重要的!別忽略這部份的知識(shí)呢!
主要開(kāi)機(jī)記錄區(qū)(MBR)
不知道你會(huì)不會(huì)覺(jué)得很奇怪,為啥電腦可以開(kāi)機(jī)?為啥電腦知道我的開(kāi)機(jī)軟體放在 C 槽?
這是因?yàn)橛杏驳?MBR 的關(guān)係!每次電腦打開(kāi)電源後,電腦根據(jù) BIOS 的設(shè)定決定哪一個(gè)裝置為主要的開(kāi)機(jī)裝置。
假如你以硬碟作為開(kāi)機(jī)裝置時(shí),那麼電腦就會(huì)主動(dòng)的去讀取該顆硬碟的 MBR ,
並根據(jù) MBR 裡面的設(shè)定知道開(kāi)機(jī)程式在哪裡,所以說(shuō), MBR 是很重要的呢!
如前面說(shuō)的,MBR 是硬碟第一個(gè)磁區(qū)內(nèi)佔(zhàn)有 446 bytes 容量的區(qū)塊,這個(gè)區(qū)塊可以安裝開(kāi)機(jī)管理程式,
在一些作業(yè)系統(tǒng)上面我們稱這種程式為開(kāi)機(jī)載入器 (boot loader),底下我們直接稱呼為 loader 好了。
loader 主要的任務(wù)有三個(gè),分別是:
- 提供選單給使用者選擇開(kāi)機(jī)程式,這也是多重開(kāi)機(jī)的重要功能!
- 直接指向可開(kāi)機(jī)的程式區(qū)段
- 將選單功能轉(zhuǎn)交給其他 loader 負(fù)責(zé)。
其實(shí)可以安裝 loader 的地方有兩個(gè),一個(gè)是 MBR ,另一個(gè)是每個(gè)分割槽的超級(jí)區(qū)塊(super block)。
每個(gè)分割槽都會(huì)留一個(gè)區(qū)塊來(lái)記錄該分割槽的相關(guān)資訊,如果我們依舊以長(zhǎng)條圖來(lái)看,超級(jí)區(qū)塊, MBR
與實(shí)際的開(kāi)機(jī)程式他們的相對(duì)位置是這樣的:
圖十三、開(kāi)機(jī)載入器示意圖
圖十三可以這樣看:
- 每個(gè)分割槽都擁有超級(jí)區(qū)塊 (super block)
- 圖中的系統(tǒng)槽為第一及第二分割槽,
- 實(shí)際可開(kāi)機(jī)的程式是放置到分割槽內(nèi)的!
- loader 只會(huì)認(rèn)識(shí)自己的系統(tǒng)槽內(nèi)的開(kāi)機(jī)程式,以及其他 loader 而已;
- loader 可直接指向或者是間接將管理權(quán)轉(zhuǎn)交給另一個(gè)管理程式。
所以在圖十三中,鳥(niǎo)哥假設(shè) MBR 的 loader 認(rèn)識(shí) Windows 的開(kāi)機(jī)程式,
因此他可以直接指向開(kāi)機(jī)程式 (M1的那個(gè)選單),但他不認(rèn)識(shí) Linux 的開(kāi)機(jī)程式,
因此我們使用 M2 選單,將控制權(quán)移交給 Linux 所在的系統(tǒng)槽的超級(jí)區(qū)塊,
該超級(jí)區(qū)塊內(nèi)也有 loader ,那個(gè) loader 會(huì)認(rèn)識(shí) Linux 開(kāi)機(jī)程式,
因此就能夠順利的以 Linux 開(kāi)機(jī)了!
那現(xiàn)在請(qǐng)您想一想,為什麼人家常常說(shuō):『
如果要安裝多重開(kāi)機(jī),最好先安裝
Windows 再安裝 Linux 』呢?
這是因?yàn)?Linux 在安裝的時(shí)候,妳可以選擇將開(kāi)機(jī)管理程式安裝在 MBR 或超級(jí)區(qū)塊,
而且 Linux 的 loader 可以手動(dòng)設(shè)定選單 (就是圖十三的 M1, M2...);至於 Windows 在安裝的時(shí)候,
則會(huì)自己覆蓋掉 MBR 以及超級(jí)區(qū)塊,而且他沒(méi)有讓我們自己選擇選單的機(jī)會(huì),因此,
如果先安裝 Linux 再安裝 Windows 的話,那妳就得要自行以類似 spfdisk 之類的軟體重新處理 MBR ,
否則就進(jìn)不了 Linux 系統(tǒng)了 (雖然可以透過(guò)其他方法來(lái)處理 MBR )。
Windows 的 loader 不認(rèn)識(shí) Linux 的系統(tǒng)槽,而 Linux 的 loader 對(duì)於一般使用者來(lái)說(shuō),
似乎不是那麼具有親和力,那是否有其他的 loader 可以安裝在 MBR 裡面管理多重開(kāi)機(jī)啊?
沒(méi)錯(cuò)!是有的!那就是臺(tái)灣之光馮緒平先生撰寫(xiě)的 SPecialFDisk (簡(jiǎn)稱 spfdisk) 這套軟體!
這套軟體詳細(xì)資訊請(qǐng)參考底下的連結(jié),這軟體不但可以進(jìn)行磁碟分割的動(dòng)作以及安裝 loader ,
更厲害的是,他是全中文介面!高興了吧! ^_^
我們會(huì)在後面的章節(jié)以一個(gè)實(shí)際案例來(lái)介紹 spfdisk 的使用喔!
啥是 Linux ?這東西有啥好玩的?這個(gè)咚咚的製作概念如何?這個(gè)咚咚有沒(méi)有版權(quán)?
這東西的應(yīng)用度廣嗎?這都是我們要來(lái)留意的??!不然為何妳想要玩 Linux 呢? ^_^
Linux 是啥東西?
既然要玩 Linux 就得先知道 Linux 是啥才對(duì)。其實(shí) Linux 就是一個(gè)『作業(yè)系統(tǒng)』!
我們前面談到作業(yè)系統(tǒng)主要的功能就是驅(qū)動(dòng)與管理所有的硬體資源,並提供相關(guān)的開(kāi)發(fā)介面給程式設(shè)計(jì)師參考與開(kāi)發(fā)應(yīng)用程式。
所以 Linux 是一組程式,這一組程式可以管理與驅(qū)動(dòng)電腦,同時(shí)還可以提供很多好用的開(kāi)發(fā)介面就是了。
如果要更詳細(xì)的定義,那我們可以說(shuō),整個(gè)作業(yè)系統(tǒng)最重要的核心 (kernel) 就是 Linux ,
這個(gè) Linux 的核心原始碼可以在
http://www.
這個(gè)網(wǎng)站找到,而且當(dāng)妳將他安裝在妳的電腦上時(shí),整個(gè)程式碼甚至可以小到數(shù)百 Kbytes ,
這麼小的程式就能夠驅(qū)動(dòng)與管理所有的硬體,所以很多家電、手機(jī)等嵌入式設(shè)備很喜歡使用 Linux 哩!
最早 Linux 是在 1991 年由芬蘭人托瓦茲 (Linus Torvalds) 所開(kāi)發(fā)出來(lái)的,他本著『人人為我、我為人人』的態(tài)度將
Linux 釋出到網(wǎng)際網(wǎng)路社會(huì)中,由於他所撰寫(xiě)的程式碼相當(dāng)?shù)膬?yōu)秀,所以很多駭客級(jí)工程師都很喜歡使用。
而且由於他將程式碼直接釋出到網(wǎng)際網(wǎng)路中,因此很多人都可以修改他的程式碼,
另外有更多人則是貢獻(xiàn)他們自己的程式碼給托瓦茲,以進(jìn)一步加強(qiáng) Linux 本身的能力!
妳或許會(huì)問(wèn):『為什麼大家可以修改托瓦茲的程式碼?他沒(méi)有著作權(quán)的保護(hù)嗎?』
當(dāng)然不是啦!Linux 是有授權(quán)的,妳必須要同意他的授權(quán)才能夠使用喔!那 Linux 的授權(quán)是啥呢?
Linux 的授權(quán) (自由軟體)
很多人都以為 Linux 是『免費(fèi)』的,其實(shí)不然!應(yīng)該說(shuō) Linux 是『自由的』才對(duì)!免費(fèi)與自由在英文都是 Free ,
所以很容易造成大家的誤解。
Linux 是有版權(quán)的,他的版權(quán)使用的是
GNU 計(jì)畫(huà)的一般通用授權(quán) (General Public License, GPL)。
GNU 是由史托曼 (Richard Stallman) 在 1984 年所發(fā)起的一項(xiàng)計(jì)畫(huà),目的就是在創(chuàng)作一個(gè)完全自由的作業(yè)系統(tǒng)。
GNU (
http://www.) 本身有相當(dāng)多的軟體提供,
包括 Linux 開(kāi)發(fā)的環(huán)境、編譯器等都是使用 GNU 的軟體呢!這也是後來(lái)托瓦茲將 Linux 使用 GPL 授權(quán)的原因之一。
那麼什麼是 GPL 授權(quán)呢?詳細(xì)的條文中文版可以參考這裡:
說(shuō)穿了, GPL 的目的在確保程式著作者的版權(quán)權(quán)利以及使用者的相關(guān)使用規(guī)定。當(dāng)一個(gè)軟體掛上了 GPL 的授權(quán)後,
針對(duì)使用者來(lái)說(shuō),他具有底下的權(quán)利:
- 軟體本身會(huì)釋出原始碼;
- 使用者可以根據(jù)原作者的程式碼學(xué)習(xí)程式撰寫(xiě)邏輯;
- 當(dāng)使用者同意 GPL 授權(quán)後,即可自由的取得、複製、修改與再發(fā)行該軟體。
針對(duì)程式設(shè)計(jì)師則有底下的保護(hù):
- 使用者不可單純的販賣該軟體 (但可販賣服務(wù),如安裝、教使用方式等);
- 使用者不能隨意修改授權(quán),即該軟體為 GPL 時(shí),使用者不可將該軟體修改成專利軟體授權(quán);
- 使用者重新修改或者貢獻(xiàn)程式碼後,應(yīng)該將程式碼再以 GPL 的方式回饋給程式設(shè)計(jì)者。
也就是說(shuō),當(dāng)妳使用 GPL 授權(quán)發(fā)佈軟體後,妳必須要同時(shí)題工程是原始碼才行。
不過(guò),妳對(duì)於該軟體的貢獻(xiàn)將永遠(yuǎn)存在,因?yàn)槠渌褂谜卟豢蓪⑹跈?quán)修改,所以?shī)叺呢暙I(xiàn)永遠(yuǎn)都在!
而且如果該程式的使用者眾多,則妳的程式碼會(huì)有無(wú)數(shù)多人幫妳校閱,所以 GPL 授權(quán)的軟體通常在效能、安全性方面都比較好!
漏洞修補(bǔ)速度也快上非常的多!
由於 GPL 授權(quán)的軟體在使用上的自由度 (Free) 相當(dāng)高,所以我們也稱這種授權(quán)的軟體為自由軟體 (Free software),
他並不是免費(fèi)軟體 (freeware) 喔!不要搞混了~ ^_^
Linux 完整安裝套件
(distribution)
Linux 既然這麼好用,當(dāng)然大家都想要搶著用,尤其是他又是自由的!不過(guò), Linux 早期真的很難入門(mén)~
因?yàn)?Linux 原本只有核心程式,也就是
http://www.
提供的原始碼而已,想要使用他還得要自己動(dòng)手編譯,這對(duì)於一般使用者來(lái)說(shuō),實(shí)在是莫大的壓力!
很多人為了要推廣這麼好用的東西,於是就將 Linux 核心先進(jìn)行編譯,並且加入很多軟體 (不一定是自由軟體),
最重要的是將這一整組東西處理成為一份可完整安裝的光碟 (或 DVD)釋出,這就稱為完整安裝套件 (distribution) 了!
所以說(shuō), Linux distribution 指的就是:
Linux distribution = Linux kernel + Free Software + Software + Tools + 可完整安裝流程
我們?cè)賮?lái)看一張簡(jiǎn)圖,如下所示:
圖十四、作業(yè)系統(tǒng)與 distribution 之間的相關(guān)性
如上所示,Linux 核心提供的是中間兩層,這也是
http://www. 提供的咚咚。
同時(shí),很多商業(yè)公司自行推出他們的 distribution 配合販賣他們的支援服務(wù)來(lái)進(jìn)行商業(yè)行為,
這對(duì)於企業(yè)用戶來(lái)說(shuō),實(shí)在是一整套不錯(cuò)的作業(yè)系統(tǒng)哩!而如果妳只是想要試用,那麼很多社群版的 distribution
也可以滿足你喔!目前常見(jiàn)的 Linux distributions 有底下這幾種:
當(dāng)然還有很多版本啦,上面只是列出一些常見(jiàn)的 distribution 而已。此外還有一些版本則是主打不需要硬碟的環(huán)境,
那就是完全由光碟開(kāi)機(jī)的版本,這些版本我們稱為 Live CD (直接以 CD 開(kāi)機(jī),就能夠進(jìn)入 Linux 的環(huán)境)。
臺(tái)灣也有 Live CD ,例如底下的連結(jié):
妳可以自由下載該軟體,然後燒錄成為可開(kāi)機(jī)光碟或 DVD 後,即可使用 Linux 的環(huán)境哩!
當(dāng)成搶先試用版的功能也是不錯(cuò)啦! ^_^!
Linux 核心版本之謎
Linux 的發(fā)展者非常的多,且為因應(yīng)新硬體與軟體的升級(jí),所以造成核心常常增加新功能,也就是說(shuō),
Linux 核心常常有變動(dòng)就是了。
為了分辨各個(gè)不同版本之間的差異,所以托瓦茲將針對(duì) Linux 核心的釋出給予版本的訂定。一般來(lái)說(shuō),
核心釋出時(shí)的版本定義為:
2 . 6 . 20
主版本.次版本.釋出次數(shù)
就如同前面提到的,因?yàn)楹诵牡淖儎?dòng)性太大,如果用在一般家用電腦或者是企業(yè)關(guān)鍵應(yīng)用的話,
常變動(dòng)的核心並不適合的,因此托瓦茲將核心發(fā)展的趨勢(shì)分為兩股,並根據(jù)這兩股核心的發(fā)展分別給予不同的核心編號(hào),
那就是:
- 主、次版本為奇數(shù):
如 2.5.xx ,這種核心版本主要用在測(cè)試與發(fā)展新功能,所以通常這種版本僅有核心開(kāi)發(fā)工程師會(huì)使用。
如果有新增的核心程式碼,會(huì)加到這種版本當(dāng)中,等到眾多工程師測(cè)試沒(méi)問(wèn)題後,才加入下一版的穩(wěn)定核心中;
- 主、次版本為偶數(shù):
如 2.6.xx ,等到核心功能發(fā)展成熟後會(huì)加到這類的版本中,主要用在一般家用電腦以及企業(yè)版本中。
重點(diǎn)在於提供使用者一個(gè)相對(duì)穩(wěn)定的 Linux 作業(yè)環(huán)境平臺(tái)。
Linux 核心版本與 distribution 的版本並不相同,很多朋友常常上網(wǎng)問(wèn)到:『我的 Linux 是 9.x 版,請(qǐng)問(wèn)....』之類的留言,
這是不對(duì)的提問(wèn)方式,因?yàn)樗^的 Linux 版本指的應(yīng)該是核心版本,
而目前最新的核心版本應(yīng)該是 2.6.21 (2007/06) 才對(duì),並不會(huì)有 9.x 的版本出現(xiàn)的。
妳常用的 Linux 系統(tǒng)則應(yīng)該說(shuō)明為 distribution 才對(duì)!因此,如果以本站所介紹的
CentOS 來(lái)說(shuō),妳應(yīng)該說(shuō):『我用的 Linux 是 CentOS 這個(gè) distribution,
版本為 5.x 版,請(qǐng)問(wèn)....』才對(duì)喔!
Tips: 當(dāng)妳有任何問(wèn)題想要在 Linux 論壇發(fā)言時(shí),請(qǐng)務(wù)必仔細(xì)的說(shuō)明妳的 distribution 版本,
因?yàn)殡m然各家 distributions 使用的都是 Linux 核心,不過(guò)每家 distributions 所選用的軟體以及他們自己發(fā)展的工具並不相同,
多少還是有點(diǎn)差異,所以留言時(shí)得要先聲明 distribution 的版本才行喔! ^_^
| |
裝置代號(hào)
如果妳曾經(jīng)使用過(guò) Windows 系統(tǒng)的話,會(huì)發(fā)現(xiàn)妳的檔案總管內(nèi)有好多的裝置,包括 C 槽、 D 槽、光碟機(jī)、
可攜式硬碟機(jī)、USB 裝置....一大堆東西。那麼 Linux 有沒(méi)有這些東西呢?答案是....沒(méi)有這些『代號(hào)』了~
Linux 系統(tǒng)內(nèi)有的只是以『檔名取代裝置名稱』!
舉例來(lái)說(shuō),第一個(gè) IDE 插槽的 master 硬碟代號(hào)為 /dev/hda ,
那個(gè) /dev 是個(gè)目錄,是裝置 (device) 的縮寫(xiě),而 hda 則是 Hard Disk A (hda) 的縮寫(xiě)囉!若以此類推的話,
slave 硬碟就稱為 /dev/hdb 囉~而如果光碟機(jī)是放在第二個(gè) IDE 插槽的 master 時(shí),光碟機(jī)的代號(hào)就是 /dev/hdc 啦!
那麼最近主流的 SATA 硬碟代號(hào)是啥?由於 SATA 使用的是 SCSI 模組 (早期的硬碟只有 IDE, SCSI 兩種介面),
所以 SATA 硬碟代號(hào)與 SCSI 相同,都稱為 /dev/sda !其實(shí)就是 SCSI hard Disk A (sda) 的意思。
而 SATA 硬碟由於不需要調(diào)整跳針,他是根據(jù) SATA 插槽的順序來(lái)給予代號(hào)的。所以第一顆 SATA 硬碟為 /dev/sda, 第二顆為
/dev/sdb 以此類推。
接下來(lái)那個(gè) usb 硬碟的代號(hào)又是啥?由於 usb 也是使用 SCSI 模組,所以 usb 硬碟也是使用 /dev/sd? 代號(hào)。
這樣會(huì)不會(huì)造成困擾呢?其實(shí)不會(huì)啦!因?yàn)橛驳?hào)還是會(huì)以偵測(cè)順序?yàn)橹?,所以通?SATA 硬碟代號(hào)會(huì)較前面 (/dev/sda...)
而 usb 硬碟代號(hào)則較後面 (/dev/sdc...)
不過(guò),我們?cè)谇耙恍」?jié)談過(guò),硬碟總是得經(jīng)過(guò)分割後才能夠被格式化使用,那假設(shè)以第一顆 SATA 硬碟來(lái)說(shuō),
他的分割槽代號(hào)為何?很簡(jiǎn)單啊,直接在硬碟代號(hào)後面加上數(shù)字即可。只是要注意的是,由於硬碟的分割表已經(jīng)保留四個(gè)位置,
所以邏輯分割的代號(hào)都是由 5 號(hào)開(kāi)始的。我們以底下的兩個(gè)案例來(lái)說(shuō)明代號(hào):
圖十五、磁碟代號(hào)的說(shuō)明
要記得,延伸分割也是一種分割 (雖然他只是在規(guī)劃出邏輯分割的磁柱位置而已),所以那個(gè)代號(hào)不要忘記了。
圖十五上圖很容易瞭解,就是照順序下來(lái)即是。但圖十五下圖則可發(fā)現(xiàn)代號(hào) /dev/sda3, /dev/sda4 不見(jiàn)了!
因?yàn)?partition table 內(nèi)有四筆記錄啊,這四筆記錄的代號(hào)是保留的。因此 parmary 與 extended 代號(hào)一定是前面四號(hào),
邏輯分割一定是由五號(hào)開(kāi)始的!這個(gè)概念很重要的,因?yàn)榕c Windows 的 C, D, E... 不一樣! ^_^
反正您要記得的是,Linux 已經(jīng)沒(méi)有所謂的裝置名稱,他有的是檔名而已。而跟系統(tǒng)裝置有關(guān)的咚咚,
幾乎都是放在 /dev 那個(gè)目錄底下,這點(diǎn)要特別注意喔!
X Window System
一些老玩家都知道,早期的 Win 3.1 是在 DOS 系統(tǒng)上面的一套軟體而已。相同的,
X Window System 也不過(guò)是 Linux 上面的一套軟體而已,X Window System 並不是作業(yè)系統(tǒng)喔!^_^
什麼是 X Window System 呢?早期的作業(yè)系統(tǒng)都是文字介面的,就是需要工程師下達(dá)指令後系統(tǒng)才會(huì)運(yùn)作,
而沒(méi)有圖形介面的功能。但是一些工程界人士,例如地質(zhì)學(xué)家要繪製地表面與高度的相關(guān)性,
又例如海洋學(xué)家要繪製海溝的分佈情況等等,這些都需要圖形介面的。後來(lái)麻省理工學(xué)院 (MIT)
開(kāi)發(fā)出圖形使用者介面 (Graphical User Interface, GUI) ,他們認(rèn)為這是下一代視窗 (window) 介面,
因此就稱為 X (想一想, 26 個(gè)英文字母按照順序,W 後面出現(xiàn)的字母是啥? ^_^)。
這就是 X Window System 命名的由來(lái)。
那 X Window System 有啥特異功能,為何 Linux 要使用這個(gè)咚咚呢?其實(shí) X 系統(tǒng)主要是架構(gòu)於可利用網(wǎng)路的環(huán)境,
利用一個(gè) X server 管理硬體架構(gòu),利用 X client 計(jì)算繪圖數(shù)據(jù),然後再交由 X server 來(lái)列印到螢?zāi)簧稀?
X client 可以是一部主機(jī),而 X server 則可以在任何一部主機(jī)上,那就構(gòu)成了網(wǎng)路的 X 連線了。
妳可以參考底下的圖示來(lái)看:
圖十六、X server 與 X client 的溝通示意圖
上圖有趣的地方在於, X client 可能是多個(gè)可以在 X 系統(tǒng)上面運(yùn)作的程式,而
X server 則是可以在多種不同作業(yè)系統(tǒng)上面運(yùn)作的程式。也就是說(shuō),妳可以在不同的作業(yè)系統(tǒng)上面安裝 X server ,
然後透過(guò)網(wǎng)路的功能連結(jié)到 X client 去取得繪圖數(shù)據(jù),最後在妳的 X server 上面將桌面圖示繪製出來(lái)。
這對(duì)於『遠(yuǎn)端桌面』是很有幫助的!而且一部 X client 可以讓多部 X server 連接,實(shí)在是很有趣!
在預(yù)設(shè)的 Linux distribution 上面,X server/X client 剛好在同一部機(jī)器上,所以我們可以讓這個(gè) X window system
順利的在一部 Linux 系統(tǒng)上面運(yùn)作的!此外,妳會(huì)看到圖十六的中間圖示,妳會(huì)發(fā)現(xiàn)怎麼有個(gè) Window Manager (WM)?
其實(shí) Window Mananger 是個(gè)特殊的 X client ,他的功能主要是管理整個(gè) X window system 的。
因?yàn)槊總€(gè) X client 其實(shí)彼此之間並不認(rèn)識(shí)對(duì)方,所以可能會(huì)造成每個(gè) X client 的繪圖圖層彼此重疊,
且無(wú)法分辨每個(gè) X client,與無(wú)法在不同 X client 之間切換。
為了解決這方面的困擾,並且增加整個(gè) X window system 的資源管理,因此就有這個(gè) WM 的產(chǎn)生了。
目前的 WM 主要有 KDE 以及 GNOME ,當(dāng)然不止這些東西而且,不過(guò)目前是以這兩個(gè)計(jì)畫(huà)為最大,
管理介面以及畫(huà)面風(fēng)格也比較美觀漂亮!以後您要知道的是,不同的 WM 具有不同的操作介面,
而且那也只是在 X server 上面架構(gòu)出來(lái)的一個(gè)視窗管理員而已,這個(gè)視窗管理員是可變更的!
若硬要在 X window system 的各項(xiàng)元件上分析他的相關(guān)性,那妳可以知道的是:
- Linux 作業(yè)系統(tǒng)要先啟動(dòng),並且驅(qū)動(dòng)所有的硬體元件;
- X server 在作業(yè)系統(tǒng)上面啟動(dòng),並可等待使用者輸入;
- 載入 Window Manager ,準(zhǔn)備好視窗管理機(jī)制介面;
- 可在 WM 上面執(zhí)行各種 X 的應(yīng)用軟體。
無(wú)論如何,妳只要知道 Linux 上面的桌面其實(shí)是由 X window system 的系統(tǒng)來(lái)提供的,
而 X 僅只是 Linux 上面的一組程式而已,並非作業(yè)系統(tǒng),所以即使 X 死掉了,沒(méi)關(guān)係,
只要 Linux 核心活著,應(yīng)該就有辦法重新啟動(dòng) X 的!並不會(huì)造成類似『藍(lán)色死亡畫(huà)面』般的可怕現(xiàn)象...
來(lái)到重要的地方啦!對(duì)於作業(yè)系統(tǒng)來(lái)說(shuō),檔案系統(tǒng)是非常重要的喔!因?yàn)殡娔X作業(yè)系統(tǒng)本來(lái)就是要處理一些資料,
讓這些資料變成有意義的東西,那這些資料其實(shí)是放置到儲(chǔ)存媒體上面的,那妳要由儲(chǔ)存媒體上面存、取該資料,
就與檔案系統(tǒng) (file system) 有關(guān)啦!底下我們就來(lái)談一談這個(gè)恐怖的東西。
啥是檔案系統(tǒng)
我們知道一顆硬碟要被使用,第一個(gè)重點(diǎn)是需要進(jìn)行分割 (partition),分割完畢後還需要進(jìn)行格式化,
那分割槽才能夠被作業(yè)系統(tǒng)使用。關(guān)於分割我們知道他是硬碟本身所需要的動(dòng)作,前面談過(guò)很多了,所以這裡略過(guò)。
妳應(yīng)該會(huì)問(wèn)的是,那為何需要格式化?格式化的意義是什麼?
讓我們先舉個(gè)例子來(lái)說(shuō),白蟻要如何創(chuàng)造蟻窩?或許是這樣的:
- 首先,當(dāng)然是要有白蟻,包括蟻后以及白蟻工兵 (想成作業(yè)系統(tǒng));
- 他們必須要選擇環(huán)境,假設(shè)就是一塊大木板 (想成整顆硬碟);
- 然後選擇這塊木板的某一個(gè)區(qū)段出來(lái),準(zhǔn)備要在這個(gè)區(qū)段創(chuàng)造蟻窩 (想成磁碟分割);
- 根據(jù)白蟻的社會(huì),將這一區(qū)段的木板挖出適當(dāng)?shù)姆块g,當(dāng)然是有分門(mén)別類的啦 (想成就是格式化);
- 最後白蟻們就能夠利用這個(gè)蟻窩來(lái)生活啦!(作業(yè)系統(tǒng)運(yùn)作)。
與格式化有關(guān)的重點(diǎn)在第四步驟,白蟻會(huì)依據(jù)他們所需要的環(huán)境來(lái)規(guī)劃他們的空間,包括育嬰室啦、食物儲(chǔ)西藏啦、
一般白蟻休息區(qū)啦等等的,所以?shī)厱?huì)發(fā)現(xiàn)到整個(gè)木板被『格式化』成一格一格的小房間了。
同樣的,磁碟分割槽的格式化也差不多是這個(gè)情況,
我們會(huì)根據(jù)作業(yè)系統(tǒng)所需要的資料,
將硬碟依據(jù)這些準(zhǔn)備要存放的資料來(lái)創(chuàng)造出儲(chǔ)存的空間,感覺(jué)上就好像是一格一格的小房間。
此外您也必須要知道,不同的作業(yè)系統(tǒng)之間基本上可能不會(huì)認(rèn)識(shí)彼此的檔案系統(tǒng)的。舉例來(lái)說(shuō),蜜蜂應(yīng)該不知道白蟻的蟻窩結(jié)構(gòu),
白蟻應(yīng)該也不知道蜜蜂的蜂窩結(jié)構(gòu),您說(shuō)是吧!所以囉,您或許常常會(huì)聽(tīng)到,Windows 的檔案系統(tǒng)可能無(wú)法被 Linux
抓到,同樣的, Linux 的檔案系統(tǒng)對(duì)於 Windows 來(lái)說(shuō),他可能也不會(huì)知道如何讀取的!^_^
那 Linux 的檔案有哪些重要資料需要儲(chǔ)存呢?大概有兩種:
- 檔案屬性:Linux 的檔案有很多的屬性,包括是否可讀、可寫(xiě)、可執(zhí)行,以及檔案所屬人、所屬群組,
每個(gè)檔案所建立、修改過(guò)的時(shí)間等等,都算是檔案的屬性。
- 檔案內(nèi)容:例如文字檔內(nèi)的文字,資料庫(kù)檔案內(nèi)的資料,這些就是所謂的檔案內(nèi)容。
為了要存放檔案的這兩種資料,因此 Linux 的檔案系統(tǒng)在格式化的時(shí)候,通常得要針對(duì)這兩種資料來(lái)規(guī)範(fàn)出區(qū)塊才行。
Linux 的檔案系統(tǒng)通常需要這幾個(gè)東西:
- inode:inode 的區(qū)塊主要在儲(chǔ)存檔案的屬性,每個(gè) inode 有 128bytes 這麼大,
而且其中除了屬性之外,還會(huì)記錄該檔案的內(nèi)容所在的 block 區(qū)塊位置。請(qǐng)注意,每個(gè) inode 都是有號(hào)碼的;
- block:就是檔案內(nèi)容放置的地方,標(biāo)準(zhǔn)的 block 一個(gè)約 4Kbytes 這麼大,
同樣的,每個(gè) block 都有號(hào)碼喔!這個(gè)號(hào)碼可以被記錄到 inode 裡頭去,
這樣檔案才會(huì)知道他的內(nèi)容被放置到那個(gè) block 區(qū)塊;
- Super block:超級(jí)區(qū)塊,這個(gè)區(qū)塊可以記錄整個(gè)檔案系統(tǒng)的重要資料與中介資料。
重要資料包括總共有多少 inode/block,被使用掉的與剩餘的 inode/block 等等。
整個(gè)分割槽的格式化結(jié)果,造成的檔案系統(tǒng)有如底下所示:
圖十七、檔案系統(tǒng)示意圖
如圖十七所示,在 inode table 及 block area 當(dāng)中,其實(shí)是被切成好像許多小隔間的樣子,在 inode 裡面記錄檔案的屬性,
在 block 內(nèi)則是記錄檔案的實(shí)際內(nèi)容。但能不能讀取這個(gè)檔案系統(tǒng),則與驅(qū)動(dòng)程式 (模組) 有關(guān)。
常見(jiàn)的 Windows 檔案系統(tǒng)主要有:
常見(jiàn)的 Linux 檔案系統(tǒng)主要有:
基本上, FAT 與 vfat 是一樣的東西,所以在預(yù)設(shè)的狀態(tài)下,同樣的 FAT partition 可以同時(shí)被 Windows/Linux 所支援,
這也是為何國(guó)家考試中的丙級(jí)電腦裝修會(huì)考一題實(shí)作,是要將某個(gè) partition 做成 FAT 好讓多重開(kāi)機(jī)作業(yè)系統(tǒng)可以同時(shí)支援之故。
那妳會(huì)問(wèn), Linux 真的不能讀 NTFS ?而 Windows 真的不能讀 Ext2/ext3 檔案系統(tǒng)嗎?其實(shí)是可以啦!
某些團(tuán)體有推出一些驅(qū)動(dòng)程式 (模組),透過(guò)這些模組的幫忙,Linux 可以讀到 NTFS 的檔案系統(tǒng)內(nèi)容,
而 Windows 可以讀到 Ext2/ext3 的檔案系統(tǒng)說(shuō)。
啥是 Linux 目錄樹(shù)資料架構(gòu)?
在前一小節(jié)我們談到了 inode 與 block 這兩個(gè)東西,也知道了檔案的資料其實(shí)是(1)屬性與(2)內(nèi)容兩者,
而我們可以透過(guò) inode 記錄的 block 號(hào)碼來(lái)取得檔案的屬性與內(nèi)容資料。所以,其實(shí)我們只要知道
inode 號(hào)碼就能夠知道一個(gè)檔案的完整資料了。可是你有沒(méi)有想到一件事,
那就是『
我怎麼知道某一個(gè)檔案的屬性是記錄在那個(gè) inode 號(hào)碼上?』
此時(shí)就得要透過(guò)目錄樹(shù)了 (directory tree)。
如同前面提到的,Linux 已經(jīng)沒(méi)有所謂的裝置名稱了,所以當(dāng)然也沒(méi)有 C, D... 槽。那麼我們的檔案要如何放置?
其實(shí) Linux (或 Unix-Like, 類 Unix 系統(tǒng)) 使用的是目錄樹(shù)。最頂層的目錄為根目錄 (/) ,所有的目錄都在這個(gè)根目錄之後。
這個(gè)目錄樹(shù)也是整個(gè)檔案的基礎(chǔ)!如果你以檔案總管的想法來(lái)思考的話,如同下圖所示:
圖十八、檔案總管的目錄示意圖
在圖十八中方框圈選起來(lái)的部分,那就是目錄!而檔案總管中最頂層的目錄稱為『桌面』,那在 Linux 底下則是根目錄。
妳可以使用下圖來(lái)稍微瞭解一下目錄樹(shù)的概念:
圖十九、Linux 系統(tǒng)的目錄樹(shù)示意圖
仔細(xì)看一下圖十九的內(nèi)容,第一行有個(gè) bin ,倒數(shù)第二行也有個(gè) bin ,那麼相同檔名可以同時(shí)存在嗎?
其實(shí)這兩個(gè)檔案是不同檔名的喔!因?yàn)閮烧叻謩e是:
看出不同了吧?因?yàn)樗麄內(nèi)绻麖母夸泴?xiě)起的話,該檔名就會(huì)變成獨(dú)一無(wú)二的了!所以說(shuō),最頂層這個(gè)根目錄是真的很重要?。?
然後要知道的是,那這個(gè)目錄樹(shù)是怎麼跟分割槽連結(jié)在一起啊?
檔案系統(tǒng)與目錄樹(shù)的關(guān)係(掛載)
我們知道 Windows 的分割槽是以 C, D...
等的方式來(lái)處理的,而這個(gè) C, D... 則是掛在『我的電腦』底下,那 Linux 的目錄樹(shù)與分割槽的關(guān)係又如何?
圖二十、目錄樹(shù)與分割槽之間的相關(guān)性
如上圖,假設(shè)我的硬碟分為兩槽,由於根目錄一定要存在,所以我們可以將根目錄想成是一個(gè)『進(jìn)入點(diǎn)』,
也就是說(shuō),所有的根目錄底下的檔案都是來(lái)自於 partition 1 的意思。因此,我們只要知道根目錄與 partition 1
之間的 inode 對(duì)應(yīng),那麼就能夠依序推出所有檔案的 inode 號(hào)碼了!因?yàn)槊總€(gè)目錄與檔案之間都有相關(guān)性嘛!
那如果你想要有第二個(gè) partition 呢?如上圖所示,我將 /home 獨(dú)立出來(lái)另一個(gè) partition 2 的分割槽,
那 /home 這個(gè)目錄又成為一個(gè)進(jìn)入點(diǎn)了,所有在 /home 底下的資料都是放到 partition 2 當(dāng)中的。
其實(shí)判斷某個(gè)檔案在那個(gè) partition 底下是很簡(jiǎn)單的,透過(guò)反向追蹤即可。以上圖二十來(lái)說(shuō),
當(dāng)我想要知道 /home/vbird/test 這個(gè)檔案在那個(gè) partition 時(shí),由 test --> vbird --> home --> / ,
看那個(gè)『進(jìn)入點(diǎn)』先被查到,那就是使用的進(jìn)入點(diǎn)了。所以 test 使用的是 /home 這個(gè)進(jìn)入點(diǎn)而不是 / 喔!
在 Linux 的專業(yè)術(shù)語(yǔ)方面,我們將 / 與 partition 1 的關(guān)係稱為『掛載 (mount)』,
而根目錄就被稱為『掛載點(diǎn)』了。
掛載點(diǎn)一定是目錄,這個(gè)不要忘記了。
現(xiàn)在讓我們來(lái)想一想,那我的電腦如何讀取光碟呢?這個(gè)很重要吧!
在 Windows 裡面使用的是『光碟機(jī)』的代號(hào)方式處理(假設(shè)為 E 槽時(shí)),但在 Linux 底下我們依舊使用目錄樹(shù)喔!
在預(yù)設(shè)的情況下, Linux 是將光碟機(jī)的資料放置到 /media/cdrom 裡頭去的,照這樣來(lái)說(shuō),
如果光碟片裡面有個(gè)檔案檔名為『我的檔案』時(shí),那麼這個(gè)檔案是在哪裡?
- Windows:桌面\我的電腦\E:\我的檔案
- Linux: /medai/cdrom/我的檔案
不過(guò)以『掛載』來(lái)說(shuō),如果我將這個(gè)光碟片掛載到 /mnt 這個(gè)掛載點(diǎn)呢? (假設(shè)有 /mnt 這個(gè)目錄存在時(shí)),
那個(gè)檔案最終會(huì)在哪裡?如果你能夠說(shuō)出『在 /mnt/我的檔案』,這表示您已經(jīng)知道掛載的意義了!
這裡最容易搞混,因?yàn)樗c Windows 的分割槽代號(hào)完全不一樣!