rurality
版主
Rank: 7Rank: 7Rank: 7



UID 2
精华 0
积分 0
帖子 83
阅读权限 100
注册 2007-8-5
发表于 2007-9-14 08:43  资料  个人空间  短消息  加为好友 
文件系统开发

在系统开发的下一步,我们打算首先支持FAT16和FAT32格式
请在下面这个网址下载关于FAT32的开源代码进行参考。
http://www.robs-projects.com/
FAT16格式的代码还在寻找中

在开发中,我们并不是移植别人的代码,而是重新设计数据结构和算法
其他的开源代码只是参考作用

补充:
今天和 cherry4 讨论了关于文件系统的一些问题,这些问题,也和金城以及其他人一起反复讨论过。
下面把一些常用的问题在这里列出来。(Q--question,A--answer)

1.Q:想加入文件系统的开发应该如何入手?
A:有两个方向,一个是从整体的文件系统框架入手,设计整体的文件系统结构(包括虚拟文件系统);另外一个是研究具体的某种文件系统,比如jffs,fat,并去实现基本的功能。

2.Q:微内核要把具体文件系统放到应用层,那文件系统的管理者,(我理解的虚拟文件系统层)在内核态还是应用层?
A:虚拟文件系统部分应该位于内核中。虚拟文件系统的核心作用,是面对多种文件系统,可以提供一个抽象表述。

3.Q:如果想参与整体的文件系统结构的设计,怎么办?
A:请和金城联系,他的邮箱是:loocalvinci@gmail.com

4.Q:如果想开发具体的文件系统,那么文件系统的上下层接口是什么,文件系统在系统中的位置是怎么规划的?我不了解系统架构怎么办?
A:虚拟文件系统的核心作用,是面对多种文件系统,可以提供一个抽象表述。如果只研究具体某一种文件系统,那么虚拟文件系统就没有存在的意义了,文件系统的上下层接口也就不需要考虑。如果只开发具体的文件系统,那么可以把你开发的部分,看成是系统的全部,其他应用程序和内核作为你的文件系统的外延。应用程序向你请求,而内核为你提供必要的函数调用。其实由于是微内核的原因,实际也是这样。这就可以极大的简化外延,而注重内部的设计,包括底层驱动和上面的文件系统实现。当内核无法满足具体的文件系统要求的时候,请通知我ruraliy.wq@gmail.com,或在论坛发表留言,我会尽快改善内核,来满足对文件系统的支持。
这样,我就修改内核来满足你的要求。
等积累到一定程度,我们再进行重新设计,把数据结构进行优化,让系统更好的运行。

顶部
cherry4
新手上路
Rank: 1



UID 40
精华 1
积分 10
帖子 7
阅读权限 10
注册 2007-10-19
发表于 2007-10-22 10:24  资料  个人空间  短消息  加为好友 
老大,我想问一下,为什么不开发针对flash的文件系统,而要开发fat文件系统呢

顶部
admin
管理员
Rank: 9Rank: 9Rank: 9



UID 1
精华 0
积分 0
帖子 3
阅读权限 200
注册 2007-7-1
发表于 2007-10-22 11:17  资料  个人空间  短消息  加为好友 
这个信息有点老了
目前,文件系统由金城负责,目前正在设计总体结构。
对于flash,金城的计划是融合nor和nand的技术,并研究jffs和另外一种文件系统(该死的,忘记名称了)。
现在主要是研究框架的问题。
因为Fat32的实验环境比较容易确定,所以,我当初的考虑是通过Fat32,首先把文件系统框架搞好。
之后再考虑加载其他文件系统。

顶部
cherry4
新手上路
Rank: 1



UID 40
精华 1
积分 10
帖子 7
阅读权限 10
注册 2007-10-19
发表于 2007-10-24 10:15  资料  个人空间  短消息  加为好友 
关于文件系统我现在有:JFFS2源代码情景分析Beta2



 附件: 您所在的用户组无法下载或查看附件
顶部
cherry4
新手上路
Rank: 1



UID 40
精华 1
积分 10
帖子 7
阅读权限 10
注册 2007-10-19
发表于 2007-10-24 10:29  资料  个人空间  短消息  加为好友 


QUOTE:
原帖由 admin 于 2007-10-22 11:17 发表 http://www.qingyangos.org/bbs/images/common/back.gif

对于flash,金城的计划是融合nor和nand的技术,并研究jffs和另外一种文件系统(该死的,忘记名称了)。 ...

如果没想错的话,你说的另一种文件系统应该是Yaffs.
另外我还有一点有点疑问:

在微内核里,是不是把文件系统也作为一个进程来运行着参与调度,而且这个文件系统进程的状态一直是一个死循环,时刻准备内核传给它消息.当有别的进程有读写flash的请求时,它给内核传递一个信号(可能是系统调用接口),这个信号能标示读写或其他动作,内核其实什么都不做,只是把这个消息传递给文件系统进程,文件系统进程可以再发消息给驱动进程完成具体的读写,是这样的吗?

顶部
rurality
版主
Rank: 7Rank: 7Rank: 7



UID 2
精华 0
积分 0
帖子 83
阅读权限 100
注册 2007-8-5
发表于 2007-10-24 12:31  资料  个人空间  短消息  加为好友 
是这样的,通过信号量,或其他机制来完成。
我打算做成一个比较特别的机制,以区别于传统的信号量机制。

顶部
rurality
版主
Rank: 7Rank: 7Rank: 7



UID 2
精华 0
积分 0
帖子 83
阅读权限 100
注册 2007-8-5
发表于 2007-10-24 12:34  资料  个人空间  短消息  加为好友 
你那本书非常好,作者和很有奉献和开源精神
强赞一下

顶部
rurality
版主
Rank: 7Rank: 7Rank: 7



UID 2
精华 0
积分 0
帖子 83
阅读权限 100
注册 2007-8-5
发表于 2007-10-25 13:33  资料  个人空间  短消息  加为好友 
带时钟内核。由于没有BOIS和电池的支持,没办法纪录时钟。所以每次从0开始。
可以在c文件里,声明
extern unsigned int volatile ticks;
来使用

unsigned int volatile ticks;定义在sched.c文件里面



 附件: 您所在的用户组无法下载或查看附件
顶部
cherry4
新手上路
Rank: 1



UID 40
精华 1
积分 10
帖子 7
阅读权限 10
注册 2007-10-19
发表于 2007-10-30 16:30  资料  个人空间  短消息  加为好友 
关于JFFS文件系统

正确理解一个文件系统,从两方面来着手。1:文件在物理设备上的表示方式 2:文件在内存中的表示方式,以及二者是如何链接起来的。这俩条分别解释一下。附件中是关于第一点的。文件在flash上的表示方法,以及一个存储在物理设备上的文件系统到底是什么样的。程序也很简单,看明白了就知道了。第二点,再跟一个帖子,这个礼拜比较忙,时间不多,先把我整明白的发上来,有感兴趣的看看,大家要为开源操作系统努力阿:)

我也是从内核上分离出来的源代码,修改了一下,直接编译就能用了:)



 附件: 您所在的用户组无法下载或查看附件
顶部
zhou533
版主
Rank: 7Rank: 7Rank: 7



UID 44
精华 0
积分 0
帖子 2
阅读权限 100
注册 2007-10-21
发表于 2007-11-26 10:29  资料  个人空间  短消息  加为好友  添加 zhou533 为MSN好友 通过MSN和 zhou533 交谈
FAT32代码的运行

FAT32.rar是运行的详细步骤

FAT32_DEMO.rar是在VC6.0下的工程

在Debug下有个名为XXX.IMA的镜像文件可供大家使用

请大家参考



 附件: 您所在的用户组无法下载或查看附件
顶部
ontheway
新手上路
Rank: 1



UID 126
精华 0
积分 0
帖子 1
阅读权限 10
注册 2008-6-5
发表于 2008-6-6 08:37  资料  个人空间  短消息  加为好友 
很不错,顶个先!
呵呵,还要10个字。。。

顶部
 



当前时区 GMT+8, 现在时间是 2008-7-6 06:31

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
清除 Cookies - 联系我们 - QingYangOS - Archiver - WAP