Prije nekoliko dana objavljena je vijest da je projekat Jitter je zvanično postao projekat pod okriljem GNU projekta i sada se razvija pod imenom GNU Jitter koristeći GNU infrastrukturu iu skladu sa zahtjevima projekta.
Za one koji nisu upoznati sa Jitterom, trebali biste znati da jestea je implementacija koja omogućava generiranje prenosivih i vrlo brzih virtuelnih mašina za proizvoljne dizajne programskih jezika, čije su performanse izvršavanja koda znatno ispred interpretatora i bliske izvornom kompajliranom kodu.
Jitter je veoma 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šćenjem jedne od podržanih arhitektura (trenutno: M68k, MIPS, PowerPC, RISC-V, SPARC, x86_64; 64. nivo: Aarch390, Alpha, ARM, SXNUMXx) na ELF sistemima sa GCC. Naravno, Jitter je dio GNU projekta i dizajniran je prvenstveno za korištenje u GNU sistemu.
jitter uzima kao ulaz specifikaciju visokog nivoa podržanih instrukcija pomoću virtuelne mašine, a na izlazu formira gotovu implementaciju virtuelne mašine da izvrši date instrukcije.
Logika svake instrukcije u specifikaciji je specificirano korištenjem C koda. Dodatne karakteristike uključuju podršku za operacije uslovnog 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 efikasnu podršku za teške za implementaciju operacija uvjetnog grananja koristeći samo C, kao što je provjera oznake vrijednosti prema zahtjevu dinamički tipiziranih jezika i aritmetika s provjerom prelivanja. VM kod pristupa operacijama poziva procedure i vraćanja, u većini slučajeva oslanjajući se na efikasne hardverske mehanizme.
Dobivena virtuelna mašina je formatirana u C sa malim brojem umetanja asembler. Predviđene su konfiguracije koje omogućavaju različite optimizacije i odabir mehanizama isporuke, što olakšava migraciju virtuelne mašine na različite platforme.
Podržava upotrebu arhitektura izvršavanja registara, steka i pridruživanja, kao i mogućnost preslikavanja struktura podataka virtuelne mašine u registre hardvera procesora i povezivanje sakupljača smeća.
Generisani kod uključuje jednostavan C API za dinamičku zamjenu i izvršavanje koda u virtuelnoj mašini, kao i program kontrolera za odvojeno izvršavanje koda iz tekstualnih datoteka u virtuelnoj mašini.
Generisani C kod je jako uslovljen i može se konfigurisati da radi korišćenjem različitih tehnika distribucije različite sofisticiranosti; najefikasnije tehnike dispečerstva se oslanjaju na neku specifičnu arhitekturu, ali ne i VM-specifičnu podršku za sklapanje koju pruža Jitter; svi modeli otpreme, ali jedan je također baziran na GNU C ekstenzijama.
Konačno, za one koji su zainteresirani da saznaju 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 ovo urađeno, sada nastavljamo da ulazimo u fasciklu koja ima kod, mi ćemo izvršiti skriptu za pokretanje koja se koristi za generisanje potrebnih datoteka za konfigurisanje i izgradnju Jitter-a, uključujući i konfiguracionu skriptu. Ovo radimo sa:
cd jitter && ./bootstrap
Vrijedi spomenuti da Jitter slijedi GNU konvencije za konfiguraciju i konstrukciju i podržava konstrukciju iz izvornog direktorija; u stvari, podržava unakrsnu kompilaciju, pa čak i pokretanje testnog paketa u unakrsnoj kompilaciji preko emulatora.
./configure && make
Konačno, za izvršenje, samo upišite:
make check
Budite prvi koji komentarišete