一個典型的嵌入式Linux系統按照存儲空間的劃分通常包括引導區,內核區與文件系統區,引導區存放Boot Loader與系統參數,內核區存放特定嵌入式平台的定制Linux內核
文件系統包括根文件系統和建立與Flash內存設備之上的文件系統。圖形界面系統和用戶應用程序就放在文件系統區中
1:Boot Loader占用的空間一般都比較小,它後面緊挨著一個啟動參數區,用來保存Linux內核啟動參數和用戶啟動配置。
2:Boot Loader程序是嵌入式系統的引導加載程序,是系統加電後運行的第一段軟件代碼。Boot Loader程序的主要任務就是初始化硬件設備,建立內存空間的映射圖,從而將系統的
軟硬件環境帶到一個合適的環境中,Boot Loader程序最重要的任務就是啟動Linux內核
3:文件系統是嵌入式LInux系統占用空間最大的部分,它通常占據了Boot Loader和內核之外的所有空間,Linux啟動完畢之後會加載一個根文件系統,根文件系統包含了系統必備
配置信息,庫函數和shell解釋器以及核心目錄。其他的文件系統則可以掛載在根文件系統下面
‘
Boot Loader 一般通過JTAG接口和仿真器燒寫到存儲器,而內核和文件系統則可以通過串口和網口燒寫到存儲器。
Linux內核主要由五個部分組成:進程調度,內存管理,文件系統,網絡子系統,以及設備管理。
內存管理:(Memory Management) Linux的內存管理支持虛擬內存,采取的是分頁機制,內存管理子系統允許多個進程安全的共享主內存區域。通過內存管理,Linux可以支
持超過實際內存大小的內存地址,磁盤可以當作內存,磁盤與內存之間可以相互交換。
設備管理:Linux支持字符設備,塊設備,以及網絡設備三類硬件設備,並提供與平台設備的概念與sys文件系統來管理各種設備,linux的設備驅動可以編譯進入內核,在系統啟
動時加載,也可以作為模塊形式動態加載
Linux的代碼結構
linux 2.6的內核代碼非常龐大,其中設備驅動程序約占一半
目錄
arch 硬件平台相關代碼
block 塊設備核心代碼
crypto 加密函數庫
documentation 有關內核各個部分通用解釋和注釋的文本文件
drivers 設備驅動相關代碼
fs 文件系統相關代碼
include 內核頭文件
init 內核初始化代碼
ipc 系統進程間的通信
kernel 內核核心部分:進程調度,中斷處理,信號處理,模塊
lib 通用內核函數
mm 內存管理
net 網絡通信協議代碼
samples 內核例子
security 系統安全相關代碼
sound 音頻體系代碼