9Aug
Når folk henviser til kørende software, emulering og softwarekompatibilitet, hvad henvises der til? Læs videre som vi dykker ind i begrebet native software.
Dagens Spørgsmål &Svar session kommer til os høflighed af SuperUser-en underafdeling af Stack Exchange, en community-drevet gruppe af Q & A-websteder.
Spørgsmål
SuperUser læser Throsby er nysgerrig over, hvad det betyder at køre software indbygget. Han skriver:
Jeg har spekuleret på, hvad det betyder for software til at køre indfødt. Hvad er netop sådan software, og hvordan er det anderledes end software, der ikke kører indfødt? Hvordan kan jeg vide, om et bestemt stykke software vil køre indbygget på min computer? Er der sandsynligvis software allerede på min computer, der kører indfødt?
Læs videre for en fremragende analogi, der forklarer præcis, hvad det betyder at være hjemmehørende på et givet system.
Svaret
SuperUser-bidragyder Deltik tilbyder en fantastisk analogi, der fremhæver, hvad det betyder for software at være hjemmehørende, og hvilken anden software man kan finde på et givet system:
En software er indbygget på en platform, hvis den var designet til at køre videreden platform.
En platform refererer normalt til et operativsystem, men det kan også anvendes på enheder som Nintendo Game Boy.
Brug af Game Boy som et eksempel, det får sin software fra patroner. Disse patroner indeholder kode, der kører indbygget på Game Boy.
-emulatorer er et lag, der tillader software designet til, at en platform kan køres på en anden. For eksempel er der emulatorer, som kan udføre billeder af Game Boy-patroner og tillade dig at spille Game Boy-spil på din computer eller endda din mobiltelefon.
A kompatibilitetslag er lidt som en emulator. Når 64-bit computere og operativsystemer blev almindelige, skulle de være kompatible med de eksisterende 32-bit teknologier. Da 64-bit og 32-bit arkitekturer er meget forskellige, er der ofte brug for et kompatibilitetslag til at køre 32-bit software på 64-bit-maskiner. For 64-bit udgaver af Microsoft Windows havde Microsoft brug for at skrive et kompatibilitetslag, så 32-bit-programmer stadig ville arbejde på det nye 64-bit-system. Derfor installeres nogle programmer ofte i en mappe, der hedder Program Files( x86), hvor x86 betyder "32-bit".
Kompatibilitetslag tendens til at være mere intimt med det native system end emulatorer er. VirtualBox emulerer -hardware til operativsystemer *, og de systemer, som det emulerer, har ikke meget direkte interaktion med værtssystemet. WoW64 er et kompatibilitetslag , idet det lader 32-bit programmer køre på 64-bit Windows på en mere integreret måde. WoW64 hjælper med at gøre programmer kompatible snarere end emulere dem i et isoleret miljø.
A oversættelsesbibliotek er en komponent af kompatibilitetslag. Når binær kode kører ikke-indbygget, hjælper et oversættelsesbibliotek med at omdirigere udenlandske, ikke-oprindelige opkald til indgående opkald, som systemet kan forstå.Monteringsprogrammer, der er skrevet til den oprindelige TI-83, er muligvis ikke kompatible med de nyere TI-83/84 Plus-regnemaskiner, fordi nogle opkald, der giver mening i TI-83s arkitektur, ikke længere er gyldige i TI-83/84 +.Et oversættelsesbibliotek( sandsynligvis inkluderet i skaller som MirageOS) sikrer, at opkald til TI-83 går til de nye, opdaterede steder i TI-83/84 + -regnerne.
Platform-uafhængig kode er skrevet på et sprog, der er fortolket af noget, der normalt kører indbygget. For eksempel er PHP et programmeringssprog, der tolkes og udføres af det installerede PHP-binære, som allerede er blevet udarbejdet native til Windows, Mac og Unix-baserede operativsystemer. PHP-koden, som webscripters skriver, er uafhængige af platformen, så koden kan fungere på flere operativsystemer, så længe PHP er installeret til disse operativsystemer.
Har du noget at tilføje til forklaringen? Lyde af i kommentarerne. Vil du læse flere svar fra andre tech-savvy Stack Exchange brugere? Tjek den fulde diskussionstråd her.