Linux Embedded System
一個簡單的Linux系統架構,如下圖,主要分為4個部份:
- Hardware
- Bootloader
- Linux Kernel
- User space (Applications)
除了Hardware以外,Buildroot專案建制過程中其他的3個部份都會自己建置,如下圖所示,所有的元件都是從source code開始,經過cross-compiler建制以後,變成了相對應的映像檔或binary檔。
所以建制完後,主要會有「toolchain」, 「bootloader 映像檔」, 「kernel 映像檔」和「root fileSystem 映像檔」,整個流程如下圖所示:
假設我們的專案現在已經建制好已經燒錄到儲存裝置裡面(Flash or EMMC ....),並且插上電源後:
第 1 個跑的程式就是bootloader,他會啟動一些基本的驅動程式,以供開機流程使用,最終就是將kerner載入到記憶體裡後將控制權轉交給Kernel。
第2個就是Kernel會初始化硬體裝置和我們的檔案系統,然後執行第一個程式init。
第3步init就會啟動剩下來user space的service和application。
第4步我們通常就會看到login shell展示再我們面前了。
(來源 : free-electrons )