国产宅男网站在线|亚洲A级性爱免费视频|亚洲中精品级在线|午夜福利AA毛

  • <dd id="gf5jf"><th id="gf5jf"></th></dd>

    <cite id="gf5jf"><label id="gf5jf"></label></cite>
  • <div id="gf5jf"><listing id="gf5jf"></listing></div>
    學(xué)習(xí)啦>學(xué)習(xí)電腦>操作系統(tǒng)>Linux教程>

    initrd與initramfs區(qū)別

    時(shí)間: 若木635 分享

      initrd與initramfs

      Linux 的 initrd 技術(shù)是一個(gè)非常普遍使用的機(jī)制,linux2.6 內(nèi)核的 initrd 的文件格式由原來(lái)的文件系統(tǒng)鏡像文件轉(zhuǎn)變成了 cpio 格式,變化不僅反映在文件格式上, linux 內(nèi)核對(duì)這兩種格式的 initrd 的處理有著截然的不同。

      initrd:

      ram disk是一個(gè)基于ram的塊設(shè)備,因此它占據(jù)了一塊固定的內(nèi)存,而且事先要使用特定的工具比如mke2fs格式化,還需要一個(gè)文件系統(tǒng)驅(qū)動(dòng)來(lái)讀寫(xiě)其上的文件。

      如果這個(gè)disk上的空間沒(méi)有用完,這些未用的內(nèi)存就浪費(fèi)掉了,并且這個(gè)disk的空間固定導(dǎo)致容量有限,要想裝入更多的文件就需要重新格式化。

      由于Linux的塊設(shè)備緩沖特性, ram disk上的數(shù)據(jù)被拷貝到page cache(對(duì)于文件數(shù)據(jù))和dentry cache(對(duì)于目錄項(xiàng)), 這個(gè)也導(dǎo)致內(nèi)存浪費(fèi).

      initramfs:

      最初的想法是Linus提出的: 把cache當(dāng)作文件系統(tǒng)裝載。

      他在一個(gè)叫ramfs的cache實(shí)現(xiàn)上加了一層很薄的封裝,其他內(nèi)核開(kāi)發(fā)人員編寫(xiě)了一個(gè)改進(jìn)版tmpfs,這個(gè)文件系統(tǒng)上的數(shù)據(jù)可以寫(xiě)出到交換分區(qū),而且可以設(shè)定一個(gè)tmpfs裝載點(diǎn)的最大尺寸以免耗盡內(nèi)存。initramfs就是tmpfs的一個(gè)應(yīng)用。

      優(yōu)點(diǎn):

      (1)tmpfs隨著其中數(shù)據(jù)的增減自動(dòng)增減容量.

      (2)在tmpfs和page cache/dentry cache之間沒(méi)有重復(fù)數(shù)據(jù).

      (3)tmpfs重復(fù)利用了Linux caching的代碼, 因此幾乎沒(méi)有增加內(nèi)核尺寸, 而caching的代碼已經(jīng)經(jīng)過(guò)良好測(cè)試, 所以tmpfs的代碼質(zhì)量也有保證.

      (4)不需要額外的文件系統(tǒng)驅(qū)動(dòng).

      另外, initrd機(jī)制被設(shè)計(jì)為舊的"root="機(jī)制的前端,而非其替代物,它假設(shè)真正的根設(shè)備是一個(gè)塊設(shè)備, 而且也假設(shè)了自己不是真正的根設(shè)備,這樣不便將NFS等作為根文件系統(tǒng)。最后/linuxrc不是以PID=1執(zhí)行的, 因?yàn)?這個(gè)進(jìn)程ID是給/sbin/init保留的。 initrd機(jī)制找到真正的根設(shè)備后將其設(shè)備號(hào)寫(xiě)入/proc/sys/kernel/real-root-dev, 然后控制轉(zhuǎn)移到內(nèi)核由其裝載根文件系統(tǒng)并啟動(dòng)/sbin/init。

      initramfs則去掉了上述假設(shè), 而且/init以PID=1執(zhí)行, 由init裝載根文件系統(tǒng)并用exec轉(zhuǎn)到真正的/sbin/init, 這樣也導(dǎo)致一個(gè)更為干凈漂亮的設(shè)計(jì)。

    initrd與initramfs區(qū)別

    initrd與initramfs Linux 的 initrd 技術(shù)是一個(gè)非常普遍使用的機(jī)制,linux2.6 內(nèi)核的 initrd 的文件格式由原來(lái)的文件系統(tǒng)鏡像文件轉(zhuǎn)變成了 cpio 格式,變化不僅反映在文件格式上, linux 內(nèi)核對(duì)這兩種格式的 initrd 的處理有著截然的不
    推薦度:
    點(diǎn)擊下載文檔文檔為doc格式

    精選文章

    • 什么是initrd
      什么是initrd

      什么是initrd initrd 的英文含義是 boot loader initialized RAM disk,就是由 boot loader 初始化的內(nèi)存盤(pán)。 在 linux內(nèi)核啟動(dòng)前, boot loader 會(huì)將存儲(chǔ)介質(zhì)中的 initrd 文件加

    • 如何解決The UTS Release version in include/linux/version.h
      如何解決The UTS Release version in include/linux/version.h

      The UTS Release version in include/linux/version.h does not match current version 問(wèn)題 打開(kāi)你的kernel里的version_vars.mk,位于 /linux-2.6.33.2/debian/ruleset/misc/version_vars.mk 目錄下。

    • 如何最簡(jiǎn)內(nèi)核配置
      如何最簡(jiǎn)內(nèi)核配置

      最簡(jiǎn)內(nèi)核配置 怎樣得到一個(gè)最簡(jiǎn)內(nèi)核配置呢? (1)首先,用內(nèi)核的 allnoconfig 配置目標(biāo),得到一個(gè)最最基本的內(nèi)核配置。即,執(zhí)行下面的命令: make allnoconfig

    • 如何編譯內(nèi)核及制作RPM包
      如何編譯內(nèi)核及制作RPM包

      編譯內(nèi)核及制作RPM包 編譯步驟 第一步: # cd /home # wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.5.tar.gz # tar -zxvf linux-2.6.32.5.tar.gz -C /usr/src # cd /usr/src # l

    75354