RAM and ROM File System vs ROM-only File System

    二者都是文件系统driver。都有能力读取ROM文件系统。 区别在于:前者除了能够读取ROM盘之外,他还构造了一个RAM盘。(因为file system很容易混淆,我称呼ROM盘和RAM盘) 。

RAM盘指什么呢? 就是在ram空间虚拟的磁盘。 先说些废话:ce起来后会把所有可以用的内存分割成为2个空间,存储内存和程序内存, 默认的是1:1的分配, 你可以在config.bib里面设置FSRAMPERCENT来改变分配比例。 程序内存就是程序可用内存, 就是正常理解的普通意义的内存。而存储内存:Object Store, 它包括了注册表, 属性数据库和上面提到的RAM盘。

MEMORY
    NK      80200000  01E00000  RAMIMAGE
    RAM     82000000  01E00000  RAM
    FLASH   92000000  00100000  RESERVED

ROM盘指什么呢? 首先肯定的是, 它指nk.bin。 其次, 它究竟指的是在flash上的nk.bin还是被加载到内存执行的nk.bin呢?经过测试推理, 应该指的是加载到内存里面的nk.bin。内核启动后要找到文件执行,首先执行nk.exe,这个算特例, 因为镜像入口点就是它, nk.exe要加载filesys.exe,而且filesys.exe需要获得注册表, 这个时候没有初始化磁盘,而且初始化磁盘需要注册表, 所以只有从内存的ROM盘获得,这是一个论据。 另外还做了个测试, 从电脑经过usb或者网线下载nk.bin到设备运行, 下载后并不烧写到磁盘,而是直接运行,这样测试是成功的, 说明ROM盘的确是指的内存里面镜像。

回到RAM and ROM File System vs ROM-only File System的话题。使用前者的话, 系统的根目录就是前面提到的RAM盘, 而外部磁盘如:/ResidentFlash,/Storage Card这些,就成为一个独立的目录挂载在根目录下面, ROM盘的内容则安置在/windows目录, 如果xip,你甚至还可以看到/binfs代表的nk.bin所在的磁盘。 除了外部磁盘, 对其他目录的写和更改都是发生在内存, 所以, 重启系统后全部消失了。这产生一个的问题:第三方软件怎么永久安装? 因为第三方软件常常保存东西在windows目录下面,也会修改注册表。重启后就不能使用了。这一点完全背离了用户习惯的使用经验。(微软考虑是设备是永不关机的,所以早期的ppc是没有关机功能的。) 在catalog中加入ROM-only File System组件, 并且修改注册表的MountFlags或者MountAsRoot就可以使用ROM-only File System功能,如果之前已有的项目,重新rebuild时候记得勾上clear。 它将一个磁盘当成系统的根目录。但是对于wince5.0会存在一个困扰, 就是同步功能不能工作了。根据资料,Wince6.0和mobile都提供了一个File replacition filter driver(fsreplxfilt.dll)能解决这个问题。我分析推测,因为同步是需要同步到Object Store, 这个驱动提供Object Store接口的处理。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值