FEX 2611 yayımlandı: ARM'da x86 uygulamaları için JIT iyileştirmeleri geldi
FEX 2611, AArch64 Linux'ta x86 uygulamalarını çalıştıran JIT hattında iyileştirmeler getirdi. Ekip, bir yazmaç için Linux çekirdeğinden uyum bekliyor.

AArch64 mimarili Linux sistemlerde x86 ve x86_64 uygulamalarını, oyunları ve Wine üzerinden Windows yazılımlarını çalıştırmayı hedefleyen FEX'in 2611 sürümü yayımlandı. Yeni sürümün öne çıkan tarafı JIT tarafındaki iyileştirmeler. Ancak geliştiricilerin gündeminde yalnızca kendi kodları yok: Linux çekirdeğinin, belirli bir yazmacın kullanımı konusunda hem AArch64 belirtimiyle hem de Windows on ARM ile macOS'in Apple Silicon üzerindeki davranışıyla hizalanması da bekleniyor.
Sürümde öne çıkan başlık: JIT iyileştirmeleri
FEX, x86 ve x86_64 için derlenmiş programları ARM tabanlı bir işlemcide çalışabilir hale getiren bir katman olarak çalışıyor. Bunu yaparken program kodunu çalışma anında ARM komutlarına çeviren bir JIT derleyici kullanıyor. 2611 sürümünün ana duyurusu da bu çeviri hattında yapılan iyileştirmeler. Elimizdeki bilgi bu iyileştirmelerin hangi senaryolarda ne kadar fark yarattığını ayrıntılı biçimde vermiyor. Bu yüzden hız artışı ya da başka bir performans kazancı konusunda bir iddiada bulunmak doğru olmaz.
Bununla birlikte JIT tarafındaki her düzenleme, çevrilen kodun kalitesini, çeviri sırasındaki yükü ve genel uyumluluğu etkileyebildiği için emülasyon projelerinde dikkatle izlenir. Oyun ve masaüstü uygulamalarını hedefleyen bir proje için bu alan, kullanıcı deneyimini doğrudan belirleyen bölümlerden biridir.
Çekirdek tarafında bekleyen uyum
Sürümle ilgili en dikkat çekici ayrıntı, FEX'in bir bağımlılığı açıkça beklediğinin belirtilmesi. Proje, Linux çekirdeğinin AArch64 belirtimine uymasını bekliyor. Aynı beklenti, Windows on ARM ve Apple Silicon üzerindeki macOS'in söz konusu yazmaçla ilgili davranışına yaklaşmayı da kapsıyor. Elimizdeki özet metin hangi yazmaçtan söz edildiğini vermiyor. Bu nedenle ayrıntıyı tahmin etmek yerine meselenin genel çerçevesini aktarmak daha sağlıklı.
Burada ortaya çıkan tablo şöyle: Farklı işletim sistemleri aynı işlemci mimarisinde bile bazı yazmaçların nasıl kullanılacağı konusunda ayrı yollar izleyebiliyor. Bir emülatör bu farkı tek bir kod yoluyla yönetmek istiyorsa, Linux'un da diğer büyük platformlarla aynı kurala yaklaşması işi kolaylaştırıyor. FEX ekibinin beklentisi bu yönde okunabilir.
Arka plan
İşlemci yazmaçları, komutların doğrudan eriştiği çok hızlı ve küçük depolama alanlarıdır. Bir mimaride hangi yazmacın hangi amaçla kullanılacağı, çoğunlukla belirtimlerde ve işletim sistemlerinin uygulama ikili arayüzü kurallarında tanımlanır. Yazılım geliştiriciler ve derleyiciler bu kurallara güvenerek kod üretir. Kurallar platformlar arasında farklılaşırsa, birden fazla sistemde çalışması beklenen düşük seviyeli araçların bu farkları ayrıca hesaba katması gerekir.
FEX gibi bir emülasyon katmanı ise iki ayrı dünyanın arasında durur. Bir tarafta x86 programlarının beklentileri, diğer tarafta ARM işlemcinin ve çalıştığı işletim sisteminin kuralları vardır. JIT bu iki dünya arasında çeviri yaparken yazmaçları verimli kullanmak ister. Çekirdeğin ya da işletim sisteminin bir yazmaç üzerindeki tutumu belirsiz veya platforma göre değişken olduğunda, o yazmacı güvenle kullanmak zorlaşabilir.
Wine ise Windows uygulamalarını Linux üzerinde çalıştırmak için kullanılan uyumluluk katmanıdır. FEX ile birlikte düşünüldüğünde, ARM Linux üzerinde x86 mimarisi için yazılmış Windows oyunlarını çalıştırma hedefi gündeme gelir. Bu nedenle proje yalnızca bir işlemci çeviri aracı değil, daha geniş bir uyumluluk zincirinin parçasıdır.
Neden önemli?
ARM tabanlı bilgisayarlar ve geliştirme kartları yaygınlaştıkça, x86 için yazılmış yazılımların bu cihazlarda çalışabilmesi önem kazanıyor. Özellikle oyunlar ve eski masaüstü uygulamaları çoğu zaman yeniden derlenmiyor. Bu yüzden emülasyon katmanlarının olgunlaşması, ARM Linux kullanıcıları için pratik bir fark yaratabiliyor.
FEX 2611'in gösterdiği bir diğer nokta, bu tür projelerin gelişiminin yalnızca kendi kod tabanına bağlı olmaması. Çekirdek düzeyindeki uyum sorunları, kullanıcı alanındaki uygulamaların tasarım tercihlerini etkileyebiliyor. Linux'un AArch64 belirtimiyle ve diğer büyük platformların davranışıyla daha uyumlu hale gelmesi, hem FEX'in işini kolaylaştırabilir hem de ARM üzerindeki yazılım ekosistemini daha öngörülebilir kılabilir. Çekirdek tarafında bu konuda ne zaman bir adım atılacağı ise mevcut bilgilerle belli değil.
Kaynak: Yudum — https://www.yudum.net/haber/fex-2611-yayimlandi-armda-x86-uygulamalari-icin-jit-iyilestirmeleri-geldi.html — Yazdırma tarihi:














