Pirms dažām dienām tika paziņots, ka Jitter projekts oficiāli kļuva par projektu GNU projekta ietvaros un tagad tiek izstrādāts ar nosaukumu GNU Jitter, izmantojot GNU infrastruktūru un saskaņā ar projekta prasībām.
Tiem, kas nav pazīstami ar Jitter, tā ir ieviešana, kas ļauj ģenerēt pārnēsājamas un ļoti ātras virtuālās mašīnas patvaļīgiem programmēšanas valodu dizainiem, kuru koda izpildes veiktspēja ievērojami pārsniedz interpretētāju veiktspēju un tuvojas vietējam kompilētajam kodam.
Džitter ir ļoti pārnēsājams, un pareiza virtuālā mašīna uzrādīs tieši tādu pašu darbību jebkurā platformā, kurai ir tikai kompilators un standarta C bibliotēka; tomēr veiktspēja būs labāka, izmantojot kādu no atbalstītajām arhitektūrām (pašlaik: M68k, MIPS, PowerPC, RISC-V, SPARC, x86_64; 64. līmenis: Aarch390, Alpha, ARM, SXNUMXx) ELF sistēmās ar GCC. Protams, Jitter ir daļa no GNU projekta un ir paredzēta galvenokārt lietošanai GNU sistēmā.
Džiters kā ieeju ņem augsta līmeņa virtuālās mašīnas atbalstītu instrukciju specifikāciju un izvadē veido lietošanai gatavu virtuālās mašīnas ieviešanu doto instrukciju izpildei.
Katras instrukcijas loģika specifikācijā ir norādīta, izmantojot C kodu. Papildu funkcijas ietver atbalstu nosacītām sazarošanas operācijām, kuras ir grūti ieviest C valodā un ir raksturīgas dinamiskās programmēšanas valodām, piemēram, etiķešu vērtības pārbaude un pārpildes pārbaude.
Jitter izpildlaikā ir arī efektīvs atbalsts grūti īstenojamām nosacītās sazarošanas darbībām, izmantojot tikai C, piemēram, vērtību tagu pārbaude, kā to prasa dinamiski drukātas valodas, un aritmētika ar pārpildes pārbaudi. VM kods piekļūst procedūru izsaukšanas un atgriešanas operācijām, vairumā gadījumu paļaujoties uz efektīviem aparatūras mehānismiem.
Iegūtā virtuālā mašīna tiek formatēta C valodā ar nelielu skaitu asemblera ieliktņu. Ir nodrošinātas konfigurācijas, lai iespējotu dažādas optimizācijas un izvēlētos piegādes mehānismus, atvieglojot virtuālās mašīnas migrēšanu uz dažādām platformām.
Tā atbalsta reģistru, steku un pievienošanās izpildes arhitektūru izmantošanu, kā arī spēju atspoguļot virtuālās mašīnas datu struktūras CPU aparatūras reģistros un savienot atkritumu savācējus.
Ģenerētais kods ietver vienkāršu C API, lai dinamiski aizstātu un izpildītu kodu virtuālajā mašīnā, kā arī kontroliera programmu, lai atsevišķi izpildītu kodu no teksta failiem virtuālajā mašīnā.
Ģenerētais C kods ir ļoti kondicionēts, un to var konfigurēt tā, lai tas darbotos, izmantojot dažādas izplatīšanas metodes ar dažādas sarežģītības pakāpi; visefektīvākās nosūtīšanas metodes balstās uz kādu arhitektūrai raksturīgu, bet ne VM specifisku montāžas atbalstu, ko nodrošina Jitter; visi nosūtīšanas modeļi, bet viens ir balstīts arī uz GNU C paplašinājumiem.
Visbeidzot, tiem, kas vēlas uzzināt vairāk, sākotnējais Jitter kods ir rakstīts C valodā un ir pieejams saskaņā ar GPLv3 licenci. Vairāk varat uzzināt, izmantojot šo saiti.
Kā iegūt nervozitāti?
Tiem, kurus interesē iespēja pārbaudīt nervozitāti, viņi var iegūt avota kodu, atverot termināli un ierakstot tajā šādu komandu:
git clone http://git.ageinghacker.net/jitter
Kad tas ir izdarīts, mēs turpinām ievadīt mapi, kurā ir kods, mēs izpildīsim starta skriptu, kas tiek izmantots, lai ģenerētu nepieciešamos failus, lai konfigurētu un izveidotu nervozitāti, tostarp konfigurācijas skriptu. Mēs to darām ar:
cd jitter && ./bootstrap
Ir vērts pieminēt, ka Džiters ievēro GNU konfigurācijas un konstruēšanas konvencijas un atbalsta veidošanu no avota direktorija; patiesībā tas atbalsta savstarpēju kompilāciju un pat testa komplekta palaišanu savstarpējā kompilācijā, izmantojot emulatoru.
./configure && make
Visbeidzot, lai izpildītu, vienkārši ierakstiet:
make check