9Aug
Når folk refererer til å kjøre programvare, emulering og programvarekompatibilitet, hva henvises det til? Les videre som vi dykker inn i konseptet med innfødt programvare.
Dagens Spørsmål &Svar-sesjon kommer til oss med høflighet av SuperUser-en underavdeling av Stack Exchange, en fellesskapsdrevet gruppering av Q & A-nettsteder.
Spørsmålet
SuperUser leser Throsby er nysgjerrig på hva det betyr å kjøre programvare innfødt. Han skriver:
Jeg har lurt på hva det betyr for programvare å kjøre innfødt. Hva er egentlig slik programvare og hvordan er det forskjellig fra programvare som ikke kjører innfødt? Hvordan kan jeg vite om et bestemt program vil kjøre innfødt på datamaskinen min? Er det sannsynlig at det allerede finnes programvare på datamaskinen som kjører innfødt?
Les videre for en utmerket analogi som forklarer nøyaktig hva det betyr å være innfødt på et gitt system.
Svaret
SuperUser-bidragsyter Deltik tilbyr en fantastisk analogi som fremhever hva det betyr at programvare skal være innfødt og hva slags annen programvare man kan finne på et gitt system:
En programvare er innfødt til en plattform hvis den ble designet for å fortsetteden plattformen.
En plattform refererer vanligvis til et operativsystem, men det kan også brukes på enheter som Nintendo Game Boy.
Bruke Game Boy som et eksempel, får den sin programvare fra blekkpatroner. Disse kassettene inneholder kode som kjører nativt på Game Boy.
-emulatorer er et lag som gjør at programvare utviklet for en plattform kan kjøres på en annen. For eksempel er det emulatorer som kan utføre bilder av Game Boy-kassetter og lar deg spille Game Boy-spill på datamaskinen eller til og med mobiltelefonen din.
A kompatibilitetslag er snill som en emulator. Når 64-bits datamaskiner og operativsystemer ble vanlige, trengte de å være kompatible med de eksisterende 32-bits teknologiene. Siden 64-biters og 32-biters arkitekturer er svært forskjellige, er det nødvendig med et kompatibilitetslag for å kjøre 32-biters programvare på 64-biters maskiner. For 64-biters utgaver av Microsoft Windows behøvde Microsoft å skrive et kompatibilitetslag slik at 32-biters programmer fortsatt vil fungere på det nye 64-bitersystemet. Derfor installeres noen programmer ofte i en mappe som heter Program Files( x86), hvor x86 betyr "32-bit".
Kompatibilitetslag har en tendens til å være mer intimt med det opprinnelige systemet enn emulatorer er. VirtualBox emulerer -maskinvare for operativsystemer *, og systemene som den emulerer har ikke så mye direkte interaksjon med vertssystemet. WoW64 er et kompatibilitetslag ved at det lar 32-biters programmer kjøres på 64-biters Windows på en mer integrert måte. WoW64 hjelper til med å lage programmer -kompatible i stedet for som emulerer dem i et isolert miljø.
A oversettelsesbibliotek er en komponent av kompatibilitetslag. Når binær kode kjører ikke-hjemme, hjelper et oversettelsesbibliotek til å omdirigere utenlandske, utenlandske samtaler til innkommende samtaler som systemet kan forstå.Monteringsprogrammer skrevet for den opprinnelige TI-83 er kanskje ikke kompatible med de nyere TI-83/84 Plus-kalkulatorene, fordi noen samtaler som var fornuftige i TI-83s arkitektur, ikke lenger er gyldige i TI-83/84 +.Et oversettelsesbibliotek( sannsynligvis inkludert i skjell som MirageOS) sikrer at samtaler for TI-83 går til de nye, oppdaterte stedene i TI-83/84 + kalkulatorene.
Platform-uavhengig kode er skrevet på et språk som er tolket av noe som vanligvis kjører innfødt. For eksempel er PHP et programmeringsspråk som tolkes og utføres av det installerte PHP-binære, som allerede er kompilert native for Windows, Mac og Unix-baserte operativsystemer. PHP-koden som webskriptene skriver, er uavhengige av plattformen, slik at koden kan fungere på flere operativsystemer så lenge PHP er installert for disse operativsystemene.
Har du noe å legge til forklaringen? Lyde av i kommentarene. Vil du lese flere svar fra andre tech-savvy Stack Exchange-brukere? Sjekk ut hele diskusjonstråden her.