Prieš kelias dienas buvo paskelbta, kad „ Jitter“ projektas oficialiai tapo projektu, priklausančiu GNU projektui , ir dabar yra kuriamas pavadinimu „GNU Jitter“, naudojant GNU infrastruktūrą ir laikantis projekto reikalavimų.
Tiems, kurie nėra susipažinę su „Jitter“, tai yra įdiegimas, leidžiantis generuoti nešiojamas ir labai greitas virtualias mašinas bet kokiems programavimo kalbos dizainams, kurių kodo vykdymo našumas gerokai lenkia interpretatorius ir artėja prie natyvaus kompiliuoto kodo.
Jitter yra labai nešiojama, o tinkama VM elgsis lygiai taip pat bet kurioje platformoje, kurioje yra tik standartinis C kompiliatorius ir biblioteka; tačiau našumas bus geresnis, jei ELF sistemose su GCC bus naudojama viena iš palaikomų architektūrų (šiuo metu: M68k, MIPS, PowerPC, RISC-V, SPARC, x86_64; antrasis lygis: Aarch64, Alpha, ARM, S390x). Žinoma, Jitter yra GNU projekto dalis ir pirmiausia sukurta naudoti GNU sistemoje.
„Jitter“ kaip įvestį priima aukšto lygio virtualios mašinos palaikomų instrukcijų specifikaciją, o išvestyje suformuoja paruoštą naudoti virtualios mašinos įgyvendinimą, skirtą vykdyti pateiktas instrukcijas.
Kiekvienos specifikacijos instrukcijos logika aprašoma naudojant C kodą. Papildomos funkcijos apima sąlyginių šakojimo operacijų, kurias sunku įgyvendinti C kalba ir kurios būdingos dinaminio programavimo kalboms, pvz., žymos reikšmės tikrinimas ir perpildymo tikrinimas, palaikymą.
Jitter vykdymo laikas taip pat turi veiksmingą palaikymą sąlyginėms šakų operacijoms, kurias sunku įgyvendinti naudojant vien C, pvz., tikrinti reikšmių etiketes, kurių reikalauja dinamiškai įvestos kalbos, ir aritmetika su perpildymo tikrinimu. VM kodas turi prieigą prie procedūrų iškvietimo ir grąžinimo operacijų, daugeliu atvejų pasikliaudamas efektyviais aparatūros mechanizmais.
Gauta virtuali mašina suformatuojama C kalba su nedideliu skaičiumi asemblerio įterpimų. Pateikiamos konfigūracijos, leidžiančios atlikti įvairius optimizavimus ir pasirinkti pristatymo mechanizmus, todėl virtualią mašiną lengva perkelti į skirtingas platformas.
Jis palaiko registro, dėklo ir sujungimo vykdymo architektūrų naudojimą, taip pat galimybę atspindėti virtualios mašinos duomenų struktūras procesoriaus aparatinės įrangos registruose ir prijungti šiukšlių surinkėjus.
Sugeneruotas kodas apima paprastą C API, skirtą pakeisti ir dinamiškai vykdyti kodą virtualioje mašinoje, taip pat tvarkyklės programą, skirtą atskirai vykdyti kodą iš tekstinių failų virtualioje mašinoje.
Sukurtas C kodas yra stipriai kondicionuojamas ir gali būti sukonfigūruotas veikti naudojant skirtingus įvairaus sudėtingumo platinimo būdus; efektyviausi siuntimo būdai priklauso nuo tam tikros architektūros, bet ne VM, surinkimo palaikymo, kurį teikia Jitter; visi siuntimo modeliai, bet vienas taip pat pagrįstas GNU C plėtiniais.
Galiausiai, tiems, kurie nori sužinoti daugiau, originalus „Jitter“ kodas parašytas C kalba ir yra prieinamas pagal GPLv3 licenciją. Daugiau informacijos galite rasti šioje nuorodoje.
Kaip gauti Jitter?
Tiems, kurie nori išbandyti Jitter, šaltinio kodą galite gauti atidarę terminalą ir įvedę jame šią komandą:
git clone http://git.ageinghacker.net/jitter
Kai tai bus padaryta, pereisime prie aplanko, kuriame yra kodas, įvedimo, vykdysime paleisties scenarijų, kuris naudojamas generuoti reikalingus failus, skirtus konfigūruoti ir sukurti Jitter, įskaitant konfigūracijos scenarijų. Tai darome su:
cd jitter && ./bootstrap
Verta paminėti, kad Jitter laikosi GNU konfigūravimo ir konstravimo konvencijų ir palaiko kūrimą iš šaltinio katalogo; Tiesą sakant, jis palaiko kryžminį kompiliavimą ir netgi testų rinkinio vykdymą kryžminiu kompiliavimu naudojant emuliatorių.
./configure && make
Galiausiai, norėdami vykdyti, tiesiog įveskite:
make check