Hosszabb szünet után ismét előtérbe került az NTSYNC Linux kernelmeghajtó fejlesztése, amely a Windows NT szinkronizációs primitívekkel való kompatibilitást hivatott javítani. Ez különösen a Wine és Proton (Steam Play) által futtatott Windows-játékok teljesítményét érinti pozitívan Linux alatt.
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 Linux 6.14-es kernelben már működő eszközként bemutatkozó NTSYNC meghajtó egy fontos lépés afelé, hogy a Wine gyorsabb és hatékonyabb módon kezelje a Windows-alkalmazások szinkronizációs műveleteit. Most egy új Merge Request (összeolvasztási kérelem) nyílt meg, amely ezt az új támogatást integrálja a Wine kódjába.
A fejlesztő, Elizabeth Figura, az alábbiakat írta a bejelentésben:
„Ez egy gyorsabb jelzés- és várakozáskezelést vezet be az NT események, szemaforok és mutexek esetében, amely lehetővé teszi, hogy számos játék és alkalmazás teljesítménye natív szintet érjen el. A cél hasonló a korábban alkalmazott „esync” és „fsync” szofverfoltokhoz, de azok hibái nélkül, amelyek miatt ezek nem kerülhettek be az alap Wine-kódba.”
Bár az ntsync meghajtó még nem jelent meg hivatalosan, a Linux-fejlesztők már elfogadták az alapágba, és a 6.14-es kernelben várható a megjelenése. Az API stabilnak tekinthető, így nincs akadálya annak, hogy a Wine oldalán is elinduljon a támogatás fejlesztése.
Mit jelent ez a Linux-játékosok számára?
Ha az NTSYNC támogatás bekerül a Wine-ba, és a felhasználók a Linux 6.14-es kernelt is használják, akkor az Windows-kompatibilitás jelentősen javulhat, különösen a játékok esetében. A Wine mellett a Valve Proton verzióiban is várható az integráció, ami további teljesítménynövekedést hozhat a Steam Play környezetben. Jelenleg a fejlesztés még felülvizsgálati fázisban van, így a végleges beépítés előtt további módosításokra lehet szükség. Azonban, ha minden a tervek szerint halad, a következő Wine fejlesztői kiadásokban már megjelenhet a támogatás.
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. Az NTSYNC célja, hogy a Windows NT szinkronizációs mechanizmusait hatékonyabban emulálja Linux alatt, ami kulcsfontosságú a Windows-játékok sima futtatásához Wine vagy Proton környezetben. Az ilyen szinkronizációs primitívek pontos implementációja drámai teljesítményjavulást hozhat, különösen játékok esetében.
A teljesítmény növekedése nagy mértékben változik az alkalmazástól és a felhasználó hardverétől függően. Néhány játék esetében az NT szinkronizáció nem okoz lassulást, és semmilyen változást nem lehet észlelni, de más játékok esetében a képfrissítési sebesség akár 50-150% javulását is megfigyelhették. A fenti táblázat különböző játékok képfrissítési sebességét mutatja be különböző hardvereken, Dmitry Skvortsov, FuzzyQuills, OnMars és a szerző által mért adatok alapján.
Játék | Eredeti | ntsync | Javulás |
---|---|---|---|
Anger Foot | 69 | 99 | 43% |
Call of Juarez | 99.8 | 224.1 | 125% |
Dirt 3 | 110.6 | 860.7 | 678% |
Forza Horizon 5 | 108 | 160 | 48% |
Lara Croft: Temple of Osiris | 141 | 326 | 131% |
Metro 2033 | 164.4 | 199.2 | 21% |
Resident Evil 2 | 26 | 77 | 196% |
The Crew | 26 | 51 | 96% |
Tiny Tina's Wonderlands | 130 | 360 | 177% |
Total War Saga: Troy | 109 | 146 | 34% |
Hozzászólások
Végre
Beküldte Balazs_B -
Értékelés:
Kíváncsi leszek hogy egy régebbi hardveren milyen változásokat lehet majd tapasztalni!
Végre
Beküldte kami911 -
Értékelés: