9Aug
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 van vandaag &Antwoordsessie komt naar ons met dank van SuperUser-een onderverdeling van Stack Exchange, een community-gestuurde groepering 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 laat zien wat het betekent dat software native is en wat voor soort andere software je op een bepaald systeem zou kunnen vinden:
A-software is eigen voor een platform als het is ontworpen om te worden uitgevoerddat platform.
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 native op de Game Boy uitvoert.
-emulatoren 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-spellen op uw computer of zelfs op uw mobiele telefoon kunt spelen.
A compatibiliteitslaag lijkt op 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 verschillend zijn, is vaak een compatibiliteitslaag 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. Daarom worden sommige programma's vaak geïnstalleerd in een map met de naam Program Files( x86), waarbij x86 "32-bit" betekent.
Compatibiliteitslagen zijn meestal intiemer voor het native systeem dan emulators. VirtualBox emuleert -hardware voor besturingssystemen *, en de systemen die het emuleert, hebben niet veel directe interactie met het hostsysteem. WoW64 is een -compatibiliteitslaag , waarmee 32-bits programma's op een meer geïntegreerde manier op 64-bits Windows kunnen worden uitgevoerd. WoW64 helpt programma's compatibel te maken in plaats van door te emuleren in een geïsoleerde omgeving.
A -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-rekenmachines omdat sommige oproepen 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.
Platformonafhankelijke code is geschreven in een taal die heeft geïnterpreteerd door iets dat normaal gesproken native wordt uitgevoerd. PHP is bijvoorbeeld een programmeertaal die wordt geïnterpreteerd en uitgevoerd door het geïnstalleerde PHP-binaire bestand, dat al native is gecompileerd voor Windows-, Mac- en Unix-besturingssystemen. De PHP-code die webscripters schrijven, is onafhankelijk van het platform, waardoor de code op meerdere besturingssystemen kan werken zolang PHP voor die besturingssystemen is geïnstalleerd.
Heeft u iets toe te voegen aan de uitleg? Geluid uit in de opmerkingen. Wilt u meer antwoorden van andere technisch onderlegde Stack Exchange-gebruikers lezen? Bekijk de volledige discussiethread hier.