邮件列表显示,Wine 或将实现 reflink 支持,以节省存储空间。
一直以来,Wine 坚持为每个应用创建一个新的前缀,许多系统文件被重复用于各个应用,从而占用许多额外的存储空间。例如在没有 Mono 或 Gecko 的 MinGW 构建的 Wine 中,新的 32 位前缀超过150MB,而 64 位前缀超过 300MB。然而这些文件中的绝大部分都与 Wine 的中央 DLL 副本逐字节相同。
因此,开发者推出了该补丁集,通过 copy_file_range 系统调用在 Wine 中实现了 Reflink 支持。当底层文件系统支持 reflink 时,禁用 Mono 和 Gecko 的新前缀大小会减少到 1MB 以下。由此产生的 Wine 前缀与没有 reflink 的情况下创建的前缀是逐字节相同的,但磁盘占用空间更少。如果使用硬链接或符号链接,并像 winetricks 等应用程序一样写入一个系统文件,它将覆盖中央副本。
此外,开发者还说明了使用 copy_file_range 而不是 FICLONE 的原因,包括在 windows 中已被使用、允许内核加速以及在 FreeBSD 上被支持。同时指出,暂时不会预生成 Wine 前缀安装过程中动态生成的文件,包括 16 位的假 DLL 和清单文件。
显然,如果该补丁集能进入主线,系统将能支持安装更多的 Windows 应用。
猜你喜欢:暂无回复。