Wine 或?qū)崿F(xiàn)應(yīng)用前綴的 reflink 支持
郵件列表顯示,Wine 或?qū)崿F(xiàn) reflink 支持,以節(jié)省存儲空間。
一直以來,Wine 堅持為每個應(yīng)用創(chuàng)建一個新的前綴,許多系統(tǒng)文件被重復(fù)用于各個應(yīng)用,從而占用許多額外的存儲空間。例如在沒有 Mono 或 Gecko 的 MinGW 構(gòu)建的 Wine 中,新的 32 位前綴超過150MB,而 64 位前綴超過 300MB。然而這些文件中的絕大部分都與 Wine 的中央 DLL 副本逐字節(jié)相同。
因此,開發(fā)者推出了該補丁集,通過 copy_file_range 系統(tǒng)調(diào)用在 Wine 中實現(xiàn)了 Reflink 支持。當(dāng)?shù)讓游募到y(tǒng)支持 reflink 時,禁用 Mono 和 Gecko 的新前綴大小會減少到 1MB 以下。由此產(chǎn)生的 Wine 前綴與沒有 reflink 的情況下創(chuàng)建的前綴是逐字節(jié)相同的,但磁盤占用空間更少。如果使用硬鏈接或符號鏈接,并像 winetricks 等應(yīng)用程序一樣寫入一個系統(tǒng)文件,它將覆蓋中央副本。
此外,開發(fā)者還說明了使用 copy_file_range 而不是 FICLONE 的原因,包括在 windows 中已被使用、允許內(nèi)核加速以及在 FreeBSD 上被支持。同時指出,暫時不會預(yù)生成 Wine 前綴安裝過程中動態(tài)生成的文件,包括 16 位的假 DLL 和清單文件。
顯然,如果該補丁集能進(jìn)入主線,系統(tǒng)將能支持安裝更多的 Windows 應(yīng)用。
本文轉(zhuǎn)自O(shè)SCHINA
本文標(biāo)題:Wine 或?qū)崿F(xiàn)應(yīng)用前綴的 reflink 支持
本文地址:https://www.oschina.net/news/152119/wine-prefix-reflink-support