Jitter è diventato ufficialmente parte del progetto GNU

Pochi giorni fa è stata diffusa la notizia che il progetto Jitter è diventato ufficialmente un progetto sotto l'ala del Progetto GNU ed è ora in fase di sviluppo con il nome GNU Jitter utilizzando l'infrastruttura GNU e in conformità con i requisiti del progetto.

Per chi non ha familiarità con Jitter, dovresti sapere che lo èa è un'implementazione che permette di generare macchine virtuali portatili e molto veloci per progetti arbitrari di linguaggi di programmazione, le cui prestazioni di esecuzione del codice sono notevolmente superiori a quelle degli interpreti e vicine al codice compilato nativo.

Jitter è altamente portabile e una macchina virtuale corretta mostrerà esattamente lo stesso comportamento su qualsiasi piattaforma che abbia solo un compilatore e una libreria C standard; tuttavia, le prestazioni saranno migliori utilizzando una delle architetture supportate (attualmente: M68k, MIPS, PowerPC, RISC-V, SPARC, x86_64; 64° livello: Aarch390, Alpha, ARM, SXNUMXx) su sistemi ELF con GCC. Ovviamente, Jitter fa parte del progetto GNU ed è progettato principalmente per l'uso sul sistema GNU.

Umezawar prende come input una specifica di alto livello delle istruzioni supportate da una macchina virtuale, e nell'output forma un'implementazione pronta per l'uso di una macchina virtuale per eseguire le istruzioni date.

La logica di ciascuna istruzione nella specifica è specificato utilizzando il codice C. Ulteriori funzionalità includono il supporto per operazioni di branching condizionale difficili da implementare in C e inerenti ai linguaggi di programmazione dinamici, come il controllo del valore dei tag e il controllo dell'overflow.

Il runtime Jitter offre anche un supporto efficiente per operazioni di branching condizionale difficili da implementare utilizzando solo C, come il controllo dei tag del valore come richiesto dai linguaggi tipizzati dinamicamente e l'aritmetica con il controllo dell'overflow. Il codice della macchina virtuale accede alle operazioni di chiamata e restituzione della procedura, nella maggior parte dei casi basandosi su meccanismi hardware efficienti.

La macchina virtuale risultante è formattata in C con un numero ridotto di inserimenti assemblatore. Vengono fornite configurazioni per abilitare varie ottimizzazioni e selezionare i meccanismi di consegna, semplificando la migrazione di una macchina virtuale su piattaforme diverse.

Supporta l'uso di architetture di esecuzione di registro, stack e join, nonché la capacità di eseguire il mirroring delle strutture dati delle macchine virtuali nei registri hardware della CPU e di collegare i garbage collector.

Il codice generato include una semplice API C per sostituire ed eseguire dinamicamente il codice in una macchina virtuale, nonché un programma controller per eseguire separatamente il codice dai file di testo in una macchina virtuale.

Il codice C generato è fortemente condizionato e può essere configurato per essere eseguito utilizzando diverse tecniche di distribuzione di varia sofisticatezza; le tecniche di invio più efficienti si basano su un supporto di assembly specifico dell'architettura, ma non specifico della VM, fornito da Jitter; tutti i modelli di spedizione, ma uno è anche basato su estensioni GNU C.

Infine, per coloro che sono interessati a saperne di più, dovrebbero sapere che il codice Jitter originale è scritto in C ed è disponibile con licenza GPLv3. Puoi saperne di più nel seguente link

Come ottenere il jitter?

Per coloro che sono interessati a poter testare Jitter, possono ottenere il codice sorgente aprendo un terminale e digitando al suo interno il seguente comando:

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

Fatto ciò, ora procediamo ad entrare nella cartella che contiene il codice, eseguiremo lo script di avvio che viene utilizzato per generare i file necessari per configurare e costruire Jitter, incluso uno script di configurazione. Lo facciamo con:

cd jitter && ./bootstrap

Vale la pena ricordare che Jitter segue le convenzioni GNU per la configurazione e la costruzione e supporta la costruzione dalla directory dei sorgenti; infatti, supporta la compilazione incrociata e persino l'esecuzione della suite di test in una compilazione incrociata tramite un emulatore.

./configure && make

Infine, per eseguire, basta digitare:

make check


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.