Birkaç gün önce projenin yapılacağı haberi çıktı. Jitter, resmi olarak GNU Projesi'nin kanatları altında bir proje haline geldi. ve şu anda GNU altyapısı kullanılarak ve proje gereksinimlerine uygun olarak GNU Jitter adı altında geliştirilmektedir.
Jitter'e aşina olmayanlar için şunu bilmelisiniz ki,a, taşınabilir ve çok hızlı sanal makineler oluşturmaya izin veren bir uygulamadır. kod yürütme performansı yorumlayıcılardan önemli ölçüde önde olan ve yerel derlenmiş koda yakın olan programlama dillerinin rastgele tasarımları için.
Jitter son derece taşınabilirdir ve doğru bir VM, yalnızca bir derleyiciye ve standart bir C kitaplığına sahip olan herhangi bir platformda tam olarak aynı davranışı sergileyecektir; ancak, GCC'li ELF sistemlerinde desteklenen mimarilerden biri (şu anda: M68k, MIPS, PowerPC, RISC-V, SPARC, x86_64; 64. seviye: Aarch390, Alpha, ARM, SXNUMXx) kullanıldığında performans daha iyi olacaktır. Elbette Jitter, GNU projesinin bir parçasıdır ve öncelikle GNU sisteminde kullanılmak üzere tasarlanmıştır.
jitter, desteklenen talimatların üst düzey bir belirtimini girdi olarak alır sanal bir makine tarafından, ve çıktıda bir sanal makinenin kullanıma hazır bir uygulamasını oluşturur verilen talimatları yürütmek için.
Spesifikasyondaki her talimatın mantığı C kodu kullanılarak belirtilir. Ek özellikler, C'de uygulanması zor olan ve etiket değeri denetimi ve taşma denetimi gibi dinamik programlama dillerinde bulunan koşullu dallanma işlemleri için desteği içerir.
Jitter çalışma zamanı, dinamik olarak yazılan dillerin gerektirdiği şekilde değer etiketi denetimi ve taşma denetimi ile aritmetik gibi, yalnızca C kullanılarak uygulanması zor koşullu dallandırma işlemleri için de verimli destek sunar. VM kodu, çoğu durumda verimli donanım mekanizmalarına dayanarak prosedür çağrısı ve geri dönüş işlemlerine erişir.
Ortaya çıkan sanal makine, az sayıda ekleme ile C olarak biçimlendirilir. montajcı. Çeşitli optimizasyonları etkinleştirmek ve teslimat mekanizmalarını seçmek için yapılandırmalar sağlanır ve sanal bir makineyi farklı platformlara taşımayı kolaylaştırır.
Kayıt, yığın ve birleştirme yürütme mimarilerinin kullanımını ve ayrıca sanal makine veri yapılarını CPU donanım kayıtlarında yansıtma ve çöp toplayıcıları bağlama yeteneğini destekler.
Oluşturulan kod, bir sanal makinedeki kodu dinamik olarak değiştirmek ve yürütmek için basit bir C API'sinin yanı sıra bir sanal makinedeki metin dosyalarından ayrı olarak kod yürütmek için bir denetleyici programı içerir.
Oluşturulan C kodu, yoğun bir şekilde koşullandırılmıştır ve değişen karmaşıklıktaki farklı dağıtım teknikleri kullanılarak çalışacak şekilde yapılandırılabilir; en verimli sevk teknikleri, Jitter tarafından sağlanan bazı mimariye özgü, ancak VM'ye özgü olmayan montaj desteğine dayanır; tüm gönderme modelleri, ancak bir tanesi de GNU C uzantılarına dayanmaktadır.
Son olarak, bu konuda daha fazla bilgi edinmek isteyenler için orijinal Jitter kodunun C ile yazıldığını ve GPLv3 lisansı altında mevcut olduğunu bilmeleri gerekir. Daha fazlasını şuradan öğrenebilirsiniz: aşağıdaki bağlantı.
Jitter nasıl edinilir?
Jitter'i test edebilmekle ilgilenenler, bir terminal açıp içine aşağıdaki komutu yazarak kaynak kodunu alabilirler:
git clone http://git.ageinghacker.net/jitter
Bu yapıldıktan sonra, şimdi kodun bulunduğu klasöre girmeye devam ediyoruz, bir yapılandırma komut dosyası da dahil olmak üzere Jitter'i yapılandırmak ve oluşturmak için gerekli dosyaları oluşturmak için kullanılan başlangıç komut dosyasını çalıştıracağız. Bunu şununla yapıyoruz:
cd jitter && ./bootstrap
Jitter'in yapılandırma ve yapılandırma için GNU kurallarını takip ettiğini ve kaynak dizinden yapılandırmayı desteklediğini belirtmekte fayda var; aslında, çapraz derlemeyi ve hatta bir öykünücü aracılığıyla çapraz derlemede test paketini çalıştırmayı destekler.
./configure && make
Son olarak, yürütmek için şunu yazın:
make check