macOS M1上虚拟文件系统(VFS)内核扩展的替代方案

macOS M1上虚拟文件系统(VFS)内核扩展的替代方案,macos,kernel-extension,vfs,macos-system-extension,fileprovider-extension,Macos,Kernel Extension,Vfs,Macos System Extension,Fileprovider Extension,我们为macOS上的虚拟文件系统(VFS)开发了内核扩展(KEXT),以将我们的软件与外部程序(如Adobe InDesign或Microsoft Word)集成。我们的许多客户都使用我们的软件和KEXT 看起来KEXTs已经被弃用了,而且在未来的macOS版本中可能会被完全删除,尤其是在基于苹果硅的计算机上。例如,见苹果在其发布的公告: “这就是为什么强烈鼓励开发人员在删除macOS对未来使用苹果硅的Mac电脑的kext支持之前采用系统扩展的原因” 因此,我们目前正在调查可能的替代方案 苹果建

我们为macOS上的虚拟文件系统(VFS)开发了内核扩展(KEXT),以将我们的软件与外部程序(如Adobe InDesign或Microsoft Word)集成。我们的许多客户都使用我们的软件和KEXT

看起来KEXTs已经被弃用了,而且在未来的macOS版本中可能会被完全删除,尤其是在基于苹果硅的计算机上。例如,见苹果在其发布的公告:

“这就是为什么强烈鼓励开发人员在删除macOS对未来使用苹果硅的Mac电脑的kext支持之前采用系统扩展的原因”

因此,我们目前正在调查可能的替代方案

苹果建议迁移到系统扩展,而不是KEXTs。然而,我们发现的唯一与VFS相关的API是实现一个基于

不幸的是,
NSFileProviderReplicatedExtension
有几个缺陷:

  • 文件可以在云中,也可以下载。仅下载/读取文件的一部分是不可能的。这对我们来说是一个很大的性能问题,因为我们处理的是大图像(>1GB)。我们集成的程序通常只读取图像的一部分,例如嵌入式预览。API不提供访问文件选定块(随机访问文件)的方法
  • 文件提供程序通过
    枚举器
    了解文件系统内容。因此,必须首先枚举(列出)文件夹中的所有内容。否则无法访问它。但是,我们无法列举我们的VF。VFS的大部分内容都是完全动态的。只有当客户端第一次访问它时,它才存在。此类动态内容还包括动态参数,如客户端的区域设置或图像将放置的框的大小。由于我们事先不知道这些参数,因此无法预先枚举VFS的内容
  • 这意味着,当前状态下的
    NSFileProviderReplicatedExtension
    不是“真实”VFS的替代品,因此我们不能将其用作当前VFS KEXT的替代品

    我的问题:

  • 苹果是否也会在未来版本的(基于Apple Silicon/M1的)操作系统中允许内核扩展?或者至少有一个明确的截止日期
  • 如果没有,苹果官方建议用什么替代基于KEXT的VFS解决方案
  • NSFileProviderReplicatedExtension的API是否会得到改进,使其表现得像一个“真实”的文件系统,从而使上述缺陷不再成为问题
  • 非常感谢您的回答或评论

    致以最良好的祝愿

    迈克尔

    苹果是否也会在未来版本的(基于Apple Silicon/M1的)操作系统中允许内核扩展?或者至少有一个明确的截止日期

    苹果并没有给出具体的时间表,而且他们偶尔也会违背支持的承诺

    但是,这种类型的硬API弃用和删除通常是作为主要版本的一部分进行的,因此您通常会在WWDC上收到一年的弃用通知,用户可能会在最早发布OS版本的.0时看到弃用通知,有时还会看到.3或.4版本。然后,您通常会在下一次WWDC上被告知API在即将发布的版本中被阻止,因此此时您应该已经实现了替换

    如果没有,苹果官方建议用什么替代基于KEXT的VFS解决方案

    据我所知,
    NSFileProviderReplicatedExtension
    是目前唯一的一个

    NSFileProviderReplicatedExtension的API是否会得到改进,使其表现得像一个“真实”的文件系统,从而使上述缺陷不再成为问题

    除了通过测试版SDK,苹果通常不会预先发布未来的API

    我的忠告是:

    • 您使用“反馈助手”遇到的每个文件提供程序缺陷的文件问题。(雷达)
    • 向苹果提交“增强请求”反馈问题,以“真实”文件系统API替换VFS KPI
    • 如果您的vfs kext对您的业务/产品至关重要,我建议通过TSI另外询问苹果的DTS他们对您的情况有何建议。请参考已归档问题的反馈ID,否则他们会建议您归档问题