Pred pár dňami bolo oznámené, že projekt Jitter sa oficiálne stal projektom pod záštitou projektu GNU a teraz sa vyvíja pod názvom GNU Jitter s využitím infraštruktúry GNU a v súlade s požiadavkami projektu.
Pre tých, ktorí nie sú oboznámení s Jitterom, ide o implementáciu, ktorá umožňuje generovať prenosné a veľmi rýchle virtuálne stroje pre ľubovoľné návrhy programovacích jazykov, ktorých výkon pri vykonávaní kódu je výrazne pred interpretermi a približuje sa natívnemu kompilovanému kódu.
Jitter je vysoko prenosný a správny VM bude vykazovať presne rovnaké správanie na akejkoľvek platforme, ktorá má iba kompilátor a štandardnú knižnicu C; výkon však bude lepší pri použití jednej z podporovaných architektúr (v súčasnosti: M68k, MIPS, PowerPC, RISC-V, SPARC, x86_64; 64. úroveň: Aarch390, Alpha, ARM, SXNUMXx) na systémoch ELF s GCC. Jitter je samozrejme súčasťou projektu GNU a je určený predovšetkým na použitie v systéme GNU.
Jitter berie ako vstup špecifikáciu inštrukcií na vysokej úrovni podporovaných virtuálnym strojom a na výstupe vytvára implementáciu virtuálneho stroja pripravenú na použitie na vykonanie daných inštrukcií.
Logika každej inštrukcie v špecifikácii je špecifikovaná pomocou kódu C. Medzi ďalšie funkcie patrí podpora pre podmienené vetvenie, ktoré je ťažké implementovať v jazyku C a sú vlastné dynamickým programovacím jazykom, ako je kontrola hodnoty návestia a kontrola pretečenia.
Runtime Jitter tiež ponúka efektívnu podporu pre ťažko implementovateľné operácie podmieneného vetvenia iba pomocou C, ako je kontrola hodnotových značiek podľa požiadaviek dynamicky zadávaných jazykov a aritmetika s kontrolou pretečenia. Kód VM pristupuje k operáciám volania a návratu procedúry, pričom sa vo väčšine prípadov spolieha na efektívne hardvérové mechanizmy.
Výsledný virtuálny stroj je naformátovaný v jazyku C s malým počtom vložených prvkov assembleru. Sú poskytnuté konfigurácie, ktoré umožňujú rôzne optimalizácie a výber mechanizmov šírenia, čo uľahčuje migráciu virtuálneho stroja na rôzne platformy.
Podporuje použitie architektúry vykonávania registra, zásobníka a spojenia, ako aj schopnosť zrkadliť dátové štruktúry virtuálnych strojov v hardvérových registroch CPU a pripojiť zberače odpadu.
Vygenerovaný kód obsahuje jednoduché C API na dynamickú náhradu a spustenie kódu vo virtuálnom stroji, ako aj riadiaci program na samostatné spustenie kódu z textových súborov vo virtuálnom stroji.
Vygenerovaný kód C je silne upravený a možno ho nakonfigurovať na spustenie pomocou rôznych distribučných techník rôznej sofistikovanosti; najefektívnejšie techniky odosielania sa spoliehajú na určitú architektúru špecifickú, ale nie pre VM špecifickú, montážnu podporu poskytovanú Jitterom; všetky expedičné modely, ale jeden je tiež založený na rozšíreniach GNU C.
Na záver, pre tých, ktorí sa chcú dozvedieť viac, pôvodný kód Jitter je napísaný v jazyku C a je dostupný pod licenciou GPLv3. Viac sa dozviete na nasledujúcom odkaze.
Ako získať Jittera?
Pre tých, ktorí majú záujem testovať Jitter, môžu získať zdrojový kód otvorením terminálu a zadaním nasledujúceho príkazu:
git clone http://git.ageinghacker.net/jitter
Keď je to hotové, teraz pristúpime k zadávaniu priečinka s kódom, spustíme spúšťací skript, ktorý sa používa na vygenerovanie potrebných súborov na konfiguráciu a zostavenie Jitter, vrátane konfiguračného skriptu. Robíme to s:
cd jitter && ./bootstrap
Stojí za zmienku, že Jitter dodržiava konvencie GNU pre konfiguráciu a konštrukciu a podporuje konštrukciu zo zdrojového adresára; v skutočnosti podporuje krížovú kompiláciu a dokonca aj spustenie testovacej súpravy v krížovej kompilácii prostredníctvom emulátora.
./configure && make
Nakoniec na vykonanie stačí zadať:
make check