是否有任何特殊原因,为什么现代基于 Linux 的操作系统能够本机创建和挂载 NTFS,而 Windows 却直接不支持像 ext2/3/4 这样的“Linux 文件系统”并且需要额外的软件才能这样做?
答案1
是否有任何特殊原因,为什么基于 Linux 的操作系统能够本机创建和挂载 NTFS,而 Windows 却直接不支持 EXT4 并且需要额外的软件才能实现?
一个很大的区别是,Windows 是由一家公司开发的,它优先考虑自己的任务和兴趣,而 Ext4 支持不在其中,或者支持程度很低。而基于 Linux 的系统是各种独立项目的集合(它的名称是:分配) – Ubuntu 不必花费自己的资源去开发别人已经编写的软件。
因此,Linux 的 NTFS-3g 驱动程序并非专门作为发行版功能开发的,而是作为第三方项目开发的,大多数发行版可以简单地决定稍后将其作为内置组件包含在内。换句话说,它是“额外的软件”。
(或者至少,直到今年早些时候,它才被这样称呼,当时其他名为“ntfs3”的 NTFS 驱动程序被贡献出来直接成为 Linux 内核的一部分——与 NTFS-3g 不同,后者一直都是一个外部程序。)
Windows 也有类似的文件系统驱动程序项目——ext2IFS、ext4fsd、Paragon ExtFS、WinBtrfs——但第三方产品包含在 Windows 中的门槛通常是很多更高。(持续维护是一个问题;过去这类产品大多是“授权 XY 版本,不再更新”的交易。即使它是一个开源项目,文件系统驱动程序也不是你可以导入然后忘记的东西——微软需要分配时间和精力来维护它,这可能和一开始编写它一样多。)
Linux 本身是最大的例外(包含在 WSL2 中),部分原因可能是微软已经雇佣了不少 Linux 开发人员——事实上,Windows现在可以(间接)挂载 Ext4 文件系统通过依赖 WSL2 Linux 内核的一部分的 Ext4 驱动程序。
答案2
Windows 对 Ext4 FS 支持的需求并不大,所以他们不关心。相比之下,OpenSSH 最近作为一项功能添加到 Windows 中,包括客户端和服务器。
Ext4 并不是 Windows 不支持的单一文件系统 — 它仅支持其中一小部分:FAT、NTFS、ISO9660、UDF 等等,我想就这些了。那么,例如,你为什么不问为什么它不支持 HFS+ 和 XFS?ZFS 支持呢?其他文件系统(如 UFS、VxFS 等)呢?为什么如此关注 Ext4?
此外,仅支持文件系统并不是很有用。它通常部署在 LVM 上,因此您最好也支持 LVM(顺便说一下,Linux 支持 Windows 的 LDM)。添加软件 RAID。添加 LUKS。添加缓存(bcache 等)。这需要大量工作,目的是什么?谁会使用这种支持?
我是一名长期使用 Linux 的用户(自 1999 年以来)和系统管理员。我认为 Linux 中对 NTFS 的支持对于普通用户来说并不是那么必要,而且它相当特殊和小众。对于可移动存储,有 exFAT;对于双启动……我怀疑双启动本身是不是很有用,我认识的大多数“双启动者”实际上并没有太多地启动到“其他”系统;即使您要使用一个系统来工作,另一个系统来玩游戏,为什么它们需要访问彼此的文件?因此,我认为许多高级 Windows 用户对 Ext4 支持也有同样的感受——它没有用。那么,微软为什么要费心去支持它呢?