Vývojáři projektu Asahi Linux, který se zaměřuje na portování Linuxu na počítače Mac s ARM čipy Apple Silicon, oznámili přechod z používání permissivní licence MIT na kopyleft licenci GPLv2+. Rozhodnutí bylo přijato v důsledku pokusů o přivlastnění jejich práce pro vlastní prospěch. Někteří nepoctiví výrobci zneužívají práva, která poskytuje licence MIT, a využívají výsledky práce Asahi k potlačení původního projektu a agresivní monetizaci Linuxu na systémech s čipy Apple Silicon.
V některých případech tvůrci komerčních klonů kopírovali ještě nedokončený kód z osobních forků vývojářů Asahi, na kterých se stále pracovalo, a také publikovali odvozené práce bez zmínky o autorství nebo přepisovali kód pomocí AI nástrojů, aby zakryli převzetí kódu z jiného projektu. Licence MIT tyto manipulace umožňuje a nechrání před přivlastněním cizí práce.
Původně projekt Asahi zvolil licenci MIT, aby podpořil a přitáhl k účasti vývojáře z BSD systémů a dalších svobodných OS, avšak v současných podmínkách se projekt ukázal jako bezbranný vůči nepoctivému využití. Zajímavé je, že v roce 2002 se s podobnou situací potýkal projekt Wine, který byl nucen změnit licenci z MIT na LGPL, aby čelil vzniku proprietárních forků, ochránil ekosystém před fragmentací a podpořil přenos změn do hlavního projektu.
Kromě oznámení o změně licence projekt Asahi Linux podal zprávu o práci, která byla vykonána za posledních několik měsíců. Mezi úspěchy patří:
- Pro zařazení do hlavního jádra byly předány ovladače macaudio (zvukový subsystém) a avd (Apple Video Decoder), přičemž patche s jejich implementací obsahují přibližně 3100 a 13000 řádků kódu. Byly přidány základní popisy DeviceTree pro zařízení M4 Pro, M4 Max a M5. Když to bylo možné, vývojáři Asahi začali používat strategii upstream-first, při které se změny původně vyvíjejí v hlavním jádru. Tato strategie byla aplikována na vývoj ovladačů TI USB-PD, SPMI a Thunderbolt.
- Byla stabilizována a zbavena označení experimentálního vývoje podpora čipů M3. Ve srovnání s předchozí zprávou byla implementována podpora displejového procesoru (DCP), díky níž se podařilo zvýšit výkon, prodloužit výdrž baterie, zavést přechod do spánkového režimu a přidat možnost využití oblasti kolem „notch“ s kamerou na obrazovkách MacBook.
- Byl vyřešen problém s reverzním inženýrstvím čipů M5, na nichž se začaly používat miniaplikace v izolovaných enclaves řízených mikrojádrem Secure Kernel, které se používají pro úkoly, jako je indikace zapnutí kamery. Podařilo se současně spustit tři virtuální stroje s bootloaderem m1n1 pro Secure Kernel, enclavy a macOS s SPTM.
- Pokračuje reverzní inženýrství GPU čipů M3, které se výrazně liší od M1 a M2. V bootloaderu m1n1 byla implementována inicializace GPU a byla přidána podpora pro vykreslování nejjednodušších primitiv.
- Byly odeslány patche pro podporu Thunderbolt kontroléru do jádra Linux, který se liší od kontrolérů Intel a je neobvykle spojen s modulem pro správu spotřeby (PMGR). Zatím je podporováno pouze USB3, XDomain a přesměrování sítě přes Thunderbolt (přesměrování PCIe a DisplayPort nefunguje).
- Pokračuje vývoj projektu na spuštění Windows her bez virtuálního stroje. Problém vyvstával z toho, že hry pro Windows sestavené pro architekturu x86 jsou navrženy pro 4K stránkovou paměť, zatímco systémy Apple používají 16K stránky. K obraně před nesouladem velikostí stránkových pamětí se spouštělo virtuální stroj s dalším jádrem Linux, sestaveným s jinou velikostí stránkování, což vedlo k poklesu výkonu her přibližně o 20%.
Aby se obmezilo toto omezení, vývojáři Asahi portovali funkčnost P3S (Per Process Page Size), která je přítomna v jádrech platformy Android a umožňuje měnit velikost stránek paměti v závislosti na jednotlivých procesech. Pomocí této funkce se bez virtuálního stroje muvm podařilo spustit hry jako Star Wars Battlefront, Wolfenstein: The New Order, GTA IV a Fallout: New Vegas.
- Pomocí instrukcí SIMD byla optimalizována implementace prostorového audiové filtru (beamformer) pro mikrofony MacBook, což téměř zdvojnásobilo rychlost zpracování zvuku a snížilo zátěž CPU.
Zdroj: opennet.ru
