当前位置: 首页 > news >正文

手机怎样设计网站建设/网站排行

手机怎样设计网站建设,网站排行,温州,宣城做网站上一节/* On disk inode */struct romfs_inode {__be32 next; /* low 4 bits see ROMFH_ */__be32 spec;__be32 size;__be32 checksum;char name[0];};初看,似乎和其超级块结构一样,都有5个域。结构本身大小也一样(都为16字节)。实际上,在生成…

上一节

/* On disk inode */

struct romfs_inode {

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

__be32 spec;

__be32 size;

__be32 checksum;

char name[0];

};初看,似乎和其超级块结构一样,都有5个域。结构本身大小也一样(都为16字节)。实际上,在生成romfs映像的工具genromfs中,就是使用一个结构(struct romfsfh)来代表这两个结构的,之所以分开,是因为其代表的对象不同。romfs_super_block代表整个romfs文件系统,而romfs_inode只代表文件。虽然两个结构一样,但个个域的含义是不一样的。下面我们一一讲解。

1. next域该域是非常重要的一个字段。因为整个romfs映像中的文件头最少都对齐在16字节边界上,也就是说其在romfs映像文件中的偏移的低四位一定为0。所以我们正还利用这4位来做些什么。

romfs文件系统使用其低4位来表示文件类型和文件的权限,具体分配为:[0:2]共3位和起来表示文件类型,可见在romfs文件系统中,支持的文件类型有8中,具体有:

#define ROMFH_HRD 0 /* 硬链接文件 */

#define ROMFH_DIR 1 /* 目录文件 */

#define ROMFH_REG 2 /* 普通文件 */

#define ROMFH_LNK 3 /* 链接文件 */

#define ROMFH_BLK 4 /* 块设备文件 */

#define ROMFH_CHR 5 /* 字符设备文件 */

#define ROMFH_SCK 6 /* 套接字文件 */第4位表示文件是否有可执行权限。如果其他用户具有读写执行权限,并且文件是一个目录或者普通文件,则给文件加上可执行权限。硬链接文件不具有可执行权限。将next域的低4位置0就是下一个文件在romfs中的偏移。romfs正是通过这个域将所有文件组织起来的。

这里还有一个小小的问题。在网上看到许多关于romfs的文章,说romfs文件系统使用next域的高28位来寻址下一个文件,所以romfs文件系统支持的最大的映像为256M。还有人经过理论,使用name域的一些空间和next域联合起来,使romfs文件系统支持大于256M的文件。这个说法是完全错误的。最好的证据就是你直接拖几个五六百兆的电影,然后使用genromfs工具看其是否能生成romfs映像;如果能生成,使用mount命令挂载,看其是否挂载上;如果能挂载上,你可以使用cp命令将大于256M的电影文件拷出来,使用diff命令和原来的电影文件对比一下,看是否一样。在我的机子上,这些假设都成立。这并非偶然,我们可以从最最本质的代码角度继续证实这一点.

2. spec域初识romfs的时候,这个域我困惑了好久,不知道它和next域表示的文件类型到底有什么联系和区别,看内核文档(Documention/filesystem/romfs.txt)的时候也是没弄明白。经过这些天的分析,现在终于弄明白了。如果你也在学习romfs文件系统,希望对你有帮助。

这个域是文件类型相关的,也就是说对于不同的文件类型,这个域表示的含义是不一样的。

(1).对于硬链接文件(next & 0xf = 0),这个域的值为其指向的文件的偏移。

(2).对于目录文件(next & 0x1 = 1),这个域指向其内第一个文件的文件头

在romfs映像中的偏移。

(3).对于普通文件(next & 0x2 = 2),链接文件(next & 0x3 = 3)

,SOCKET文件(next & 0x6 = 6)和管道文件(next & 0x7 = 7),这

个域一定为0,这一点可以从genromfs工具代码的角度证明(具体见

dumpnode函数,我们在后面还会详细分析)。

(4).对于块设备文件(next & 0x4 = 4)和字符设备文件(next & 0x5 = 5)

,这个域的高16位为设备文件代表的设备的主设备号,低16位为次设备号。

3. size域该域表示文件的大小。文件内容是16字节对齐的。如果文件的末尾不够16字节,则使用0填充.

4. checksum域和romfs_super_block结构不同的是,这个域只是文件头和文件名的校验和。

http://www.jmfq.cn/news/4899457.html

相关文章:

  • 十堰seo优化方法/惠州seo快速排名
  • 专业网站建设公司兴田德润放心/哈尔滨seo
  • 外贸网站 在线留言/白帽seo是什么
  • 网站建设方案 doc/搜索引擎优化介绍
  • 怎样免费做公司网站/百度知道
  • 网络舆情系统/搜索引擎优化概述
  • 网站建设管理工作经验介绍/开网站需要什么流程
  • 网站开发文档总结/seo经理
  • 搜房网站要怎么 做/百度账号一键登录
  • 温州网站建设培训班/市场营销推广策划方案
  • 长沙有哪些招聘网站/网络推广销售是做什么的
  • 公众号的微网站怎么做的/河南seo和网络推广
  • 网站开发遇到的最大困难/百度官网app下载
  • 备案查询站长工具/爱站网 关键词挖掘工具站
  • 如何开发手机版网站/seo赚钱吗
  • 成品电影网站建设/成免费crm软件有哪些优点
  • 内丘网站/四种基本营销模式
  • 贵金属交易app下载/东莞市网络seo推广价格
  • 苏州建行网站首页/百度公司在哪里
  • 购物网站国外/seo公司上海
  • 无锡网站排名公司/百度推广入口官网
  • 东莞网站SEO优化托管/免费涨粉工具
  • 网站价格表/sem竞价教程
  • ppt图标网站链接怎么做/兰州网站seo服务
  • ck播放器做解析网站/天眼查询个人
  • wordpress文章变缩略图/网站seo怎么操作
  • 做的好看的统一登录网站/公司网站如何在百度上能搜索到
  • 平台网站建设 厦门/seo网络培训班
  • wordpress付费开通站点/aso排名
  • 建立网站项目计划书模板/网站seo应用