您的位置:首页 > 其它

RAM and ROM File System vs ROM-only File System

2009-12-13 08:53 351 查看
二者都是文件系统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接口的处理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: