Hva betyr det for programvare å kjøre innfødt?
Når folk refererer til å kjøre innfødt 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 nativt? Hvordan kan jeg vite om et bestemt stykke programvare 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 for programvare å 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 å kjøre på den plattformen.
En plattform refererer vanligvis til et operativsystem, men det kan også brukes på enheter som Nintendo Game Boy.
Ved hjelp av Game Boy som et eksempel, får den sin programvare fra blekkpatroner. Disse kassettene inneholder kode som kjører fritt på spill gutten.
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.
EN kompatibilitetslag er snill som en emulator. Når 64-biters 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-bits 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 er enkelte programmer ofte installert i en mappe som heter
Programfiler (x86)
, hvorx86
betyr "32-bit".Kompatibilitetslag har en tendens til å være mer intim med det opprinnelige systemet enn emulatorene er. VirtualBoxEmulerer maskinvare for operativsystemer *, og systemene det emulerer ikke har veldig mye direkte interaksjon med vertssystemet. WoW64 er en kompatibilitetslag ved at det lar 32-biters programmer kjøres på 64-biters Windows på en mer integrert måte. WoW64 bidrar til å lage programmer kompatibel heller ennetterligning dem i et isolert miljø.
EN 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 som er 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 går innfødt. For eksempel er PHP et programmeringsspråk som tolkes og utføres av det installerte PHP-binære, som allerede er utarbeidet fritt 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 de 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.