Пре неколико дана је објављено да је пројекат Jitter званично постао пројекат под окриљем GNU пројекта и да се сада развија под именом GNU Jitter користећи GNU инфраструктуру и у складу са захтевима пројекта.
За оне који нису упознати са Jitter-ом, то је имплементација која вам омогућава да генеришете преносиве и веома брзе виртуелне машине за произвољне дизајне програмских језика, чије су перформансе извршавања кода значајно испред интерпретера и приближавају се изворно компајлираном коду.
Јиттер је веома преносив и исправан ВМ ће показати потпуно исто понашање на било којој платформи која има само компајлер и стандардну Ц библиотеку; међутим, перформансе ће бити боље коришћењем једне од подржаних архитектура (тренутно: М68к, МИПС, ПоверПЦ, РИСЦ-В, СПАРЦ, к86_64; 64. ниво: Аарцх390, Алпха, АРМ, СXNUMXк) на ЕЛФ системима са ГЦЦ. Наравно, Јиттер је део ГНУ пројекта и дизајниран је првенствено за употребу у ГНУ систему.
Джитер као улаз узима спецификацију високог нивоа инструкција које подржава виртуелна машина, а на излазу формира спремну за употребу имплементацију виртуелне машине за извршавање датих инструкција.
Логика сваке инструкције у спецификацији је наведена помоћу C кода. Додатне функције укључују подршку за условне операције гранања које је тешко имплементирати у C-у и које су својствене динамичким програмским језицима, као што су провера вредности ознака и провера прекорачења.
Јиттер рунтиме такође има ефикасну подршку за тешке за имплементацију операције условног гранања користећи само Ц, као што је провера ознаке вредности према захтевима динамички куцаних језика и аритметика са провером преливања. ВМ код приступа операцијама позива процедуре и враћања, у већини случајева ослањајући се на ефикасне хардверске механизме.
Добијена виртуелна машина је форматирана у C-у са малим бројем асемблерских уметака. Обезбеђене су конфигурације које омогућавају различите оптимизације и одабир механизама испоруке, што олакшава миграцију виртуелне машине на различите платформе.
Подржава употребу архитектура извршавања регистара, стека и придруживања, као и могућност пресликавања структура података виртуелне машине у регистре хардвера процесора и повезивања сакупљача смећа.
Генерисани код укључује једноставан Ц АПИ за динамичку замену и извршавање кода у виртуелној машини, као и програм контролера за одвојено извршавање кода из текстуалних датотека у виртуелној машини.
Генерисани Ц код је веома условљен и може се конфигурисати да ради коришћењем различитих техника дистрибуције различите софистицираности; најефикасније технике диспечерства се ослањају на неку специфичну архитектуру, али не и ВМ-специфичну подршку за склапање коју пружа Јиттер; сви модели за отпрему, али један је такође заснован на ГНУ Ц екстензијама.
Коначно, за оне који су заинтересовани да сазнају више, оригинални Jitter код је написан у C језику и доступан је под GPLv3 лиценцом. Више информација можете пронаћи на следећем линку.
Како добити Јиттер?
За оне који су заинтересовани да могу да тестирају Јиттер, могу да добију изворни код отварањем терминала и уписивањем следеће команде у њега:
git clone http://git.ageinghacker.net/jitter
Када се ово уради, сада прелазимо на улазак у фасциклу која има код, извршићемо скрипту за покретање која се користи за генерисање потребних датотека за конфигурисање и изградњу Јиттер-а, укључујући конфигурациону скрипту. Ово радимо са:
cd jitter && ./bootstrap
Вреди напоменути да Јиттер прати ГНУ конвенције за конфигурацију и конструкцију и подржава конструкцију из изворног директоријума; у ствари, подржава унакрсну компилацију, па чак и покретање тестног пакета у унакрсној компилацији преко емулатора.
./configure && make
На крају, да бисте извршили, само откуцајте:
make check