Pred pár dňami vyšla správa, že projekt Jitter sa oficiálne stal projektom pod krídlami 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í Jittera nepoznajú, mali by ste vedieť, že ánoa je implementácia, 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 výrazne predstihuje tlmočníkov a blíži sa k 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 vysokoúrovňovú špecifikáciu podporovaných inštrukcií pomocou virtuálneho stroja, a vo výstupe tvorí implementáciu virtuálneho stroja pripravenú na použitie vykonať dané inštrukcie.
Logika každej inštrukcie v špecifikácii sa špecifikuje pomocou kódu C. Medzi ďalšie funkcie patrí podpora operácií podmieneného vetvenia, ktoré sa ťažko implementujú v jazyku C a sú vlastné dynamickým programovacím jazykom, ako je kontrola hodnoty tagu 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 C s malým počtom vložiek assembler. Poskytujú sa konfigurácie umožňujúce rôzne optimalizácie a výber mechanizmov doručovania, čo uľahčuje migráciu virtuálneho počítača 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.
Nakoniec, pre tých, ktorí majú záujem dozvedieť sa o ňom viac, by mali vedieť, že pôvodný kód Jitter je napísaný v jazyku C a je dostupný pod licenciou GPLv3. Viac sa môžete dozvedieť v nasledujúci odkaz.
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