Před pár dny vyšla zpráva, že projekt Jitter se oficiálně stal projektem pod křídly projektu GNU a nyní je vyvíjen pod názvem GNU Jitter s využitím infrastruktury GNU a v souladu s požadavky projektu.
Pro ty, kteří Jittera neznají, měli byste vědět, že anoa je implementace, která umožňuje generovat přenosné a velmi rychlé virtuální stroje pro libovolné návrhy programovacích jazyků, jejichž výkon při provádění kódu je výrazně před interprety a blíží se nativnímu kompilovanému kódu.
Jitter je vysoce přenosný a správný VM bude vykazovat přesně stejné chování na jakékoli platformě, která má pouze kompilátor a standardní knihovnu C; výkon však bude lepší při použití jedné z podporovaných architektur (aktuálně: M68k, MIPS, PowerPC, RISC-V, SPARC, x86_64; 64. úroveň: Aarch390, Alpha, ARM, SXNUMXx) na systémech ELF s GCC. Jitter je samozřejmě součástí projektu GNU a je určen především pro použití na systému GNU.
jitter bere jako vstup vysokoúrovňovou specifikaci podporovaných instrukcí pomocí virtuálního stroje, a ve výstupu tvoří implementaci virtuálního stroje připravenou k použití provést dané instrukce.
Logika každé instrukce ve specifikaci je specifikováno pomocí C kódu. Mezi další funkce patří podpora operací podmíněného větvení, které je obtížné implementovat v C a které jsou vlastní dynamickým programovacím jazykům, jako je kontrola hodnoty tagu a kontrola přetečení.
Běhové prostředí Jitter také nabízí účinnou podporu pro obtížně implementovatelné operace podmíněného větvení pouze pomocí C, jako je kontrola hodnotových značek podle požadavků dynamicky typovaných jazyků a aritmetika s kontrolou přetečení. Kód virtuálního počítače přistupuje k operacím volání a návratu procedur, ve většině případů se spoléhá na efektivní hardwarové mechanismy.
Výsledný virtuální stroj je naformátován v C s malým počtem insertů assembler. K dispozici jsou konfigurace umožňující různé optimalizace a výběr mechanismů doručení, což usnadňuje migraci virtuálního počítače na různé platformy.
Podporuje použití architektur pro provádění registrů, zásobníků a spojení, stejně jako schopnost zrcadlit datové struktury virtuálních strojů v hardwarových registrech CPU a připojit sběrače odpadků.
Vygenerovaný kód obsahuje jednoduché C API, které dynamicky nahrazuje a spouští kód ve virtuálním stroji, a také program řadiče pro samostatné spouštění kódu z textových souborů ve virtuálním stroji.
Generovaný C kód je silně upraven a lze jej nakonfigurovat tak, aby běžel pomocí různých distribučních technik s různou sofistikovaností; nejúčinnější techniky odesílání se spoléhají na určitou architekturu specifickou, ale ne specifickou, podporu sestavení poskytovanou Jitterem; všechny expediční modely, ale jeden je také založen na rozšířeních GNU C.
A nakonec, pro ty, kteří se o tom chtějí dozvědět více, by měli vědět, že původní kód Jitter je napsán v C a je dostupný pod licencí GPLv3. Více se můžete dozvědět v následující odkaz.
Jak získat Jittera?
Pro ty, kteří mají zájem otestovat Jitter, mohou získat zdrojový kód otevřením terminálu a zadáním následujícího příkazu:
git clone http://git.ageinghacker.net/jitter
Jakmile je toto hotovo, nyní přistoupíme k zadání složky, která má kód, spustíme spouštěcí skript, který se používá ke generování potřebných souborů pro konfiguraci a sestavení Jitter, včetně konfiguračního skriptu. Děláme to s:
cd jitter && ./bootstrap
Stojí za zmínku, že Jitter dodržuje konvence GNU pro konfiguraci a konstrukci a podporuje konstrukci ze zdrojového adresáře; ve skutečnosti podporuje křížovou kompilaci a dokonce i spuštění testovací sady v křížové kompilaci prostřednictvím emulátoru.
./configure && make
Nakonec pro provedení stačí napsat:
make check