【发布时间】:2020-09-19 00:24:21
【问题描述】:
我有一种特殊的磁盘映像格式(压缩并带有坏块等额外信息),并希望在 macOS 中将其作为块设备(例如在/dev/rdisk 下)提供。
我正在寻找有关如何编写只读块级用户空间驱动程序的指针。
我认为我需要使用 IOKit 来执行此操作,但该领域的文档非常稀少,据我所知没有提供任何示例代码。
我查看了 Amit Singh 的 Mac OS Internals,但这只涉及过滤通过添加的驱动程序路由的现有块。但是我需要从一个单独的文件中读取数据,即我需要使用文件系统,如果可能的话,我还想在用户空间应用程序中执行此操作,因为制作 kext 既难以调试,现在也被弃用了.
理想情况下,这应该适用于当前的 macOS 版本,包括 10.15,但我也很高兴有一个仅适用于旧 macOS 版本的解决方案,从 10.6 开始。
也许我在这里仍然误解了一些事情。我的印象是甚至在 10.15 之前就可以编写用户空间 IOKit 驱动程序。但也许这对于块存储设备是不可能的?欢迎任何澄清。我感到很失落。
2020 年 6 月 22 日更新
我也在 OSXFUSE 支持论坛上问过这个问题,并在那里得到了negative reply。
【问题讨论】: