initramfs的執行過程

2021-07-10 21:40:22 字數 1118 閱讀 2999

**:  

首先說明我從事的是嵌入式行業,所以以後的

linux

我用的晶元是歐洲

gaisler research

公司的leon3(sparc架構)

,核心是

snapgear(

包含uclinux2.0

和linux2.6)

,已經做好移植工作。

周一的時候,把

linux2.6.21

leon3

的板子上執行,結果莫名退出。

檢查的時候主要從配置出發,結果發現

gaisler

的預設配置有問題。它配置

initial root filesystem

是romfs

,其實從

linux2.6

核心開始這必須是

initramfs

。並且我們考慮到

sram

linux

,所以我們使用了

sdram。

debug

,可是kgdb

沒有for sparc/leon

的patch

。所以只能

printk

了。錯誤提示如下:

grlib> lo image.dsu

......

ip route cache hash table entries: 1024 (order: 0, 4096 bytes)

tcp established hash table entries: 512 (order: 0, 4096 bytes)

tcp bind hash table entries: 512 (order: -1, 2048 bytes)

tcp: hash tables configured (established 512 bind 512)

tcp reno registered

initramfs:populate_rootfs:first line:allen

按照提示發現**在

../linux2.6.21.1/init/initramfs.c

static int __init populate_rootfs(void)

initramfs 的解壓和打包

initrd 的英文含義是 boot loader initialized ram disk,就是由 boot loader 初始化的記憶體盤。在 linux核心啟動前,boot loader 會將儲存介質中的 initrd 檔案載入到記憶體,核心啟動時會在訪問真正的根檔案系統前先訪問該記憶體中的 ...

initrd及initramfs檔案的製作

啟動執行流程initrd和 initramfs 中的檔案 在系統啟動的時候被執行 此兩者二者只可取其一或取0 取0為 無init 流程 二者都有則為initrd initrd執行流程在核心流程上要早於initramfs.也就是 1 2 只可取其一或取0 在整個核心流程上如下 initrd執行流程 1...

php的執行過程

1.我們從未手動開啟過php的相關程序,它是隨著apache的啟動而執行的 2.php通過mod php5.so模組和apache相連 具體說來是sapi,即伺服器應用程式程式設計介面 3.php總共有三個模組 核心 zend引擎 以及擴充套件層 4.php核心用來處理請求 檔案流 錯誤處理等相關操...