1 文件系统

1.1 loopFs文件系统

循环文件系统(loopFs)是一种工具,它将映像文件挂载为虚拟块设备。

使用loopFs,文件的内容被视为虚拟块设备的扇区数据。数据是一对一映射的。如果映像文件包含文件系统格式(如DOSFS、HRFS或CDROMFS (ISO映像))的有效布局,则新的虚拟块设备将由适当的文件系统驱动程序挂载。tcplay工具创建加密容器。

loopFs文件系统可以配置为支持挂载已被tcplay的VxWorks版本加密的镜像文件,该版本与tcplay的FreeBSD版本部分兼容,并与GPL TrueCrypt工具兼容。VxWorks tcplay使用Advanced encryption Standard (AES)规范在OpenSSL的基础上进行加密。它目前支持AES-128-XTS和AES-256-XTS进行加密和解密,并支持多密钥文件和隐藏卷,就像其他主机的tcplay一样。VxWorks API提供的函数可以通过编程方式使用,也可以从shell中使用(不支持shell命令tcplay)。

loopFs文件系统还提供了一个扩展名,用于挂载具有非平面布局的图像文件(也就是说,不是一对一的映射)。使用这个扩展需要您编写XBD访问函数,自定义XBD服务任务函数和虚拟块设备。

1.2 rawFs文件系统

VxWorks提供了一个原始文件系统(rawFs),用于只需要最基本的磁盘I/O功能的系统。

使用rawFsLib实现的rawFs文件系统将整个磁盘卷视为一个大文件。尽管dosFs文件系统在不同程度上提供了这种能力,但是如果不需要更复杂的功能,那么rawFs文件系统在大小和性能方面具有优势。

rawFs文件系统没有对磁盘上的数据进行组织。它不维护目录信息;因此,没有将磁盘区域划分为特定的文件。rawFs设备上的所有open()操作只指定设备名;不可能有其他文件名。

整个磁盘区域被视为单个文件,可用于为设备打开的任何文件描述符。对磁盘的所有读和写操作都使用相对于磁盘上第一个块开始的字节偏移量。

如果插入的媒体不包含可识别的文件系统,则默认创建rawFs文件系统。

1.2.1 创建步骤

1. 创建一个VSB项目,选择您需要的任何其他选项,然后构建项目。VxWorks源代码默认包含对rawf的支持。

2. 如果您使用的设备驱动程序不是为与XBD工具一起使用而设计的,那么除了INCLUDE_XBD之外,还必须使用INCLUDE_XBD_BLK_DEV包装器组件。

VxWorks FileSystem

3. 将INCLUDE_RAWFS组件的NUM_RAWFS_FILES参数设置为所需的最大打开文件描述符计数。

1.3 dosFs文件系统

dosFs文件系统是一个与ms - dos兼容的文件系统,它提供了相当大的灵活性,适合于实时应用程序的多种需求。

dosFs的主要特点是:

  • 分级文件和目录,允许高效组织和任意数量的文件创建在卷上
  • 路径最大长度为1024个字符,文件名最大长度为255个字符
  • 一个选择连续或非连续的文件在每个文件的基础上
  • 兼容广泛可用的存储和检索媒体(磁盘,硬盘驱动器,等等)
  • 从dosFs文件系统引导VxWorks的能力
  • 支持VFAT(微软VFAT长文件名)
  • 支持FAT12、FAT16、FAT32文件分配表类型
1.3.1 dosFS文件系统构建

要配置支持dosFs的VxWorks,必须为VSB和VIP项目选择所需的层和组件。dosFs有许多可选组件也可以使用。

1.3.1.1 VSB项目

VxWorks FileSystem

选择FS_DOSFS并构建源代码。

1.3.1.2 VIP所需的组件

VIP必须的组件


INCLUDE_DOSFS_MAIN dosFsLib
INCLUDE_DOSFS_FAT dosFs FAT12/16/32 FAT handler
INCLUDE_XBD XBD component

并且,需要以下其中一个或两个组成部分:


INCLUDE_DOSFS_DIR_VFAT Microsoft VFAT direct handler
INCLUDE_DOSFS_DIR_FIXED Strict 8.3 & VxLongNames directory handler

VxWorks FileSystem

此外,您必须为块设备包含适当的组件。

如果您使用的设备驱动程序不是为与XBD工具一起使用而设计的,那么除了INCLUDE_XBD之外,还必须使用INCLUDE_XBD_BLK_DEV包装器组件。

注意,你可以使用INCLUDE_DOSFS自动包含以下组件:

  • INCLUDE_DOSFS_MAIN
  • INCLUDE_DOSFS_DIR_VFAT
  • INCLUDE_DOSFS_DIR_FIXED
  • INCLUDE_DOSFS_FAT
  • INCLUDE_DOSFS_CHKDSK
  • INCLUDE_DOSFS_FMT

VIP选项组件

VxWorks FileSystem

1.3.2 dosFs配置选项
DOSFS_CHK_ONLY

当一个dosfs卷安装,存储分析的错误,但没有进行修复。

DOSFS_CHK_REPAIR

Similar to DOSFS_CHK_ONLY, but an attempt to repair the media is made if errors are found.

DOSFS_CHK_NONE

Media is not checked for errors on mount.

DOSFS_CHK_FORCE

Used in conjunction with DOSFS_CHK_ONLY and DOSFS_CHK_REPAIR to force a consistency check even if the disk has been marked clean.

DOS_CHK_VERB_SILENT or DOS_CHK_VERB_0

dosFs does not to produce any output to the terminal when mounting.

DOS_CHK_VERB_1

dosFs produces a minimal amount of output to the terminal when mounting.

DOS_CHK_VERB_2

dosFs produces a maximum amount of output to the terminal when mounting.

Other parameters can be used to configure physical attributes of the file system. They are as follows:

DOSFS_DEFAULT_CREATE_OPTIONS

The default parameter for the dosFsLib component. It specifies the action to be taken when a dosFs file system is instantiated. Its default is DOSFS_CHK_NONE.

DOSFS_DEFAULT_MAX_FILES

The maximum number of files. The default is 20.