RTEMS文件系统(3):挂载和卸载文件系统

RTEMS 4.9.4 filesys.pdf

3 Mounting and Unmounting Filesystems
3.1 Mount Points
下面是一个挂载点的特性列表:

  1. 挂载点必须是一个目录。它的下面可能有文件和其他目录。当文件系统被挂载以后这些文件和目录将被隐藏;
  2. 任务必须具有对挂载点的读/写/执行权限,否则挂载尝试将被拒绝;
  3. 一个文件系统只可以被挂载到一个挂载点;
  4. 在挂载完成后,挂载文件系统的根将被挂载点的名称引用。




3.2 Mount Table Chain
挂载链表是一个动态列表结构,描述在基本文件系统中的特定挂载点上的挂载文件系统。
在基本文件系统初始化时它被初始化为空状态。
挂载操作将会向挂载链表中添加条目。
卸载操作将从挂载链表移除条目。
挂载链表中的每个条目用以下类型定义:



    struct rtems_filesystem_mount_table_entry_tt
    {
        Chain_Node Node;
        rtems_filesystem_location_info_t mt_point_node;
        rtems_filesystem_location_info_t mt_fs_root;
        int options;
        void *fs_info;
        rtems_filesystem_limits_and_options_t pathconf_limits_and_options;
        /*
        * When someone adds a mounted filesystem on a real device,
        * this will need to be used.
        *
        * The best option long term for this is probably an
        * open file descriptor.
        */
        char *dev;
    };

Node~:该字段是用于产生挂载表项目链表的一个节点;

mt_point_node~:在~mt_point_node包含了所有必要的用于访问文件系统安装到目录的信息。
该元素可能包含内存,它是在评估文件系统包含挂载点目录的路径时分配的。
泛型代码允许这种内存被卸载程序释放;


mt_fs_root:mt_fs_root包含所有确定已挂载文件系统根目录的必要信息。
泛型代码决不允许用户访问此节点,它是用来识别挂载文件系统从哪里开始进行路径名评估的;

options~:XXX;


fs_info:fs_info~字段是一个用于已挂载文件系统识别文件系统实例的唯一方法。例如,IMFS~使用这个空间提供对每一个文件系统的实例来说是唯一的节点标识。

pathconf_limits_and_options~:XXX;

dev:此字符串表示设备所在文件系统的位置。

3.3 Adding entries to the chain during mount
当文件系统被挂载,它所在文件系统的位置被记录在一个动态列表中。
rtems_filesystem_mount_table_entry_tt结构的变量会记录每一个挂载的文件系统。
这也包括基本文件系统。


3.4 Removing entries from the chain during unmount
当文件系统被卸载,它所在的挂载链表项被移除,其所占用的内存被释放。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值