2-2-18-9 QNX系统架构之文件系统(一)

阅读前言

本文以QNX系统官方的文档英文原版资料为参考,翻译和逐句校对后,对QNX操作系统的相关概念进行了深度整理,旨在帮助想要了解QNX的读者及开发者可以快速阅读,而不必查看晦涩难懂的英文原文,这些文章将会作为一个或多个系列进行发布,从遵从原文的翻译,到针对某些重要概念的穿插引入,以及再到各个重要专题的梳理,大致分为这三个层次部分,分不同的文章进行发布,依据这样的原则进行组织,读者可以更好的查找和理解。


1. 文件系统

QNX Neutrino RTOS 提供了丰富多样的文件系统。与大多数提供服务的进程一样,这些文件系统在内核之外进行执行;应用程序通过与之通信来使用它们提供的服务,通过 POSIXAPI 的共享库中生成的消息来与之通信。

这些文件系统也是本书中所描述的资源管理器。每个文件系统采用路径名空间的一部分(称为挂载点),并通过标准 POSIXAPI (open()close()read()write()lseek()等)提供文件系统服务。文件系统资源管理器接管挂载点并管理它下面的目录结构。文件系统资源管理器还检查各个路径名组件的权限和访问授权。

这个实现意味着:

  • 文件系统可以动态地启动和停止。
  • 多个文件系统可以并发运行。
  • 无论底层文件系统的配置和数量如何,应用程序都提供一个统一的路径名空间和接口。
  • 如果使用Qnet,在某个节点上运行的文件系统也可以从任何其他节点透明地访问。

有一些特殊类型的文件系统:

  • 直通文件系统【pass-through filesystem】,位于另一个文件系统的前面,并操作底层文件系统中的文件。这方面的一个例子是【解压缩文件系统】Inflator filesystem,我们将在本章后面描述它。

在重叠的路径名空间上运行多个直通文件系统或资源管理器可能会导致死锁。

  • 虚拟文件系统【virtual filesystem】,该类型的文件系统的文件或目录不一定直接绑定到底层介质,可能是按需制造的。/proc文件系统就是这样的一个例子;参见 QNX Neutrino 程序员指南中 “Processes” 章节中的“Controlling processes via the /proc filesystem” 的内容。
  • QNX可信磁盘设备【QNX Trusted Disk devices】,在安全引导环境中使用QNX可信磁盘设备时,为底层磁盘数据提供完整性保护。

1.1. 文件系统和路径名解析

你可以无缝地定位并连接到已在进程管理器中注册的任何服务或文件系统。当文件系统资源管理器注册一个挂载点时,进程管理器在内部挂载表中为该挂载点及其相应的服务器ID(即nd、pid、chid标识符)创建一个条目。

这个表有效地将多个文件系统目录连接成用户所认为的单个目录。进程管理器负责处理路径名的挂载点部分;而单个文件系统资源管理器负责路径名的其余部分。文件系统可以以任何顺序注册(即挂载)。

当路径名被解析后,进程管理器会联系所有能够处理该路径名中某个组件的文件系统资源管理器。得到的结果是一个可以解析该路径名的文件描述符的集合。

如果路径名表示一个目录,则在调用readdir()时,进程管理器会向所有可以解析路径名的文件系统查询该目录中的文件列表。如果路径名不是目录,那么将会只访问能够解析该路径名的第一个文件系统。

有关路径名解析的更多信息,请参阅本指南中 “进程管理器” 章节中的 “Pathname management” 小节的内容。

1.2. 文件系统分类

许多可用的文件系统可以分为以下几类:

镜像文件系统是一种特殊的文件系统,表示在镜像中的模块,并且一直存在。注意,procnto进程管理器会自动提供一个镜像文件系统和一个RAM文件系统。

  • Block

块文件系统是一种传统的文件系统,在硬盘和DVD驱动器等块设备上运行。这包括电源安全文件系统【 Power-Safe filesystem】、DOS文件系统【DOS】和通用磁盘格式文件系统【

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星原飞火

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值