Jitter je uradno postal del projekta GNU

Pred nekaj dnevi je bilo objavljeno, da je projekt Jitter uradno postal projekt pod okriljem projekta GNU in se zdaj razvija pod imenom GNU Jitter z uporabo infrastrukture GNU in v skladu z zahtevami projekta.

Za tiste, ki niso seznanjeni z Jitterjem, gre za implementacijo, ki omogoča ustvarjanje prenosnih in zelo hitrih virtualnih strojev za poljubne zasnove programskih jezikov, katerih zmogljivost izvajanja kode je bistveno pred interpreterji in se približuje izvorno prevedeni kodi.

Jitter je zelo prenosljiv in pravilen VM bo pokazal popolnoma enako obnašanje na kateri koli platformi, ki ima samo prevajalnik in standardno knjižnico C; vendar bo zmogljivost boljša z uporabo ene od podprtih arhitektur (trenutno: M68k, MIPS, PowerPC, RISC-V, SPARC, x86_64; 64. raven: Aarch390, Alpha, ARM, SXNUMXx) na sistemih ELF z GCC. Seveda je Jitter del projekta GNU in je zasnovan predvsem za uporabo v sistemu GNU.

Jitter kot vhod sprejme visokonivojsko specifikacijo navodil, ki jih podpira virtualni stroj, na izhodu pa oblikuje pripravljeno implementacijo virtualnega stroja za izvajanje danih navodil.

Logika vsakega ukaza v specifikaciji je določena s kodo C. Dodatne funkcije vključujejo podporo za pogojne operacije razvejanja, ki jih je težko implementirati v jeziku C in so lastne dinamičnim programskim jezikom, kot sta preverjanje vrednosti oznak in preverjanje prelivanja.

Izvajanje Jitter ponuja tudi učinkovito podporo za težko izvedljive pogojne operacije razvejanja, ki uporabljajo samo C, kot je preverjanje oznake vrednosti, kot zahtevajo dinamično tipkani jeziki, in aritmetika s preverjanjem prelivanja. Koda VM dostopa do operacij klica in vračanja postopkov, pri čemer se v večini primerov zanaša na učinkovite mehanizme strojne opreme.

Nastali virtualni stroj je formatiran v jeziku C z majhnim številom vstavkov v zbirniku. Na voljo so konfiguracije, ki omogočajo različne optimizacije in izbiro mehanizmov za pošiljanje, kar olajša selitev virtualnega stroja na različne platforme.

Podpira uporabo arhitektur izvajanja registrov, skladov in združitev, pa tudi zmožnost zrcaljenja podatkovnih struktur navideznega stroja v registrih strojne opreme CPU in povezovanja zbiralnikov smeti.

Ustvarjena koda vključuje preprost C API za dinamično zamenjavo in izvajanje kode v navideznem stroju, kot tudi program krmilnika za ločeno izvajanje kode iz besedilnih datotek v navideznem stroju.

Ustvarjena koda C je močno pogojena in jo je mogoče konfigurirati za izvajanje z uporabo različnih distribucijskih tehnik različne prefinjenosti; najučinkovitejše tehnike odpošiljanja se zanašajo na določeno arhitekturno specifično, vendar ne za VM, montažno podporo, ki jo zagotavlja Jitter; vsi modeli pošiljanja, vendar eden temelji tudi na razširitvah GNU C.

Za tiste, ki jih zanima več, je originalna koda Jitter napisana v jeziku C in je na voljo pod licenco GPLv3. Več informacij najdete na naslednji povezavi.

Kako do Jitterja?

Za tiste, ki jih zanima, da bi lahko preizkusili Jitter, lahko pridobijo izvorno kodo tako, da odprejo terminal in vanj vnesejo naslednji ukaz:

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

Ko je to opravljeno, nadaljujemo z vnosom mape, ki ima kodo, izvedli bomo zagonski skript, ki se uporablja za ustvarjanje potrebnih datotek za konfiguracijo in gradnjo Jitterja, vključno s konfiguracijskim skriptom. To naredimo z:

cd jitter && ./bootstrap

Omeniti velja, da Jitter sledi konvencijam GNU za konfiguracijo in konstrukcijo ter podpira gradnjo iz izvornega imenika; pravzaprav podpira navzkrižno prevajanje in celo izvajanje testnega paketa v navzkrižnem prevajanju prek emulatorja.

./configure && make

Na koncu za izvedbo samo vnesite:

make check


Dodaj kot prednostni vir v Googlu