在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 關(guān)于嵌入式設(shè)備上的Linux 系統(tǒng)開發(fā)

            關(guān)于嵌入式設(shè)備上的Linux 系統(tǒng)開發(fā)

            作者: 時間:2012-08-28 來源:網(wǎng)絡(luò) 收藏

            簡單閃存分區(qū)的節(jié)點(diǎn)

            User device node Major number Minor number

            Bootloader /dev/mtdblock0 31 0

            Kernel /dev/mtdblock1 31 1

            Filesystem /dev/mtdblock2 31 2

            在本例中,引導(dǎo)裝載程序必須將有關(guān) root 節(jié)點(diǎn)(/dev/mtdblock2)和可以在閃存中找到文件的地址(本例中是 FLASH_BASE_ADDRESS + 0x04000000 )的正確參數(shù)傳遞到內(nèi)核。一旦完成分區(qū),閃存就準(zhǔn)備裝入或掛裝文件

            中 MTD 子的主要目標(biāo)是在系統(tǒng)的硬件驅(qū)動程序和上層,或用戶模塊之間提供通用接口。硬件驅(qū)動程序不需要知道象 JFFS2 和 FTL 那樣的用戶模塊使用的方法。所有它們真正需要提供的就是一組對底層閃存系統(tǒng)進(jìn)行 read 、 write 和 erase 操作的簡單例程。

            設(shè)備的文件系統(tǒng)

            系統(tǒng)需要一種以結(jié)構(gòu)化格式存儲和檢索信息的方法;這就需要文件系統(tǒng)的參與。Ramdisk(請參閱 參考資料)是通過將計(jì)算機(jī)的 RAM 用作設(shè)備來創(chuàng)建和掛裝文件系統(tǒng)的一種機(jī)制,它通常用于無盤系統(tǒng)(當(dāng)然包括微型設(shè)備,它只包含作為永久存儲媒質(zhì)的閃存芯片)。

            用戶可以根據(jù)可靠性、健壯性和/或增強(qiáng)的功能的需求來選擇文件系統(tǒng)的類型。下一節(jié)將討論幾個可用選項(xiàng)及其優(yōu)缺點(diǎn)。

            第二版擴(kuò)展文件系統(tǒng)(Ext2fs)

            Ext2fs 是 事實(shí)上的標(biāo)準(zhǔn)文件系統(tǒng),它已經(jīng)取代了它的前任 D 擴(kuò)展文件系統(tǒng)(或 Extfs)。Extfs 支持的文件大小最大為 2 GB,支持的最大文件名稱大小為 255 個字符 D 而且它不支持索引節(jié)點(diǎn)(包括數(shù)據(jù)修改時間標(biāo)記)。Ext2fs 做得更好;它的 優(yōu)點(diǎn)是:

            Ext2fs 支持達(dá) 4 TB 的內(nèi)存。

            Ext2fs 文件名稱最長可以到 1012 個字符。

            當(dāng)創(chuàng)建文件系統(tǒng)時,管理員可以選擇邏輯塊的大小(通常大小可選擇 1024、2048 和 4096 字節(jié))。

            Ext2fs 了實(shí)現(xiàn)快速符號鏈接:不需要為此目的而分配數(shù)據(jù)塊,并且將目標(biāo)名稱直接存儲在索引節(jié)點(diǎn)(inode)表中。這使性能有所提高,特別是在速度上。

            因?yàn)?Ext2 文件系統(tǒng)的穩(wěn)定性、可靠性和健壯性,所以幾乎在所有基于 的系統(tǒng)(包括臺式機(jī)、服務(wù)器和工作站 D 并且甚至一些設(shè)備)上都使用 Ext2 文件系統(tǒng)。然而,當(dāng)在嵌入式設(shè)備中使用 Ext2fs 時,它有一些 缺點(diǎn):

            Ext2fs 是為象 IDE 設(shè)備那樣的塊設(shè)備設(shè)計(jì)的,這些設(shè)備的邏輯塊大小是 512 字節(jié),1 K 字節(jié)等這樣的倍數(shù)。這不太適合于扇區(qū)大小因設(shè)備不同而不同的閃存設(shè)備。

            Ext2 文件系統(tǒng)沒有提供對基于扇區(qū)的擦除/寫操作的良好管理。在 Ext2fs 中,為了在一個扇區(qū)中擦除單個字節(jié),必須將整個扇區(qū)復(fù)制到 RAM,然后擦除,然后重寫入??紤]到閃存設(shè)備具有有限的擦除壽命(大約能進(jìn)行 100,000 次擦除),在此之后就不能使用它們,所以這不是一個特別好的方法。

            在出現(xiàn)電源故障時,Ext2fs 不是防崩潰的。

            Ext2 文件系統(tǒng)不支持損耗平衡,因此縮短了扇區(qū)/閃存的壽命。(損耗平衡確保將地址范圍的不同區(qū)域輪流用于寫和/或擦除操作以延長閃存設(shè)備的壽命。)

            Ext2fs 沒有特別完美的扇區(qū)管理,這使設(shè)計(jì)塊驅(qū)動程序十分困難。

            由于這些原因,通常相對于 Ext2fs,在嵌入式環(huán)境中使用 MTD/JFFS2 組合是更好的選擇。

            用 Ramdisk 掛裝 Ext2fs

            通過使用 Ramdisk 的概念,可以在嵌入式設(shè)備中創(chuàng)建并掛裝 Ext2 文件系統(tǒng)(以及用于這一目的的任何文件系統(tǒng))。

            清單 6. 創(chuàng)建一個簡單的基于 Ext2fs 的 Ramdisk

            mke2fs -vm0 /dev/ram 4096

            mount -t ext2 /dev/ram /mnt

            cd /mnt

            cp /bin, /sbin, /etc, /dev ... files in mnt

            cd ../

            umount /mnt

            dd if=/dev/ram bs=1k count=4096 of=ext2ramdisk

            mke2fs 是用于在任何設(shè)備上創(chuàng)建 ext2 文件系統(tǒng)的實(shí)用程序 — 它創(chuàng)建超級塊、索引節(jié)點(diǎn)以及索引節(jié)點(diǎn)表等等。

            在上面的用法中, /dev/ram 是上面構(gòu)建有 4096 個塊的 ext2 文件系統(tǒng)的設(shè)備。然后,將這個設(shè)備( /dev/ram )掛裝在名為 /mnt 的臨時目錄上并且復(fù)制所有必需的文件。一旦復(fù)制完這些文件,就卸裝這個文件系統(tǒng)并且設(shè)備( /dev/ram )的內(nèi)容被轉(zhuǎn)儲到一個文件(ext2ramdisk)中,它就是所需的 Ramdisk(Ext2 文件系統(tǒng))。

            上面的順序創(chuàng)建了一個 4 MB 的 Ramdisk,并用必需的文件實(shí)用程序來填充它。

            一些要包含在 Ramdisk 中的重要目錄是:

            /bin D 保存大多數(shù)象 init 、 busybox 、 shell 、文件管理實(shí)用程序等二進(jìn)制文件。

            /devD 包含用在設(shè)備中的所有設(shè)備節(jié)點(diǎn)

            /etcD 包含系統(tǒng)的所有配置文件

            /libD 包含所有必需的庫,如 libc、libdl 等

            日志閃存文件系統(tǒng),版本 2(JFFS2)

            瑞典的 Axis Communications 了最初的 JFFS,Red Hat 的 David Woodhouse 對它進(jìn)行了改進(jìn)。 第二個版本,JFFS2,作為用于微型嵌入式設(shè)備的原始閃存芯片的實(shí)際文件系統(tǒng)而出現(xiàn)。JFFS2 文件系統(tǒng)是日志結(jié)構(gòu)化的,這意味著它基本上是一長列節(jié)點(diǎn)。每個節(jié)點(diǎn)包含有關(guān)文件的部分信息 D 可能是文件的名稱、也許是一些數(shù)據(jù)。相對于 Ext2fs,JFFS2 因?yàn)橛幸韵逻@些 優(yōu)點(diǎn)而在無盤嵌入式設(shè)備中越來越受歡迎:

            JFFS2 在扇區(qū)級別上執(zhí)行閃存擦除/寫/讀操作要比 Ext2 文件系統(tǒng)好。

            JFFS2 提供了比 Ext2fs 更好的崩潰/掉電安全保護(hù)。當(dāng)需要更改少量數(shù)據(jù)時,Ext2 文件系統(tǒng)將整個扇區(qū)復(fù)制到內(nèi)存(DRAM)中,在內(nèi)存中合并新數(shù)據(jù),并寫回整個扇區(qū)。這意味著為了更改單個字,必須對整個扇區(qū)(64 KB)執(zhí)行讀/擦除/寫例程 D 這樣做的效率非常低。要是運(yùn)氣差,當(dāng)正在 DRAM 中合并數(shù)據(jù)時,發(fā)生了電源故障或其它事故,那么將丟失整個數(shù)據(jù)集合,因?yàn)樵趯?shù)據(jù)讀入 DRAM 后就擦除了閃存扇區(qū)。JFFS2 附加文件而不是重寫整個扇區(qū),并且具有崩潰/掉電安全保護(hù)這一功能。

            這可能是最重要的一點(diǎn):JFFS2 是專門為象閃存芯片那樣的嵌入式設(shè)備創(chuàng)建的,所以它的整個設(shè)計(jì)提供了更好的閃存管理。

            因?yàn)楸疚闹饕菍?a class="contentlabel" href="http://www.biyoush.com/news/listbylabel/label/關(guān)于">關(guān)于閃存設(shè)備的使用,所以在嵌入式環(huán)境中使用 JFFS2 的 缺點(diǎn)很少:

            當(dāng)文件系統(tǒng)已滿或接近滿時,JFFS2 會大大放慢運(yùn)行速度。這是因?yàn)槔占膯栴}(更多信息,請參閱 參考資料)。

            linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉