Jitter je službeno postao dio GNU projekta

Prije nekoliko dana objavljeno je da je projekt Jitter službeno postao projekt pod okriljem GNU projekta te se sada razvija pod imenom GNU Jitter koristeći GNU infrastrukturu i u skladu sa zahtjevima projekta.

Za one koji nisu upoznati s Jitterom, to je implementacija koja omogućuje generiranje prenosivih i vrlo brzih virtualnih strojeva za proizvoljne dizajne programskih jezika, čije su performanse izvršavanja koda znatno ispred interpretera i približavaju se izvorno kompajliranom kodu.

Jitter je vrlo prenosiv i ispravan VM će pokazati potpuno isto ponašanje na bilo kojoj platformi koja ima samo kompajler i standardnu ​​C biblioteku; međutim, performanse će biti bolje korištenjem jedne od podržanih arhitektura (trenutačno: M68k, MIPS, PowerPC, RISC-V, SPARC, x86_64; 64. razina: Aarch390, Alpha, ARM, SXNUMXx) na ELF sustavima s GCC. Naravno, Jitter je dio GNU projekta i dizajniran je prvenstveno za korištenje u GNU sustavu.

Jitter kao ulaz uzima specifikaciju visoke razine instrukcija koje podržava virtualni stroj, a na izlazu formira gotovu implementaciju virtualnog stroja za izvršavanje zadanih instrukcija.

Logika svake instrukcije u specifikaciji specificirana je pomoću C koda. Dodatne značajke uključuju podršku za uvjetne operacije grananja koje je teško implementirati u C-u i koje su svojstvene dinamičkim programskim jezicima, kao što su provjera vrijednosti oznaka i provjera prelijevanja.

Jitter runtime također ima učinkovitu podršku za teške za implementaciju operacija uvjetnog grananja koristeći samo C, kao što je provjera oznake vrijednosti prema zahtjevima dinamički upisanih jezika i aritmetika s provjerom preljeva. VM kod pristupa operacijama poziva procedure i vraćanja, u većini slučajeva oslanjajući se na učinkovite hardverske mehanizme.

Rezultirajući virtualni stroj formatiran je u C-u s malim brojem asemblerskih umetaka. Pružene su konfiguracije koje omogućuju različite optimizacije i odabir mehanizama isporuke, što olakšava migraciju virtualnog stroja na različite platforme.

Podržava korištenje arhitektura izvođenja registra, stogova i spajanja, kao i mogućnost zrcalnog prikaza struktura podataka virtualnog stroja u registrima hardvera procesora i povezivanja sakupljača smeća.

Generirani kod uključuje jednostavan C API za dinamičku zamjenu i izvršavanje koda u virtualnom stroju, kao i program kontrolera za odvojeno izvršavanje koda iz tekstualnih datoteka u virtualnom stroju.

Generirani C kod je jako uvjetovan i može se konfigurirati za rad korištenjem različitih tehnika distribucije različite sofisticiranosti; najučinkovitije tehnike slanja oslanjaju se na neku specifičnu arhitekturu, ali ne i VM-specifičnu podršku za sklapanje koju pruža Jitter; svi modeli otpreme, ali jedan se također temelji na GNU C ekstenzijama.

Konačno, za one koji žele saznati više, izvorni Jitter kod napisan je u C-u i dostupan je pod GPLv3 licencom. Više možete saznati na sljedećoj poveznici.

Kako dobiti Jitter?

Za one koji su zainteresirani da mogu testirati Jitter, mogu dobiti izvorni kod otvaranjem terminala i upisivanjem sljedeće naredbe u njega:

git clone http://git.ageinghacker.net/jitter

Nakon što je to učinjeno, sada nastavljamo s unosom mape koja ima kod, izvršit ćemo skriptu za pokretanje koja se koristi za generiranje potrebnih datoteka za konfiguriranje i izgradnju Jittera, uključujući konfiguracijsku skriptu. To radimo sa:

cd jitter && ./bootstrap

Vrijedno je spomenuti da Jitter slijedi GNU konvencije za konfiguraciju i konstrukciju te podržava konstrukciju iz izvornog direktorija; zapravo, podržava unakrsno prevođenje, pa čak i pokretanje testnog paketa u unakrsnoj kompilaciji putem emulatora.

./configure && make

Na kraju, za izvršenje, samo upišite:

make check


Dodaj kao preferirani izvor na Googleu