文件系统是某些操作系统必然包含的模块,对系统中存储介质的访问以同一的系统接口进行管理,完成read ,write,ioctl等操作。
按照实现方式,可分为传统的单机版的文件系统和网络分布式的文件系统。
分布式文件系统通常应用网络技术和协议,将分散的各个数据资源进行同一管理的系统形式。
嵌入式操作系统上的文件系统,或者说传统的文件系统一般是单一的本地数据管理系统。例如常用的FAT Ext2 yaffs 等。
这里说的就是这种传统的文件系统。
目前有许多成熟的和开源的文件系统,通用型的或者针对具体应用场合的。根据自己系统的需要选取成熟的文件系统,是最可取的一种方式。但是有时为了提高系统性能,往往根据自己的需要对文件系统进行改进甚至自己实现一个理想的文件系统,也是非常必要的。这里就是结合文件系统实现的基本原理,结合一个针对流媒体存储文件系统的应用例子,来描述一下自己实现的文件系统的原理,希望能够起到抛砖引玉的作用。
一般的存储介质包括hdd, flash,eeprom,ram...... 根据不同硬件介质的特性,在保证正确可靠,高性能的情况下,都有特定的文件系统支持。这里以在hdd块设备上实现文件系统为例。其实文件系统完全可以屏蔽底层驱动接口,但不同的硬件特性,可以有特定的文件系统,还是有点区别,这里就不详细说明。
就如其他模块设计一样,首先要保证系统正确可靠,然后是想法提高系统性能。在这样的设计思想下,如何针对自己对文件访问的应用,设计出合理可靠的存储结构和高效的访问机制,是系统设计的关键。
一般说,在介质加载的起始地方,肯定要包含文件系统的基本信息(有的还有boot信息,包括分区信息
按照实现方式,可分为传统的单机版的文件系统和网络分布式的文件系统。
分布式文件系统通常应用网络技术和协议,将分散的各个数据资源进行同一管理的系统形式。
嵌入式操作系统上的文件系统,或者说传统的文件系统一般是单一的本地数据管理系统。例如常用的FAT Ext2 yaffs 等。
这里说的就是这种传统的文件系统。
目前有许多成熟的和开源的文件系统,通用型的或者针对具体应用场合的。根据自己系统的需要选取成熟的文件系统,是最可取的一种方式。但是有时为了提高系统性能,往往根据自己的需要对文件系统进行改进甚至自己实现一个理想的文件系统,也是非常必要的。这里就是结合文件系统实现的基本原理,结合一个针对流媒体存储文件系统的应用例子,来描述一下自己实现的文件系统的原理,希望能够起到抛砖引玉的作用。
一般的存储介质包括hdd, flash,eeprom,ram...... 根据不同硬件介质的特性,在保证正确可靠,高性能的情况下,都有特定的文件系统支持。这里以在hdd块设备上实现文件系统为例。其实文件系统完全可以屏蔽底层驱动接口,但不同的硬件特性,可以有特定的文件系统,还是有点区别,这里就不详细说明。
就如其他模块设计一样,首先要保证系统正确可靠,然后是想法提高系统性能。在这样的设计思想下,如何针对自己对文件访问的应用,设计出合理可靠的存储结构和高效的访问机制,是系统设计的关键。
一般说,在介质加载的起始地方,肯定要包含文件系统的基本信息(有的还有boot信息,包括分区信息