<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統 > 設計應用 > 對ROMFS文件系統的分析和改進

          對ROMFS文件系統的分析和改進

          作者: 時間:2012-03-26 來源:網絡 收藏

          3.的主要數據結構

          的數據結構比較簡單,主要有結構和文件結構兩種數據結構。

          結構如下:

          struct romfs_super_block {

          __u32 word0;

          __u32 word1;

          __u32 size;

          __u32 checksum;

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

          };

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

          ROMFS的文件結構如下:

          struct romfs_inode {

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

          __u32 spec;

          __u32 size;

          __u32 checksum;

          char name[0];

          };

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

          4.ROMFS的實現

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

          在Linux對ROMFS的實現中,比較重要的數據結構如下:

          //超級塊操作表

          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é)點操作表

          static struct inode_operations romfs_dir_inode_operations = {

          lookup: romfs_lookup,};



          關鍵詞: ROMFS 文件系統

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();