Acorn 磁盘文件系统 - ADFS

ADFS 支持的文件系统

ADFS 模块支持以下具有

  • 新映射

  • 新目录或大目录的 Filecore 格式

就命名格式而言,这意味着我们支持

  • E 和 E+,带或不带引导块

  • F 和 F+

我们完全支持从这些文件系统中读取文件,以及写入其现有分配中的现有文件。本质上,我们不支持更改任何文件系统元数据。

这旨在支持在 RISC OS Filecore 文件系统上回环挂载 Linux 本地文件系统,但允许更改文件中的数据。

如果配置了写入支持 (ADFS_FS_RW),我们将允许基本的目录更新,特别是更新访问模式和时间戳。

ADFS 的挂载选项

uid=nnn

分区中的所有文件都将由用户 ID nnn 拥有。默认值为 0(root)。

gid=nnn

分区中的所有文件都将属于组 nnn。默认值为 0(root)。

ownmask=nnn

ADFS “所有者”权限的权限掩码将为 nnn。默认值为 0700。

othmask=nnn

ADFS “其他”权限的权限掩码将为 nnn。默认值为 0077。

ftsuffix=n

当 ftsuffix=0 时,不应用文件类型后缀。当 ftsuffix=1 时,将添加与 RISC OS 文件类型对应的十六进制后缀。默认值为 0。

ADFS 权限到 Linux 权限的映射

ADFS 权限包括以下内容

  • 所有者读取

  • 所有者写入

  • 其他读取

  • 其他写入

(在旧版本中,确实存在“执行”权限,但这与 Linux “执行”权限的含义不同,现在已过时)。

映射执行如下

    Owner read                              -> -r--r--r--
    Owner write                             -> --w--w---w
    Owner read and filetype UnixExec        -> ---x--x--x
These are then masked by ownmask, eg 700    -> -rwx------
    Possible owner mode permissions         -> -rwx------

    Other read                              -> -r--r--r--
    Other write                             -> --w--w--w-
    Other read and filetype UnixExec        -> ---x--x--x
These are then masked by othmask, eg 077    -> ----rwxrwx
    Possible other mode permissions         -> ----rwxrwx

因此,使用默认掩码,如果文件是所有者读/写,而不是 UnixExec 文件类型,则权限将为

-rw-------

但是,如果掩码为 ownmask=0770,othmask=0007,则这将修改为

-rw-rw----

对这些掩码的使用没有任何限制。您可能希望任何读取位都允许所有人读取文件,但保留默认写入保护 (ownmask=0755,othmask=0577)

-rw-r--r--

因此,您可以根据需要在 Linux 下的权限对权限转换进行定制。

RISC OS 文件类型后缀

RISC OS 文件类型存储在文件加载地址的位 19..8 中。

为了使非 RISC OS 系统能够在不丢失文件类型信息的情况下用于存储文件,设计了一种文件命名约定(最初用于 NFS),其中形式为 ,xyz 的十六进制后缀表示文件类型:例如,BasicFile,ffb 是一个 BASIC (0xffb) 文件。现在,RISC OS 模拟器(如 RPCEmu)也使用此命名约定。

使用选项 ftsuffix=1 挂载 ADFS 磁盘会将适当的文件类型后缀附加到从目录读取的文件名。如果 ftsuffix 选项为零或省略,则不会添加文件类型后缀。