要了解 Linux 之前,就不能不知道什么是操作系統 ( Operation System, OS ),所以,首先我們來簡單的說一說什么是操作系統吧!先來想一想,當我們使用計算機時,屏幕上面顯示的咚咚是由哪里來的?嗯!是由顯示卡與屏幕顯像的;那么你現在可以藉由網絡看到這篇文章,則是藉由 Internet 、網絡卡、網絡線以及所有相關的電子器材與網絡器材所完成的一項任務!如果你要看 VCD 呢?那么就需要光驅、光盤、聲卡的發聲等等的支持。這么說來的話,所以在『工作』的東西都是『硬件』的工作呀!對了!就是這些計算機硬件在工作的。那么硬件怎么工作呢?那就是藉由『操作系統』來達成的啰!這個操作系統就是在溝通你這個使用者跟硬件之間的訊息傳遞啦!也就是說,沒有操作系統,那么你的計算機硬件就只是一堆廢鐵,什么工作都不能做的!
那么操作系統里面含有什么東西呢?簡單的來說,操作系統主要分為兩個東西,一個是『核心』、一個是『一堆核心提供的工具』我們以使用者常使用的 Windows 計算機來做一個簡單的說明好了。大家應該都使用過 Windows 計算機里面的檔案總管吧?那么當你開啟檔案總管的時候,他是否會顯示你硬盤當中的資料?這個顯示硬盤里面的資料,就是『核心』幫你做的,但是,你要核心去顯示硬盤哪一個目錄下的資料,則是由『檔案總管』這個『工具』幫你達成的!這樣可以理解嗎?再來,如果您曾經使用過 Windows 2000 或 Windows XP 的話,那就更好了!你就應該聽過有所謂的『FAT32 與 NTFS 檔案格式』吧?在 Windows 98 這個早期的 Windows 版本中,他并無法讀取或者是找到 Windows XP 的 NTFS 檔案格式的硬盤,為什么呢?因為他的『核心』本來就不認識 NTFS 啊!所以,即使你有檔案總管,但是由于核心根本不認識 NTFS ,所以,檔案總管也是沒有能力幫你達到你想要做的事情!這樣應該就更清楚了吧?沒錯!你的整個硬件是由核心來管理的,而如果核心不認識你的硬件,那么你將無法使用該硬設備,例如上面提到的 NTFS 檔案格式的硬盤!核心就是『 Kernel 』,他是一個操作系統的最底層的東西,由他來掌管整個硬件資源的工作狀態,而 Linux 有 Linux 自己的核心, Windows 也有他自己的核心。所以說,當有新的硬件加入到你的系統中的時候,那么若你的『 Kernel 』并沒有支持他的時候,呵呵,這個新的硬件就肯定無法工作的,因為控制他的 Kernel 并不認識他呀!這樣了解了嗎?!先有個概略性的了解,后面我們提到『核心編譯』的時候會在更詳細的談到他!
一般來說,Kernel 管理的事項有:
System call interface :一些服務與 kernel 溝通之后,將硬件的資源進一步的利用;
Process control :系統過程控制中心,所以核心編的越小越好;
Memory management :控制整個系統的內存管理;
File system management :檔案系統的管理,例如 I/O 等等的工作啦!還有不同檔案格式的支持啦等等,如果你的核心不認識某個檔案系統,那么您將無法使用該檔案格式的檔案啰!例如上面提到的 Windows 98 不認識 NTFS 檔案格式的硬盤;
Device drivers :就如同上面提到的,硬件的管理是 Kernel 的主要工作之一,當然啰,裝置的驅動程序就是核心需要做的事情啦!好在目前都有所謂的『可加載模塊』功能,可以將驅動程序編輯成模塊,就不需要重新的編譯核心啦!這個也會在后續的核心編譯當中提到的!
所以啦!所有硬件的資源都是他來管理的!至于我們要達成一些工作時,除了藉由核心本身提供的功能 ( 例如上面提到的檔案總管 ) 之外,還可以藉由其它的應用軟件來達成喔!舉個例子來說,你要看 VCD 影片是吧!那么除了 Windows 提供的媒體播放程序之外,你也可以自行安裝 VCD 播放程序來播放 VCD 啰!這個播放程序就是應用軟件啰,而這個應用軟件可以幫你去控制核心來工作 ( 就是放映影片啰 ) ,因此,我們可以這樣說,核心是控制整個硬件支持的咚咚,也是一個操作系統的最底層,然而要讓整個操作系統更完備的話,那還需要含有相當豐富的核心提供的工具,以及核心相關的應用軟件來支持!
OK!提到這里那么您知道 Linux 是什么了嗎?呵呵!對啦!其實 Linux 就是一個操作系統,這個操作系統里頭含有最主要的 kernel 以及 kernel 提供的工具啦!他提供了一個完整的操作系統當中最底層的硬件控制與資源管理的完整架構,這個架構是沿襲 Unix 良好的傳統來的,所以相當的穩定而功能強大!此外,由于這個優良的架構可以在目前的個人計算機 ( X86 系統 ) 上面跑,所以很多的軟件開發者將他們的工作心血移轉到這個架構上面,那就是很多的應用軟件啦!雖然 Linux 僅是其核心與核心提供的工具,不過,由于核心、核心工具與這些軟件開發者提供的軟件的整合,使得 Linux 成為一個更完整的、功能強大的操作系統啰!我們可以將 Linux 的系統與使用者的相關性看成底下的圖標:
圖一、使用者、使用者接口與核心工具、核心、與硬件之相關性


