Prije nekoliko dana objavljena je vijest da je projekt Jitter je službeno postao projekt pod okriljem GNU projekta a sada se razvija pod imenom GNU Jitter koristeći GNU infrastrukturu iu skladu sa zahtjevima projekta.
Za one koji nisu upoznati s Jitterom, trebali biste znati da jesta je implementacija koja omogućuje generiranje prijenosnih i vrlo brzih virtualnih strojeva za proizvoljne dizajne programskih jezika, čija je izvedba koda znatno ispred interpretatora i bliska izvornom prevedenom 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 uzima kao ulaz specifikaciju visoke razine podržanih instrukcija pomoću virtualnog stroja, a u izlazu oblikuje gotovu implementaciju virtualnog stroja izvršiti zadane upute.
Logika svake instrukcije u specifikaciji specificira se pomoću C koda. Dodatne značajke uključuju podršku za operacije uvjetnog grananja koje je teško implementirati u C i koje su svojstvene dinamičkim programskim jezicima, kao što je provjera vrijednosti oznake i provjera prekoračenja.
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 je formatiran u C s malim brojem umetanja asembler. Dostupne 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 o tome, trebali bi znati da je originalni Jitter kod napisan u C-u i dostupan je pod GPLv3 licencom. Više možete saznati u sljedeći link.
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