嵌入式Linux核心介紹 張建波
Linux最早是由芬蘭的Linus Torvalds為在英特爾x86架構上提供一個自由免費的類Unix作業系統而開發的。準確來說,Linus Torvalds僅僅是完成了Linux 的“核心”。
也就是說 Linux 核心 =/= Linux作業系統。
現在PC機上比較流行的Redhat 、ubuntu等等都是基於Linus Torvalds開發的Linux核心擴充、開發而來的。
關於Linux版本的問題:
Linux 和 微軟的Windows不同,Linux的版本主要是由核心的版本和作業系統的版本2部分組成,當然案頭(Desktop)也可以單獨算。
| |
Linux作業系統 |
系統版本 |
Linux核心版本 |
| 1 |
Redhat |
9.0 |
2.4.20 |
| 2 |
Redhat |
AS 4.0 |
2.6.9-5.EL |
| 3 |
Ubuntu |
9.0 |
2.6.31-14 |
| 3 |
Ubuntu |
10.0.1 |
2.6.32-21 |
| 3 |
Ubuntu |
11.10 |
3.0.3 |
| 3 |
Ubuntu |
12 |
3.0.3 |
從上表可以看出,不同的Linux的作業系統,可能會採用不同的Linux核心。
Linux核心的網站 http://www.kernel.org/
通常情況下,Linux核心的升級、更新速度要比Linux的作業系統升級速度快。因此,很多發燒友喜歡自己“編譯核心”、“升級核心”。
| 一般地,可以從Linux核心版本號碼來區分系統是否是Linux穩定版還是測試版。以版本2.4.0為例,2代表主要版本號,4代表次版本號碼,0代表改動較小的末版本號碼。在版本號碼中,序號的第二位為偶數的版本表明這是一個可以使用的穩定版本,如2.2.5,而序號的第二位為奇數的版本一般有一些新的東西加入,是個不一定很穩定的測試版本,如2.3.1。這樣穩定版本來源於上一個測試版升級版本號碼,而一個穩定版本發展到完全成熟後就不再發展。 |
Linux核心的開發和規範一直是由Linux社區控制著,版本也是唯一的。作業系統的核心版本指的是在Linux本人領導下的開發小組開發出的系統核心的版本號碼。自1994年3月14日發布了第一個正式版本Linux 1.0以來,每隔一段時間就有新的版本或其修訂版公布。
Linux核心的組成:
簡單說,Linux核心就像人的“心臟”。
Linux核心由進程管理(process management)、定時器(timer)、中斷管理(interrupt management)、記憶體管理(memory management)、模組管理(module management)、虛擬檔案系統介面(VFS layer)、檔案系統(file system)、裝置驅動程式(device driver)、處理序間通訊(inter-process communication)、 網路管理(network management)等組成。
嵌入式Linux 和 PC機Linux作業系統啟動的區別:
在PC機上,Linux通常情況下是通過lilo 或 grub啟動的。
因為lilo存在著一個1024柱面的限制,並且更改了磁碟上的啟動資訊檔後需要重新啟動系統才能同步446位元組的內容,因為lilo的缺陷,已經被grub所取代.現在的絕大多數類linux系統都採用grub做boot
在嵌入式Linux上,例如ARM9(SC2410、SC6410等等),則是通過U-BOOT進行啟動的。
無論是lilo、grub或u-boot都是負責“解壓縮核心”、“載入核心”、“啟動核心”這麼幾個過程。
注意:現在的Linux核心通常情況下都是壓縮的。
嵌入式Linux核心 和 PC機Linux核心的區別
嵌入式Linux核心實際是Linux核心的一個裁剪版本,經過裁剪、定製、修改、交叉編譯後得到的。因此,理論上,任何人都可以從Linux 核心官網下載最新的核心進行移植。
Linux核心定製
對於Linux的核心的定製,其實並不像想象中的那麼複雜。通過結合“硬體”、“需求“的實際情況對Linux系統核心進行合理的修改,可以有效簡化Linux核心,去除不需要的組件,從而提供更快的系統啟動速度,釋放更多的記憶體資源。
感興趣的朋友,可以先從PC機的Linux核心定製開始試試。
本系列文章由ex_net(張建波)編寫,轉載請註明出處。http://blog.csdn.net/ex_net/article/details/7908517作者:張建波 郵箱: 281451020@qq.com 電話:13577062679 歡迎來電交流!