在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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)用 > 對ROMFS文件系統(tǒng)的分析和改進(jìn)

            對ROMFS文件系統(tǒng)的分析和改進(jìn)

            作者: 時(shí)間:2012-03-26 來源:網(wǎng)絡(luò) 收藏

            3.的主要數(shù)據(jù)結(jié)構(gòu)

            的數(shù)據(jù)結(jié)構(gòu)比較簡單,主要有結(jié)構(gòu)和文件結(jié)構(gòu)兩種數(shù)據(jù)結(jié)構(gòu)。

            結(jié)構(gòu)如下:

            struct romfs_super_block {

            __u32 word0;

            __u32 word1;

            __u32 size;

            __u32 checksum;

            char name[0]; /* volume name */

            };

            該結(jié)構(gòu)用于識別整個(gè)ROMFS,大小為512字節(jié),word0初始值為'-','r','o','m',word1初始值為 '-','1','f','s',通過這兩個(gè)字操作系統(tǒng)確定這是一個(gè)ROMFS文件系統(tǒng)。size字段用于記錄整個(gè)文件系統(tǒng)的大小,理論上ROMFS大小最多可以達(dá)到4G。checksum是前512字節(jié)的校驗(yàn)和,用于確認(rèn)整個(gè)文件系統(tǒng)結(jié)構(gòu)數(shù)據(jù)的正確性。前面4個(gè)字段占用了16字節(jié),剩下的都可以用作文件系統(tǒng)的卷名,如果整個(gè)首部不足512字節(jié)便用0填充,以保證首部符合16字節(jié)對齊的規(guī)則。

            ROMFS的文件結(jié)構(gòu)如下:

            struct romfs_inode {

            __u32 next; /* low 4 bits see ROMFH_ */

            __u32 spec;

            __u32 size;

            __u32 checksum;

            char name[0];

            };

            next 字段是下一個(gè)文件的偏移地址,該地址的后4位是保留的,用于記錄文件模式信息,其中前兩位為文件類型,后兩位則標(biāo)識該文件是否為可執(zhí)行文件。因此 ROMFS用于文件尋址的字段實(shí)際上只有28bit,所以ROMFS中文件大小不能超過256M。spec字段用于標(biāo)識該文件類型。目前ROMFS支持的文件類型包括普通文件,目錄文件,符號鏈接,塊設(shè)備和字符設(shè)備文件。size是文件大小,checksum是校驗(yàn)和,校驗(yàn)內(nèi)容包括文件名,填充字段。 name是文件名首地址,文件名長度必須保證16字節(jié)對齊,不足的部分用可以0填充。

            4.ROMFS的實(shí)現(xiàn)

            在Linux系統(tǒng)中定義一個(gè)文件系統(tǒng)首先要定義相應(yīng)的file_system_type以及讀取超級塊的函數(shù)。具體到ROMFS本身,這兩個(gè)對象分別是romfs_fs_type和romfs_read_super,通過宏DECLARE_FSTYPE_DEV來實(shí)現(xiàn)對romfs_fs_type的定義以及初始化工作。此外還需要實(shí)現(xiàn)對目錄,文件的讀寫操作。

            在Linux對ROMFS的實(shí)現(xiàn)中,比較重要的數(shù)據(jù)結(jié)構(gòu)如下:

            //超級塊操作表

            static struct super_operations romfs_ops = {

            read_inode: romfs_read_inode,

            statfs: romfs_statfs,};

            //頁操作表

            static struct address_space_operations romfs_aops = {

            readpage: romfs_readpage};

            //常規(guī)文件操作表

            static struct file_operations romfs_dir_operations = {

            read: generic_read_dir,

            readdir: romfs_readdir,};

            //索引節(jié)點(diǎn)操作表

            static struct inode_operations romfs_dir_inode_operations = {

            lookup: romfs_lookup,};



            關(guān)鍵詞: ROMFS 文件系統(tǒng)

            評論


            相關(guān)推薦

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

            關(guān)閉