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