嵌入式_linux_根文件系统_rootfs.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式_linux_根文件系统_rootfs.pdf

一、什么是文件系统 (Filesystem)   文件系统是包括在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)或分区的目录结 构;一个可应用的磁盘设备可以包含一个或多个文件系统;如果您想进入一个文件系统, 首先您要做的是挂载(mount)文件系统;为了挂载(mount)文件系统,您必须指定一个挂载 点。   二、主要嵌入式采用的文件系统     * Linux 中 , rootfs 是 必 不 可 少 的 。 PC 上 主 要 实 现 有 ramdisk 和 直 接 挂 载 HD(Harddisk ,硬盘) 上的根文件系统;嵌入式中一般不从 HD 启动,而是从 Flash 启动, 最简单的方法是将 rootfs load 到 RAM 的 RAMDisk ,稍复杂的就是 直接从 Flash 读取的 Cramfs ,更复杂的是在 Flash 上分区,并构建 JFFS2 等文件系统。   * RAMDisk 将制作好的 rootfs 压缩后写入 Flash ,启动的时候由 Bootloader load 到 RAM,解压缩,然后挂载到 /。这种方法操作简单,但是在 RAM 中的文件系统不是压缩的, 因此需要占用许多嵌入式系统中稀有资源 RAM。    ramdisk 就是用内存空间来模拟出硬盘分区,ramdisk 通常使用磁盘文件系统的压缩存 放 在 flash 中, 在 系 统 初 始 化 时 , 解 压 缩 到 SDRAM 并 挂 载 根 文 件 系 统 , 在 linux 系 统 中,ramdisk 有二种,一种就是可以格式化并加载,在 linux 内核 2.0/2.2 就已经支持,其不足之 处是大小固定;另一种是 2.4 的内核才支持,通过,ramfs 来实现,他不能被格式化,但用起来方 便,其大小随所需要的空间增加或减少,是目前 linux 常用的 ramdisk 技 术.    * initrd 是 RAMDisk 的格式,kernel 2.4 之前都是 image-initrd ,Kernel 2.5 引入了 cpio-initrd ,大大简化了 Linux 的启动过程,附合 Linux 的基本哲学: Keep it simple, stupid(KISS). 不过 cpio-initrd 作为新的格式,还没有经过广泛测试,嵌入式 Linux 中主要 采用的还是 image-initrd。   * Cramfs 是 Linus 写的很简单的文件系统,有很好的压缩绿,也可以直接从 Flash 上 运行,不须 load 到 RAM 中,因此节约了 RAM。但是 Cramfs 是只读的,对于需要运行时 修改的目录(如: /etc, /var, /tmp) 多有不便,因此,一般将这些目录做成 ramfs 等可写的 fs。   * SquashFS 是对 Cramfs 的增强。突破了 Cramfs 的一些限制,在 Flash 和 RAM 的使 用量方面也具有优势。不过,据开发者介绍,在性能上可能不如 Cramfs。这也是一种新方 法,在嵌入式系统采用之前,需要经过更多的测试   三、建一个包含所有文件的目录    1。建一个目录 rootfs 用来装文件系统   2。mkdir bin dev etc lib proc sbin tmp usr var   3. ln -fs bin/busybox linuxrc(使用 busybox)   4. 到系统 /dev 把所有的 device 打一个包,拷贝到 dev 下面(最省事的做法) ;或者使用 mknod 来 自己建所需要的 device,我自己用的如下:   crw-rw-rw- 1 root root 5, 1 2006-02-24 13:12 console   crw-rw-rw- 1 root root 5, 64 2006-02-24 13:12 cua0   crw-rw-rw- 1 root root 63, 0 2006-02-24 13:12 dk0   crw-rw-rw- 1 root root 63, 1 2006-02-24 13:12 dk1   drwxr-xr-x 2 root root 4096 2006-02-24 13:12 flash   brw-rw-rw- 1 root root 3, 0 2006-02-24 13:12 hda   crw-rw-rw- 1 root root 36, 10 2006-02-24 13:12 ipsec   crw-rw-rw- 1 root r

文档评论(0)

wangshirufeng + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档