Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1422172
  • 博文数量: 124
  • 博客积分: 4078
  • 博客等级: 中校
  • 技术积分: 3937
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-21 11:28
个人简介

新博客:http://sparkandshine.net/

文章分类

全部博文(124)

分类: 嵌入式

2011-11-17 17:34:46

摘要:

    本文循序渐进讲解Coffee文件系统的缘由,即为什么需要文件系统、Flash文件系统特性、WSN文件系统的特性,最后列出一些学习Coffee文件系统可参考的资料。


一、概述

1.1 为什么需要文件系统

1.1.1 便于数据管理和组织

    无线传感器网络主要用于采集数据,并且数据通过网络传递给观察者。基于以下两个需求,需要将采集到的数据进行本地存储。

(1) 数据传递时中断(受硬件和环境因素影响,发生概率还是很高的),需要重传

(2) 合并多次采集到的数据,集中发出,以减少通信,进而降低功耗

1.1.2 重编程的需要

    考虑这样的情况,节点需要升级,一种思路就是将需要升级的节点全部回收回来,升级过后,再布置回去。这种思路缺点很明显也很致命,费时又费力,极端的情况,布置的结点就无法再取回了或者节点的工作不能被中断。

    节点重编程恰解决了这个问题(也可以理解成动态加载),即通过无线传感器网络WSN将需要系统映像或者配置文件甚至是一个新的服务,传递到节点,进而更新。

1.2 Flash文件系统特性

    嵌入式系统(当然也包括传感器节点)的外存是Flash,相对于磁盘,Flash有其自身的特性,这也决定了Flash文件系统需要考虑额外的问题,比如耗损平衡(Flash擦除块数限制)、坏块管理、掉电保护、垃圾回收、映射机制等,详情见博文《FLASH文件系统设计需考虑FLASH固有特性》。

1.3 WSN文件系统特性

    无线传感器网络文件系统除了要考虑上述Flash文件系统的特性外(WSN节点的外存通常也是Flash),还需结合WSN的特点进行设计。

(1) 内存受限,这就要求不能设计很大的数据结构驻留内存,也不能划出很大一块来做cache。

(2) 被采集数据特点,被采集数据量的大小、频率等都会影响整个文件系统的设计。

1.4 Coffee

    现有的基于Flash文件系统主要应用于嵌入式系统(内存往往没有那么受限、外存容量也比较大),不太适合无线传感器网络节点。我想,Contiki大概也是考虑到这些,所以自己写了个文件系统Coffee File System。其最大的两个特点:减少内存使用、大规模存储。


二、学习资料

[1]  Enabling Large-Scale Storage in Sensor Networks with the Coffee File System.pdf   

[2]

[3]

[4]

[5] 源代码(主要集中在contiki/core/cfs、contiki/cpu/platform文件夹下)

    文档[1]是实现Coffee的人发表的论文,[4]是Coffee文件系统的API描述,而[2]则是API详细描述,还介绍部分原理,[3]集中讲CFS测试的例子。资料[1]~[4](我目前所能找到的)远不够了解Coffee,只能阅读源代码[5]。


接下来,就深入源码,结合文档,一探究竟……(欢迎一起讨论交流学习,Jelline@126.com)

阅读(4858) | 评论(0) | 转发(4) |
给主人留下些什么吧!~~