同一块盘,三种方式读写
同一台 Mac、同一块 USB 3.2 固态硬盘,分别用传统应用层方案、CrossDriver 新一代和 CrossDriver 内核版测试。
NTFS
Ext4
XFS
测试环境(示意,待定):MacBook Pro(M3 Pro,macOS 15),Samsung T7 Shield 1 TB(USB 3.2 Gen 2)。顺序读写为单个 10 GB 文件,小文件为 10,000 个 100 KB 文件。每项测 5 次取中位数,测试前清空缓存。
查看数据表
| 格式 | 指标 | 传统应用层方案 | CrossDriver 新一代 | CrossDriver 内核版 |
|---|---|---|---|---|
| NTFS | 顺序读取(MB/s) | 420 | 880 | 960 |
| NTFS | 顺序写入(MB/s) | 180 | 760 | 880 |
| NTFS | 小文件写入(个/秒) | 150 | 900 | 1,150 |
| Ext4 | 顺序读取(MB/s) | 380 | 900 | 980 |
| Ext4 | 顺序写入(MB/s) | 150 | 820 | 920 |
| Ext4 | 小文件写入(个/秒) | 120 | 1,050 | 1,300 |
| XFS | 顺序读取(MB/s) | — | 910 | 990 |
| XFS | 顺序写入(MB/s) | — | 850 | 930 |
| XFS | 小文件写入(个/秒) | — | 980 | 1,200 |
差别在数据走的路
三种方式都能在访达里看到磁盘,但每一次读写经过的路径完全不同。
用户态翻译
- 访达 / 你的 App
- macOS 内核(文件请求转发层)
- 用户态程序翻译 NTFS / Ext4
- macOS 内核(再次进出)
- 磁盘
- 不需要降低系统安全性的方案也有
- 每次读写都要在内核和普通程序之间多次往返
- 翻译程序多为单线程,大文件写入、小文件复制最慢
- Ext4 写入、XFS 读写几乎没有成熟方案
Linux 原生驱动 + 系统高速通道
- 访达 / 你的 App
- macOS 内核自带的网络文件系统客户端(带缓存)
- 隔离引擎:Linux 内核原生 NTFS / Ext4 / XFS 驱动
- 磁盘(整盘直通引擎)
- 文件系统由 Linux 自己的驱动处理,几十年的优化与多线程写回
- 大块连续传输,系统缓存两端都在用
- 无需内核扩展、无需降低安全性
- 引擎出错只影响引擎,Mac 照常运行
macOS 内核直接读写
- 访达 / 你的 App
- CrossDriver 内核扩展
- 磁盘
- 路径最短,速度最快
- Apple 芯片 Mac 需进入恢复模式降低安全性并允许内核扩展
- macOS 大版本升级后可能需要等待更新
- 驱动出错可能导致整台 Mac 重启
Mac 读写其他格式磁盘的四种做法
市面上的产品大致分这四代。CrossDriver 同时提供第四代(新一代)和第二代(内核版,即 crossdriver.com 上的经典版)。
| 用户态框架(FUSE 类) | 内核扩展 | Apple FSKit | 虚拟化引擎(CrossDriver 新一代) | |
|---|---|---|---|---|
| 文件系统由谁实现 | 第三方重写(如 ntfs-3g) | 第三方内核驱动 | 第三方用户态实现 | Linux 内核原生驱动 |
| 需要内核扩展 | 部分需要 | 需要 | 不需要 | 不需要 |
| 需要降低 Mac 的安全性 | 部分需要 | 需要(Apple 芯片) | 不需要 | 不需要 |
| 速度 | 慢 | 最快 | 待实测 | 接近内核级 |
| 出错时的影响 | 该程序退出 | 可能整机重启 | 该扩展退出 | 只影响引擎 |
| 系统要求 | 视方案而定 | 随 macOS 版本更新 | 较新的 macOS | macOS 14 或更高版本 |
| 能支持的格式 | 取决于有无用户态实现 | 逐个开发 | 逐个开发 | Linux 支持的都能接入 |
各代表现因具体产品而异;FSKit 方案的速度我们会纳入正式测试。
三种模式,按你的需要选
大多数人选新一代就够了:够快、够安全、装完就能用。需要每一分速度、又能接受降低安全性的,再考虑内核版。
| 传统应用层方案 | CrossDriver 新一代 | CrossDriver 内核版(经典版) | |
|---|---|---|---|
| 顺序读写速度 | 慢 | 快(接近内核级) | 最快 |
| 小文件复制 | 很慢 | 快 | 最快 |
| 需要降低 Mac 的安全设置 | 视方案而定 | 不需要 | 需要(Apple 芯片) |
| 安装后重启 | 视方案而定 | 不需要 | 需要 |
| macOS 升级后 | 可能失效 | 通常照常使用 | 可能需等待更新 |
| 驱动出错的影响 | 该程序退出 | 只影响引擎,Mac 不受影响 | 可能整机重启 |
| 文件系统实现 | 第三方重写 | Linux 内核原生驱动 | CrossDriver 内核驱动 |
| 适合 | 偶尔读文件 | 日常读写、大文件、开发与 NAS 数据 | 追求极限吞吐的专业用户 |
| 价格(NTFS / Ext4 · XFS,终身授权) | 视产品而定 | US$19.95 / US$39.95 | US$29.95 / US$59.95 |
传统应用层方案指市面上基于 FUSE 等用户态框架的工具,具体表现因产品而异。
新一代为什么能接近内核级
原生驱动
NTFS、Ext4、XFS 由 Linux 内核自己的驱动读写,和 Linux 电脑、服务器上用的是同一套代码。
大块传输
访达通过 macOS 内核自带的网络文件系统客户端读写,按大块连续传输,两端都有缓存。
整盘直通
磁盘整块交给引擎,不经过文件模拟层;写入由 Linux 合并后再落盘。
轻量引擎
引擎几秒内启动,只为当前磁盘工作,不跑任何多余的服务。
数据怎么测的
发布前我们会公开完整的测试脚本和原始数据,任何人都可以复现。
测试环境(待定)
- Mac
- MacBook Pro M3 Pro · 36 GB 内存
- 系统
- macOS 15
- 磁盘
- Samsung T7 Shield 1 TB · USB 3.2 Gen 2
- 对比对象
- 市售 FUSE 类方案、CrossDriver 新一代、CrossDriver 内核版(crossdriver.com 经典版)
测试项目
- 顺序读取 / 写入
- 单个 10 GB 文件,1 MB 块
- 小文件写入
- 10,000 个 100 KB 文件
- 重复次数
- 每项 5 次,取中位数
- 缓存
- 每次测试前推出并重新连接磁盘
目前页面上的数字为预估值,用于排版示意。
问答
新一代为什么不直接做成内核扩展?
内核扩展在 Apple 芯片 Mac 上需要进入恢复模式降低安全性,每次 macOS 大版本升级也可能失效。新一代用 macOS 自带的虚拟化框架,装完就能用,速度接近内核级。
内核版在哪里买?
内核版就是 crossdriver.com 上已经发布的经典版:NTFS For Mac、Ext4 For MAC、XFS For MAC。
内核版怎么安装?
Apple 芯片 Mac 需要在恢复模式的“启动安全性实用工具”中选择“降低安全性”并允许内核扩展,然后重启;Intel Mac 需要在“隐私与安全性”中允许。新一代不需要这些步骤。
为什么 XFS 没有传统应用层方案的数据?
我们没有找到成熟、可读写的 XFS 应用层方案,所以只对比新一代和内核版。
我的磁盘能跑这么快吗?
速度上限取决于磁盘和接口。机械硬盘的瓶颈在磁盘本身(通常 100–200 MB/s),三种方式顺序读写差别不大,但小文件复制依然差距明显;U 盘和 USB 2.0 也一样。差距最大的是 USB 3.2 及更快的固态硬盘。