Wine 或將實現應用前綴的 reflink 支持
郵件列表顯示,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