9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
學習啦 > 學習電腦 > 操作系統 > Linux教程 >

linux2.4/2.6內核kernel對Initrd的處理流程

時間: 若木635 分享

  linux2.4內核kernel對 Initrd 的處理流程

  為了使讀者清晰的了解Linux2.6內核initrd機制的變化,在重點介紹Linux2.6內核initrd之前,先對linux2.4內核的 initrd進行一個簡單的介紹。

  Linux2.4內核的initrd的格式是文件系統鏡像文件, linux2.4內核對initrd的處理流程如下:

  1. boot loader把內核以及/dev/initrd的內容加載到內存,/dev/initrd是由boot loader初始化的設備,存儲著initrd。

  2. 在內核初始化過程中,內核把 /dev/initrd 設備的內容解壓縮并拷貝到 /dev/ram0 設備上。

  3. 內核以可讀寫的方式把 /dev/ram0 設備掛載為原始的根文件系統。

  4. 如果 /dev/ram0 被指定為真正的根文件系統,那么內核跳至最后一步正常啟動。

  5. 執行 initrd 上的 /linuxrc 文件,linuxrc 通常是一個腳本文件,負責加載內核訪問根文件系統必須的驅動, 以及加載根文件系統。

  6. /linuxrc 執行完畢,真正的根文件系統被掛載。

  7. 如果真正的根文件系統存在 /initrd 目錄,那么 /dev/ram0 將從 / 移動到 /initrd。否則如果 /initrd 目錄不存在, /dev/ram0 將被卸載。

  8. 在真正的根文件系統上進行正常啟動過程 ,執行 /sbin/init。

  linux2.4 內核的 initrd 的執行是作為內核啟動的一個中間階段,也就是說 initrd 的 /linuxrc 執行以后,內核會繼續執行初始化代碼,我們后面會看到這是 linux2.4 內核同 2.6 內核的 initrd 處理流程的一個顯著區別。

  linux2.6 內核kernel對 Initrd 的處理流程

  linux2.6 內核支持兩種格式的 initrd,一種是前面 linux2.4 內核那種傳統格式的文件系統鏡像-image-initrd,它的制作方法同 Linux2.4 內核的 initrd 一樣,其核心文件就是 /linuxrc。

  另外一種格式的 initrd 是 cpio 格式的,這種格式的 initrd 從 linux2.5 起開始引入,使用 cpio 工具生成,其核心文件不再是 /linuxrc,而是 /init。

  盡管 linux2.6 內核對 cpio-initrd和 image-initrd 這兩種格式的 initrd 均支持,但對其處理流程有著顯著的區別,下面分別介紹 linux2.6 內核對這兩種 initrd 的處理流程。

  cpio-initrd 的處理流程

  1. boot loader 把內核以及 initrd 文件加載到內存的特定位置。

  2. 內核判斷initrd的文件格式,如果是cpio格式。

  3. 將initrd的內容釋放到rootfs中。

  4. 執行initrd中的/init文件,執行到這一點,內核的工作全部結束,完全交給/init文件處理。

  image-initrd的處理流程

  1. boot loader把內核以及initrd文件加載到內存的特定位置。

  2. 內核判斷initrd的文件格式,如果不是cpio格式,將其作為image-initrd處理。

  3. 內核將initrd的內容保存在rootfs下的/initrd.image文件中。

  4. 內核將/initrd.image的內容讀入/dev/ram0設備中,也就是讀入了一個內存盤中。

  5. 接著內核以可讀寫的方式把/dev/ram0設備掛載為原始的根文件系統。

  6. .如果/dev/ram0被指定為真正的根文件系統,那么內核跳至最后一步正常啟動。

  7. 執行initrd上的/linuxrc文件,linuxrc通常是一個腳本文件,負責加載內核訪問根文件系統必須的驅動, 以及加載根文件系統。

  8. /linuxrc執行完畢,常規根文件系統被掛載

  9. 如果常規根文件系統存在/initrd目錄,那么/dev/ram0將從/移動到/initrd。否則如果/initrd目錄不存在, /dev/ram0將被卸載。

  10. 在常規根文件系統上進行正常啟動過程 ,執行/sbin/init。

  通過上面的流程介紹可知,Linux2.6內核對image-initrd的處理流程同linux2.4內核相比并沒有顯著的變化, cpio-initrd的處理流程相比于image-initrd的處理流程卻有很大的區別,流程非常簡單。

  cpio-initrd同image-initrd的區別與優勢

  cpio-initrd的制作方法更加簡單 ,而傳統initrd的制作過程比較繁瑣,后面有詳細介紹。

  cpio-initrd的內核處理流程更加簡化

  通過上面initrd處理流程的介紹,cpio-initrd的處理流程顯得格外簡單,通過對比可知cpio-initrd的處理流程在如下兩個方面得到了簡化:

  1. cpio-initrd并沒有使用額外的ramdisk,而是將其內容輸入到rootfs中,其實rootfs本身也是一個基于內存的文件系統。這樣就省掉了ramdisk的掛載、卸載等步驟。

  2. cpio-initrd啟動完/init進程,內核的任務就結束了,剩下的工作完全交給/init處理;而對于image-initrd,內核在執行完 /linuxrc進程后,還要進行一些收尾工作,并且要負責執行真正的根文件系統的/sbin/init。

  cpio-initrd的職責更加重要

  cpio-initrd不再象image-initrd那樣作為linux內核啟動的一個中間步驟,而是作為內核啟動的終點,內核將控 制權交給cpio-initrd的/init文件后,內核的任務就結束了,所以在/init文件中,我們可以做更多的工作,而不比擔心同內核后續處理的銜 接問題。當然目前linux發行版的cpio-initrd的/init文件的內容還沒有本質的改變,但是相信initrd職責的增加一定是一個趨勢。

75359 主站蜘蛛池模板: 午夜福利国产盗摄久久性| 亚洲中文字幕日产无码成人片| 与子乱对白在线播放单亲国产| 麻豆精品在线| 免费人成视频网站在线观看18| 欧洲亚洲成av人片天堂网| 重口SM一区二区三区视频| 狠狠噜天天噜日日噜| 亚洲精品一区久久久久一品av| 久久国产精品老女人| 色综合久久综合中文综合网| 日本阿v片在线播放免费| 综合色久七七综合尤物| jk白丝喷浆| 一区二区在线观看 激情| 麻豆国产成人AV在线播放| 国产精品日日摸夜夜添夜夜添无码 | 最新国内精品自在自线视频| 久久婷婷大香萑太香蕉AV人| 成年午夜无码av片在线观看| 亚洲第一人伊伊人色综合| 国产精品久久久尹人香蕉| 免费人成在线观看网站| 日日碰狠狠躁久久躁96avv| 蜜臀av一区二区三区精品| 欧洲精品色在线观看| 亚洲欧美成人a∨观看| 国产精品一二二区视在线| 国产熟女激情一区二区三区| 国产午夜福利小视频合集| 日韩精品一区二区蜜臀av| 亚洲色大成网站www在线| 久女女热精品视频在线观看| 欧美喷水抽搐magnet| 免费乱理伦片在线观看| 精品午夜福利在线视在亚洲 | L日韩欧美看国产日韩欧美| 国产一区精品综亚洲av| 美欧日韩一区二区三区视频| 亚洲精品二区在线播放| 香蕉在线精品一区二区|