Jitter werd officieel onderdeel van het GNU-project

Een paar dagen geleden kwam het nieuws naar buiten dat het project Jitter werd officieel een project onder de vleugels van het GNU-project en wordt nu ontwikkeld onder de naam GNU Jitter met behulp van de GNU-infrastructuur en volgens de vereisten van het project.

Voor degenen die zich niet bewust zijn van Jitter, ze moeten weten dat het zo isa is een implementatie waarmee zeer snelle en draagbare virtuele machines kunnen worden gegenereerd voor willekeurige ontwerpen van programmeertalen, waarvan de uitvoeringsprestaties van de code aanzienlijk voorlopen op de tolken en dicht bij native gecompileerde code liggen.

Jitter is zeer draagbaar en een correcte VM zal precies hetzelfde gedrag vertonen op elk platform dat alleen een standaard C-compiler en -bibliotheek heeft; de prestaties zullen echter beter zijn als een van de ondersteunde architecturen (momenteel: M68k, MIPS, PowerPC, RISC-V, SPARC, x86_64; tweede niveau: Aarch64, Alpha, ARM, S390x) wordt gebruikt op ELF-systemen met GCC . Jitter maakt natuurlijk deel uit van het GNU-project en is in de eerste plaats ontworpen voor gebruik op het GNU-systeem.

umezawar neemt als invoer een specificatie op hoog niveau van ondersteunde instructies voor een virtuele machine, en in de output vormt het een kant-en-klare implementatie van een virtuele machine om de gegeven instructies uit te voeren.

De logica van elke instructie in de specificatie: wordt gespecificeerd met behulp van C-code. Extra functies zijn onder meer ondersteuning voor voorwaardelijke vertakkingsbewerkingen die moeilijk te implementeren zijn in C en inherent zijn aan dynamische programmeertalen, zoals het controleren op tagwaarden en het controleren op overflows.

De Jitter-runtime biedt ook efficiënte ondersteuning voor voorwaardelijke vertakkingsbewerkingen die moeilijk te implementeren zijn met alleen C, zoals het controleren van waardelabels zoals vereist door dynamisch getypte talen en rekenen met overloopcontrole. VM-code heeft toegang tot callback- en procedure-aanroepbewerkingen, waarbij in de meeste gevallen gebruik wordt gemaakt van efficiënte hardwaremechanismen.

De resulterende virtuele machine is geformatteerd in C met een klein aantal invoegingen van monteur. Er zijn instellingen beschikbaar om verschillende optimalisaties mogelijk te maken en verzendmechanismen te selecteren, waardoor het gemakkelijk wordt om een ​​virtuele machine naar verschillende platforms te migreren.

Het ondersteunt het gebruik van register-, stapel- en merge-uitvoeringsarchitecturen, evenals de mogelijkheid om datastructuren van virtuele machines te spiegelen naar CPU-hardwareregisters en om afvalverzamelaars aan te sluiten.

De gegenereerde code bevat een eenvoudige C API om dynamisch code te vervangen en uit te voeren in een virtuele machine, evenals een stuurprogramma om code afzonderlijk uit te voeren vanuit tekstbestanden in een virtuele machine.

De gegenereerde C-code is sterk geconditioneerd en kan worden geconfigureerd om te worden uitgevoerd met behulp van verschillende distributietechnieken van verschillende verfijning; de meest efficiënte verzendtechnieken zijn afhankelijk van architectuurspecifieke, maar niet VM-specifieke, assemblageondersteuning die door Jitter wordt geboden; alle verzendmodellen, maar één is ook gebaseerd op GNU C-extensies.

Tot slot, voor degenen die er meer over willen weten, moet u weten dat de originele Jitter-code is geschreven in C en beschikbaar is onder de GPLv3-licentie. U kunt meer leren op volgende link.

Hoe krijg je jitter?

Voor degenen die geïnteresseerd zijn in het uitproberen van Jitter, je kunt de broncode krijgen door een terminal te openen en de volgende opdracht erin te typen:

git clone http://git.ageinghacker.net/jitter

Zodra dit is gebeurd, gaan we nu verder met het invoeren van de map met de code, we gaan het opstartscript uitvoeren dat wordt gebruikt om de benodigde bestanden te genereren om Jitter te configureren en te bouwen, inclusief een configuratiescript. Dit doen we met:

cd jitter && ./bootstrap

Het is vermeldenswaard dat Jitter de GNU-conventies volgt voor configuratie en build en ondersteunt bouwen vanuit de brondirectory; in feite ondersteunt het cross-compiling en zelfs het uitvoeren van de testsuite in een cross-compilatie via een emulator.

./configure && make

Typ ten slotte om uit te voeren:

make check


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.