RTEMS文件系统(2):系统初始化

来源:互联网 发布:生成微信专用淘宝链接 编辑:程序博客网 时间:2024/06/05 12:33

RTEMS 4.9.4 filesystem.pdf

 

2 System Initialization

 

RTEMS~初始化后执行应用程序初始化。
初始化部分有对~rtems_filesystem_initialize()~进行调用。
这个程序将挂载内存文件系统~(In Memory File System, IMFS)~作为基础文件系统。
挂载基本文件系统包括以下内容:

1.初始化挂载表的链的控制结构;
2.分配一个~jnode~结构,它将在内存文件系统中作为根节点服务;
3.使用适当的~ops、目录处理程序、pathconf~限制和选项初始化申请得到的~jnode;
4.为文件系统分配存储空间用于存储全局管理变量;
5.为基本文件系统创建第一个挂载表项目;
6.初始化第一个挂载表链项目,表明链安装点为空并且挂载的文件系统是基本文件系统。


基本文件系统挂载完毕以后,系统会对基本文件系统的目录结构进行以下的操作:

 

1.创建~/dev~目录;
2.向~/dev~目录下登记设备。



2.1 Base Filesystem

RTEMS~最初挂载一个基于~RAM~的文件系统作为系统的基本文件系统。
这个文件系统的根目录作为目录结构中的逻辑根目录。
在根目录下创建了~/dev~目录,所有~I/O~设备目录和文件注册在这个目录下作为文件系统层次结构的一部分。

%树的结构图放在这里。

一个基于~RAM~的文件系统从内存中生成其管理的资源。
文件和目录节点只是简单的分配内存块。
与文件相关的数据存储在收集的内存块中。
当系统关闭或重新启动,该文件系统的所有以内存为基础的组件都将丢失。

基础文件系统为一个半永久性存储介质上的文件系统提供挂载起始点。
例如,这些存储介质包括非挥发性内存,闪存和~IDE~硬盘驱动器。
其他类型的文件系统将被安装在基本文件系统内的挂载点上或其他已挂载在基本文件系统上的文件系统下。
这个建立在基本文件系统上的框架允许支持新的文件系统类型以及其新文件系统所需要的数据和功能。


2.1.1 Base filesystem Mounting
目前,第一个文件系统被挂载是内存文件系统~(IMFS)。
它挂载使用标准的~mount()~命令,其挂载点为~NULL。
这表示挂载为第一个文件系统注册在系统操作,并执行适当的初始化该文件系统管理信息的操作。
如果希望使用一个不同的文件系统类型作为基础的文件系统,必须对~base_fs.c~做出修改。
这个程序处理基本文件系统的挂载。

%链的mount表图放在这里。

一旦基本文件系统的根目录建立,它被记录为基础文件系统的挂载点,设备都会集成到基础文件系统内。
对于每个被配置进系统~(见~ioman.c)~的设备,系统将为其执行设备注册处理。
设备注册产生一个唯一的~dev_t~句柄,它是由一个主设备号和一个次设备号组成。
此外,每个设备的配置信息包含一个文本字符串,表示该设备在基本文件系统层次结构内的完整路径。
在设备指定注册路径下会创建一个文件系统节点。

%表格处理的山图放在这里。

注:其他文件系统可以挂载,但他们都挂载在~(目录挂载点)~在基本文件系统内。

原创粉丝点击