Új szinkronizációs driver a Windows-játékok teljesítményének növelésére Linux alatt

kami911 képe

A Linux 6.10-ben debütáló NTSYNC driver a Windows NT szinkronizációs primitívek emulálására lett kifejlesztve, hogy a Wine és a Steam Play (Proton) alapú Windows-játékok futtatása Linux alatt sokkal hatékonyabb és gyorsabb legyen. A Wine egy szoftverréteg, amely lehetővé teszi, hogy Windows-alkalmazásokat futtassunk Linuxon, míg a Proton kifejezetten a Windows-játékok kompatibilitásának javítására lett optimalizálva Linuxon. Az új NTSYNC driver lehetőséget kínál arra, hogy a Windows-szoftverek szinkronizációs műveleteit natívan kezelje, így növelve a hatékonyságot és a teljesítményt. Ez különösen fontos a játékok számára, ahol a szinkronizáció kulcsszerepet játszik a sima futásban és a stabil teljesítményben.

A „hibás” státusz és a késlekedés

Bár az NTSYNC driver első verziója bekerült a Linux 6.10 Git tárolójába, az összes szükséges funkciót biztosító javításokat nem sikerült időben beépíteni. Ezért a driver jelenleg „hibás” jelzéssel van ellátva, ami azt jelenti, hogy nem fog automatikusan lefordulni a szokásos kernelépítések során. Ez nagy csalódást jelenthet a játékosok és fejlesztők számára, mivel az NTSYNC jelentős teljesítménynövekedést hozhatna a Windows-játékok Linux alatti futtatásában. Azonban a fejlesztők remélik, hogy a hiányzó foltok a Linux 6.11 verzióban vagy a közeljövőben beépítésre kerülnek.

A Wine projekt a Windows API-t emulálja a felhasználói térben. Az API egy része, különösen az NT szinkronizációs primitívek, történelmileg RPC-n keresztül került kezelésre egy dedikált „kernel” folyamaton keresztül. Azonban az újabb alkalmazások egyre inkább használják ezeket az API-kat, és az RPC overhead korlátozó tényezővé vált.

Az NT szinkronizációs API-k túl bonyolultak ahhoz, hogy egyszerűen ráépítsék a meglévő primitívekre anélkül, hogy a jó működést feláldoznák. Bizonyos műveletek, mint például az NtPulseEvent() vagy az NtWaitForMultipleObjects() „mindenre várakozás” módozata, közvetlen ellenőrzést igényel a várakozási sorral kapcsolatban, és olyan várakozási sor megvalósítása, ami elég robosztus a Wine számára a felhasználói térben, nem lehetséges. Ezért javasolt, hogy a vezérlő illesztőprogram közvetlenül a Linux kernelben kerüljön megvalósításra a problémás interfészek jobb teljesítményű megoldásával.

Ez a vezérlő illesztőprogram bemutatásra került a 2023-as Linux Plumbers Conference konferencián. Azoknak, akik mélyebben érdeklődnek a Wine-ban használatos szinkronizáció iránt és a történettel kapcsolatban, illetve a probléma korábbi megoldási kísérletei kapcsán, a prezentáció felvételét itt tekinthetik meg:

Linux Plumbers Conference 2023 prezentáció

Ezzel a Linux kernel számára egy új karaktereszköz-illesztőprogram került bevezetésre, a /dev/ntsync, amelyet a Windows NT szinkronizációs primitívek implementálására használnak.

Várakozások és jövőbeli fejlesztések

Az NTSYNC driver bevezetése nagy lépés a Windows-játékok Linux alatti teljesítményének javítása felé. Amint a hiányzó javításokat és funkciókat beépítik, a játékosok komoly teljesítményjavulásra számíthatnak. Ez újabb lendületet adhat a Linux-alapú játékrendszerek és a Proton népszerűségének, lehetővé téve a Windows-platformon elérhető játékok szélesebb körű támogatását. Az NTSYNC-hez kapcsolódó fejlesztések beépítése kulcsfontosságú lesz a jövőbeni Linux-kiadások számára, és a Linux-közösség reménykedik, hogy a következő verziókban már teljes mértékben működőképes lesz.