Muutama päivä sitten julkaistiin uutinen, että hanke Jitteristä tuli virallisesti GNU-projektin alainen projekti ja sitä kehitetään nyt nimellä GNU Jitter käyttäen GNU-infrastruktuuria ja projektin vaatimusten mukaisesti.
Niiden, jotka eivät ole tietoisia jitteristä, pitäisi tietää, että se ona on toteutus, jonka avulla voidaan luoda erittäin nopeita ja kannettavia virtuaalikoneita mielivaltaisiin ohjelmointikielten malleihin, joiden koodin suorituskyky on huomattavasti tulkkeja edellä ja lähellä alkuperäistä käännettyä koodia.
Jitter on erittäin kannettava, ja oikea VM käyttäytyy täsmälleen samalla tavalla kaikilla alustoilla, joilla on vain tavallinen C-kääntäjä ja kirjasto; suorituskyky on kuitenkin parempi, jos jotakin tuetuista arkkitehtuureista (tällä hetkellä: M68k, MIPS, PowerPC, RISC-V, SPARC, x86_64; toinen taso: Aarch64, Alpha, ARM, S390x) käytetään ELF-järjestelmissä, joissa on GCC. Jitter on tietysti osa GNU-projektia ja se on suunniteltu ensisijaisesti käytettäväksi GNU-järjestelmässä.
jitter ottaa syötteeksi tuettujen ohjeiden korkean tason määrittelyn virtuaalikoneelle, ja tuloksessa se muodostaa virtuaalikoneen käyttövalmiin toteutuksen suorittamaan annettuja ohjeita.
Eritelmän jokaisen käskyn logiikka määritetään C-koodilla. Muita ominaisuuksia ovat tuki ehdollisille haarautumistoiminnoille, joita on vaikea toteuttaa C:ssä ja jotka ovat luontaisia dynaamisille ohjelmointikielille, kuten tunnistearvojen tarkistaminen ja ylivuotojen tarkistaminen.
Jitter-ajoaika sisältää myös tehokkaan tuen ehdollisille haarautumistoiminnoille, joita on vaikea toteuttaa pelkällä C:llä, kuten dynaamisesti kirjoitettujen kielten edellyttämien arvotarrojen tarkistaminen ja aritmetiikka ylivuodon tarkistuksella. VM-koodilla on pääsy takaisinsoitto- ja prosessikutsutoimintoihin, useimmissa tapauksissa tehokkaisiin laitteistomekanismeihin luottaen.
Tuloksena oleva virtuaalikone alustetaan C-kielellä pienellä määrällä lisäyksiä kokoajan. Asetukset mahdollistavat erilaisia optimointeja ja valitsevat toimitusmekanismit, mikä helpottaa virtuaalikoneen siirtämistä eri alustoille.
Se tukee rekisteri-, pino- ja yhdistämissuoritusarkkitehtuurien käyttöä sekä kykyä peilata virtuaalikoneen tietorakenteita suorittimen laitteistorekistereihin ja kytkeä roskankeräilijöitä.
Luotu koodi sisältää yksinkertaisen C API:n, joka korvaa ja suorittaa koodin dynaamisesti virtuaalikoneen, sekä ohjainohjelman, joka suorittaa koodin erikseen virtuaalikoneen tekstitiedostoista.
Luotu C-koodi on vahvasti ehdollinen ja se voidaan konfiguroida toimimaan käyttämällä erilaisia jakelutekniikoita, joiden kehittyneisyys vaihtelee; tehokkaimmat välitystekniikat perustuvat joihinkin arkkitehtuurikohtaiseen, mutta ei VM-kohtaiseen Jitterin tarjoamaan kokoonpanotukeen; kaikki lähetysmallit, mutta yksi perustuu myös GNU C -laajennuksiin.
Lopuksi, niiden, jotka ovat kiinnostuneita oppimaan lisää siitä, sinun tulee tietää, että alkuperäinen Jitter-koodi on kirjoitettu C-kielellä ja se on saatavilla GPLv3-lisenssillä. Voit oppia lisää osoitteessa seuraava linkki.
Kuinka saada Jitter?
Jitterin kokeilemisesta kiinnostuneet voivat saada lähdekoodin avaamalla terminaalin ja kirjoittamalla siihen seuraavan komennon:
git clone http://git.ageinghacker.net/jitter
Kun tämä on tehty, siirrymme syöttämään kansioon, jossa on koodi, ja suoritamme käynnistyskomentosarjan, jota käytetään luomaan tarvittavat tiedostot Jitterin määrittämiseen ja rakentamiseen, mukaan lukien määrityskomentosarja. Teemme tämän kanssa:
cd jitter && ./bootstrap
On syytä mainita, että Jitter noudattaa GNU:n käytäntöjä konfiguroinnissa ja rakentamisessa ja tukee rakentamista lähdehakemistosta; Itse asiassa se tukee ristiinkääntämistä ja jopa testisarjan suorittamista ristiinkäännöksenä emulaattorin kautta.
./configure && make
Suorita lopuksi kirjoittamalla:
make check