/ / Wat betekent software voor native-uitvoering?

Wat betekent het dat software native wordt uitgevoerd?

Wanneer mensen verwijzen naar het uitvoeren van native software, emulatie en softwarecompatibiliteit, waar verwijzen ze dan precies naar? Lees verder terwijl we ons verdiepen in het concept van native software.

De Vraag & Antwoord-sessie van vandaag komt ons hoffelijk tegemoet van SuperUser — een onderverdeling van Stack Exchange, een gemeenschapgestuurde groepering van vraag- en antwoordwebsites.

De vraag

SuperUser-lezer Throsby is nieuwsgierig naar wat het betekent om software native te gebruiken. Hij schrijft:

Ik heb me afgevraagd wat het betekent voor softwareren native. Wat is dergelijke software precies en hoe verschilt deze van software die niet native wordt uitgevoerd? Hoe weet ik of een bepaald stuk software native op mijn computer wordt uitgevoerd? Staat er waarschijnlijk al software op mijn computer die native wordt uitgevoerd?

Lees verder voor een uitstekende analogie waarin precies wordt uitgelegd wat het betekent om native te zijn op een bepaald systeem.

Het antwoord

SuperUser-medewerker Deltik biedt een fantastische analogie die belicht wat het betekent voor software om native te zijn en wat voor andere software je op een bepaald systeem zou kunnen vinden:

Software is eigen aan een platform als het is ontworpen om op dat platform te worden uitgevoerd.

Een platform verwijst meestal naar een besturingssysteem, maar het kan ook worden toegepast op apparaten zoals de Nintendo Game Boy.

Met de Game Boy als voorbeeld haalt het zijn software uit cartridges. Deze cartridges bevatten code die wordt uitgevoerd native op de Game Boy.

emulators zijn een laag die software toestaat die daarvoor is ontworpenplatform om op een ander te draaien. Er zijn bijvoorbeeld emulators die afbeeldingen van Game Boy-cartridges kunnen uitvoeren en waarmee je Game Boy-games op je computer of zelfs je mobiele telefoon kunt spelen.

EEN compatibiliteitslaag is een soort emulator. Toen 64-bits computers en besturingssystemen mainstream werden, moesten ze compatibel zijn met de bestaande 32-bits technologieën. Aangezien 64-bit en 32-bit architecturen heel verschillend zijn, is vaak een compatibiliteitslaag nodig om 32-bit software op 64-bit machines te draaien. Voor 64-bits edities van Microsoft Windows moest Microsoft een compatibiliteitslaag schrijven zodat 32-bits programma's nog steeds op het nieuwe 64-bits systeem zouden werken. Dit is de reden waarom sommige programma's vaak worden geïnstalleerd in een map genaamd Program Files (x86)waar x86 betekent "32-bit".

Compatibiliteitslagen zijn doorgaans intiemer met het native systeem dan emulators. VirtualBoxemuleert hardware voor besturingssystemen *, en de systemen die het emuleert, hebben niet veel directe interactie met het hostsysteem. WoW64 is een compatibiliteitslaag doordat het 32-bits programma's op 64-bits Windows op een meer geïntegreerde manier laat werken. WoW64 helpt bij het maken van programma's verenigbaar liever danemuleren ze in een geïsoleerde omgeving.

EEN vertaalbibliotheek is een component van compatibiliteitslagen. Wanneer binaire code niet-native wordt uitgevoerd, helpt een vertaalbibliotheek buitenlandse, niet-native oproepen om te leiden naar native oproepen die het systeem kan begrijpen. Assemblageprogramma's geschreven voor de originele TI-83 zijn mogelijk niet compatibel met de nieuwere TI-83/84 Plus-rekenmachines omdat sommige aanroepen die logisch waren in de architectuur van de TI-83 mogelijk niet langer geldig zijn in de TI-83/84 +. Een vertaalbibliotheek (waarschijnlijk opgenomen in shells zoals MirageOS) zorgt ervoor dat oproepen voor de TI-83 naar de nieuwe, bijgewerkte plaatsen in de TI-83/84 + rekenmachines gaan.

Platformonafhankelijke code is geschreven in een taal die is uitgelegd door iets dat meestal native is. PHP is bijvoorbeeld een programmeertaal die wordt geïnterpreteerd en uitgevoerd door de geïnstalleerde PHP-binary, die al is gecompileerd native voor Windows, Mac en Unix-gebaseerd werkensystemen. De PHP-code die webscripters schrijven, is onafhankelijk van het platform, waardoor de code op meerdere besturingssystemen werkt, zolang PHP voor die besturingssystemen is geïnstalleerd.


Heb je iets toe te voegen aan de uitleg? Geluid uit in de reacties. Wilt u meer antwoorden van andere technisch onderlegde Stack Exchange-gebruikers lezen? Bekijk hier de volledige discussie.