Chinaunix首页 | 论坛 | 博客
  • 博客访问: 500076
  • 博文数量: 121
  • 博客积分: 4001
  • 博客等级: 上校
  • 技术积分: 1390
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-13 21:48
文章分类

全部博文(121)

文章存档

2011年(4)

2010年(11)

2009年(106)

我的朋友

分类: LINUX

2009-03-14 13:14:30

    首先看一下嵌入式文件系统在嵌入式系统设计中所处的地位。
 
    ---> 由底层到应用高层
 
    |0 hardware | 1 bootloader | 2 parameters | 3 kernel | 4 file sysmtem | 5 application |
 
    可见,文件系统是应用的承载体。那么,对一个项目而言,需求设计是最为重要的。确定了需求,才能确定hardware,也才能确定采用合适的kernel,也才能确定采用哪种合适的文件系统,如何组织安排。当决定kernel之后,bootloader基本确定;当决定了文件系统后,parameters才确定。所以,要想建立比较合适的嵌入式文件系统,应该遵循如下步骤:
 
    1、仔细分析项目需求,列出明细。
    2、根据需求确定硬件选型。
    3、根据硬件选型和需求确定文件系统的类型和内容。
    4、根据硬件选型和文件系统来确定内核的配置。
    5、最后选择合适的引导加载方式,设定好命令行参数。
    6、调试通过。
 
    嵌入式文件系统的制作和裁减并不困难,难得是如何充分考虑到产品的需求,空间效率和时间效率。真是应了一句话:做出来和做的好所需要的技术和能力是不可同日而语的。那么,在平时,就要多利用几种方式,多实践,比较不同方式的优缺点。从实践中了解了,才能在以后的项目中合理的选择。
 
    就一般而言,嵌入式文件系统还是采用层次式的设计方案。一层为根文件系统,一般为只读;二层及以上为用户文件系统,为可读写。针对存储介质是Nor Flash还是Nand Flash,要选择不同的类型。因为嵌入式的最大特点是专用性,文件系统的设计也充分的体现了这一点。不少文件系统为了体现最大优势,往往是以特定存储介质为载体,这样更容易定制,一般不会以通用性为目标的。比如,cramfs,yaffs/yaffs2适合在Nand flash上,jffs/jffs2适合在Nor Flash上,等等。各种文件系统都有优点和缺点,在不同的项目需求中,要选择最适合的文件系统。这样,才能做成一个成功的产品。
 
    最近几天,已经做好了根文件系统,尝试了ramdisk(ext2),cramfs,jffs/jffs2,对MTD有了些了解。随后的目标仍然是建立一个稳定高效的嵌入式平台,尝试不同情况下的定制需求。对嵌入式文件系统涉及到的理论知识也要总结整理一下了。 
 

 
附记:
 
    《构建嵌入式Linux系统》这本书实践性非常强,虽然有些系统组件的版本已经比较低了,但是仍然具有很高的参考价值。重新翻阅,收获比06年时多了些,可能也有一部分实践经验了吧。
 
    上面的思考还是基于《构建嵌入式Linux系统》建立目标板Linux系统这一节,书中讲述更为全面,很多思想对自己都很有帮助。现在因为产品的最终需求还不是非常明确,所以做的工作就主要是反复实验。用这种方式探索根文件系统的建立过程,以后可以用这个经验为目标板建立完整的根文件系统。
 
阅读(940) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~