Před pár dny bylo oznámeno, že projekt Jitter se oficiálně stal projektem pod záštitou 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ří nejsou s Jitterem obeznámeni, jde o implementaci, 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ě napřed oproti interpretům 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 specifikaci instrukcí na vysoké úrovni podporovaných virtuálním strojem a na výstupu vytváří implementaci virtuálního stroje připravenou k použití pro provádění daných instrukcí.
Logika každé instrukce ve specifikaci je specifikována pomocí kódu C. Mezi další funkce patří podpora pro podmíněné větvení, které je obtížné implementovat v jazyce C a jsou inherentní v dynamických programovacích jazycích, jako je kontrola hodnot návěští 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 jazyce C s malým počtem insertů z assembleru. Jsou k dispozici konfigurace, které umožňují různé optimalizace a výběr mechanismů pro přenos, což usnadňuje migraci virtuálního stroje 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 konečně, pro ty, kteří se chtějí dozvědět více, původní kód Jitteru je napsán v jazyce C a je k dispozici pod licencí GPLv3. Více se dozvíte na následujícím odkazu.
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