Wine 或将实现应用前缀的 reflink 支持

开发 前端
一直以来,Wine 坚持为每个应用创建一个新的前缀,许多系统文件被重复用于各个应用,从而占用许多额外的存储空间。例如在没有 Mono 或 Gecko 的 MinGW 构建的 Wine 中,新的 32 位前缀超过150MB,而 64 位前缀超过 300MB。

[[413126]]

邮件列表显示,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 应用。

本文转自OSCHINA

本文标题:Wine 或将实现应用前缀的 reflink 支持

本文地址:https://www.oschina.net/news/152119/wine-prefix-reflink-support

责任编辑:未丽燕 来源: 开源中国
相关推荐

2009-03-11 20:15:39

LinuxWineCrossOver

2011-09-09 09:17:41

Windows 8平板Windows Pho微软

2023-02-03 14:24:15

Wine 8.1Windows

2010-07-27 09:57:59

IBMzEnterprise服务器

2021-01-14 15:49:10

Linux 5.12GCC编译器

2009-05-20 13:26:33

苹果Iphone移动OS

2021-03-22 10:07:11

LinuxIDE驱动支持

2009-01-14 13:56:39

Wine应用程序

2010-02-01 08:54:20

Chrome OS多点触控

2020-09-28 09:58:18

Linux WSL操作系统

2011-03-03 14:23:42

BlackBerry

2012-06-11 09:44:01

Firefox 16Web

2016-11-22 17:23:22

Windows 10x86软件

2013-10-30 11:28:10

Chrome OS平板虚拟键盘

2021-01-29 14:20:28

Linux 5.10维护Linux 基金会

2021-05-09 20:03:04

Wine 6.8 JavaScriptMap 对象

2021-01-19 12:34:05

Wine 6.0LinuxWindows

2011-11-03 17:15:59

苹果商店应用

2021-06-28 10:38:33

Fedora 35加密存储

2013-01-15 10:20:56

Ubuntu Phon
点赞
收藏

51CTO技术栈公众号