Hva er forskjellen mellom mappene Programfiler (x86) og Programfiler i Windows?
Det er en god sjanse at du har både mappene "C: \ Programfiler" og "C: \ Programfiler (x86)" på Windows-PCen. Hvis du peker rundt, ser du at noen av programmene dine er installert i en mappe, og noen er installert i den andre.
32-biters vs 64-biters Windows
Opprinnelig var Windows bare tilgjengelig som et 32-biters operativsystem. På 32-biters versjoner av Windows-til og med 32-biters versjoner av Windows 10, som fremdeles er tilgjengelige i dag, ser du bare en mappe "C: \ Program Files".
Denne programfilmappen er det anbefalte stedet der programmer du installerer skal lagre deres kjørbare, data og andre filer. Med andre ord installerer programmene i mappen Programfiler.
På 64-biters versjoner av Windows installerer 64-biters applikasjoner i mappen Programfiler. 64-biters versjoner av Windows støtter imidlertid også 32-biters programmer, og Microsoft vil ikke at 32-biters og 64-bits programvare blir blandet på samme sted. Så blir 32-biters programmer installert i mappen "C: \ Program Files (x86)", i stedet.
Windows kjører 32-biters applikasjoner på 64-biters versjoner av Windows ved hjelp av noe som heter WOW64, som står for "Windows 32-bit på Windows 64-bit."
Når du kjører et 32-bits program på en 64-biters utgave av Windows, omdirigerer WOW64-emulasjonslaget sømløst filtilgangen fra "C: \ Program Files" til "C: \ Program Files (x86)." 32-biters Programmet prøver å få tilgang til Programfil-katalogen og peker på mappen Programfil (x86). 64-biters programmer bruker fortsatt den normale Programfil-mappen.
Hva er lagret i hver mappe
I sammendrag, på en 32-biters versjon av Windows, har du bare en "C: \ Program Files" -mappe. Dette inneholder alle dine installerte programmer, som alle er 32-bit.
I en 64-biters versjon av Windows lagres 64-biters programmer i mappen "C: \ Program Files" og 32-biters programmer lagres i mappen "C: \ Program Files (x86)".
Derfor er forskjellige programmer spredt over de to programfilmappene, tilsynelatende tilfeldig. De i mappen "C: \ Program Files" er 64-bit, mens de i mappen "C: \ Program Files (x86)" er 32-biters.
Hvorfor er de splittet opp?
Dette er en kompatibilitetsfunksjon designet for gamle 32-bits programmer. Disse 32-biters programmene er kanskje ikke klar over at en 64-biters versjon av Windows selv eksisterer, så Windows holder dem borte fra den 64-biters koden.
32-biters programmer kan ikke laste 64-biters biblioteker (DLL-filer), og kan krasje hvis de prøvde å laste en bestemt DLL-fil og fant en 64-biters en i stedet for en 32-biters. Det samme gjelder for 64-biters programmer. Å holde forskjellige programfiler for forskjellige CPU-arkitekturer, skiller seg fra hverandre, og forhindrer at slike feil oppstår.
For eksempel, la oss si at Windows bare brukte en enkelt Programfil-mappe. En 32-biters applikasjon kan lete etter en Microsoft Office DLL-fil som finnes i C: \ Program Files \ Microsoft Office, og prøver å laste den. Men hvis du hadde en 64-biters versjon av Microsoft Office installert, ville applikasjonen krasje og ikke fungere skikkelig. Med de separate mappene vil applikasjonen ikke kunne finne DLL i det hele tatt, fordi 64-bitersversjonen av Microsoft Office ville være på C: \ Program Files \ Microsoft Office og 32-bits applikasjonen ville se i C : \ Programmer (x86) \ Microsoft Office.
Dette hjelper også når en utvikler lager både 32-biters og 64-biters versjoner av et program, spesielt hvis begge må installeres samtidig i noen situasjoner. 32-bitersversjonen installeres automatisk til C: \ Program Files (x86), og 64-bitersversjonen installeres automatisk til C: \ Programfilene. Hvis Windows brukte en enkelt mappe, ville programmets utvikler måtte ha 64-biters mappe installert til en annen mappe for å holde dem adskilt. Og det er sannsynligvis ingen reell standard for utviklere installert forskjellige versjoner.
Hvorfor er 32-biters mappe navngitt (x86)?
Du vil ikke alltid se "32-bit" og "64-bit." I stedet ser du noen ganger "x86" og "x64" for å referere til disse to forskjellige arkitekturene. Det skyldes at tidlige datamaskiner brukte Intel 8086-brikken. De originale sjetongene var 16-bit, men nyere versjoner ble 32-bit. "X86" refererer nå til før 64-bits arkitekturen, enten det er 16-bit eller 32-bit. Den nyere 64-biters arkitekturen kalles i stedet for "x64".
Det er det som "Programfiler (x86)" betyr. Det er Programfil-mappen for programmer som bruker den eldre x86-CPU-arkitekturen. Bare vær oppmerksom på at 64-biters versjoner av Windows ikke kan kjøre 16-biters kode.
Dette er ikke normalt
Det er normalt ikke noe om et programs filer er lagret i Programfiler eller Programfiler (x86). Windows installerer automatisk programmer til riktig mappe, så du trenger ikke å tenke på det. Programmer vises i Start-menyen og fungerer normalt, uansett hvor de er installert. Begge 32-biters og 64-biters programmene skal lagre dataene dine i mapper som AppData og ProgramData, og ikke i noen Programfiler-mappe. Bare la programmene automatisk bestemme hvilken programfiler som skal brukes.
Hvis du bruker en bærbar app, kan den kjøre fra hvilken som helst mappe på systemet ditt, slik at du ikke trenger å bekymre deg for hvor du skal sette dem. Vi liker å sette bærbare apper i Dropbox eller en annen type skylagringsmappe, slik at de er tilgjengelige på alle våre PCer.
Du må noen ganger vite hvor et program er lagret. For eksempel, la oss si at du vil gå inn i Steam-katalogen for å sikkerhetskopiere noen filer. Du finner den i C: \ Program Files (x86), da Steam er et 32-bits program.
Hvis du ikke er sikker på om et program du installerte er 64-bit eller ikke, og du leter etter installasjonsmappen, må du kanskje se i begge programfilmappene for å finne den.
Du kan også se i Task Manager i Windows 10.
På 64-biters versjoner av Windows, er 32-bits programmer merket med den ekstra "(32-biters)" -teksten, noe som gir deg en indikasjon på at du finner dem i C: \ Program Files (x86).