Wat betekent het voor software om Natively uit te voeren?
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 en antwoordsessie van vandaag komt bij ons beleefd van SuperUser - een onderverdeling van Stack Exchange, een door de gemeenschap gestuurde groep van Q & A-websites.
De vraag
SuperUser-lezer Throsby is nieuwsgierig naar wat het betekent om software native uit te voeren. Hij schrijft:
Ik heb me afgevraagd wat het betekent dat software native werkt. 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? Is er waarschijnlijk al software op mijn computer die native werkt?
Lees verder voor een uitstekende analogie die precies uitlegt wat het betekent om native te zijn op een bepaald systeem.
Het antwoord
SuperUser-bijdrager Deltik biedt een fantastische analogie die benadrukt wat het betekent dat software native is en wat voor soort andere software je op een bepaald systeem zou kunnen vinden:
Een software is eigen voor 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 krijgt het zijn software van cartridges. Deze cartridges bevatten code die wordt uitgevoerd native op de Game Boy.
emulators zijn een laag waarmee software die is ontworpen voor het ene platform kan worden uitgevoerd op een ander platform. Er zijn bijvoorbeeld emulators die afbeeldingen van Game Boy-cartridges kunnen uitvoeren en waarmee u Game Boy-games op uw computer of zelfs op uw mobiele telefoon kunt spelen..
EEN compatibiliteitslaag is een beetje als een emulator. Toen 64-bits computers en besturingssystemen mainstream werden, moesten ze compatibel zijn met de bestaande 32-bits technologieën. Omdat 64-bits en 32-bits architecturen erg verschillen, is een compatibiliteitslaag vaak nodig om 32-bits software uit te voeren op 64-bits machines. Voor 64-bits versies van Microsoft Windows moest Microsoft een compatibiliteitslaag schrijven zodat 32-bits programma's nog steeds zouden werken op het nieuwe 64-bits systeem. Dit is de reden waarom sommige programma's vaak worden geïnstalleerd in een map met de naam
Programmabestanden (x86)
, waarx86
betekent "32-bit".Compatibiliteitslagen hebben de neiging intiemer te zijn 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 a compatibiliteitslaag doordat 32 bit-programma's op een meer geïntegreerde manier op 64-bit Windows kunnen worden uitgevoerd. 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 externe 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-calculators 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 + calculators gaan.
Platform-onafhankelijke code is geschreven in een taal die dat wel is uitgelegd door iets dat normaal gesproken native werkt. PHP is bijvoorbeeld een programmeertaal die wordt geïnterpreteerd en uitgevoerd door het geïnstalleerde PHP-binaire bestand, dat al is gecompileerd native voor Windows, Mac en Unix-gebaseerde besturingssystemen. De PHP-code die webscripters schrijven, is onafhankelijk van het platform, waardoor de code op meerdere besturingssystemen kan werken zolang PHP is geïnstalleerd voor die besturingssystemen.
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 discussiethread.