Många av oss har sett när vi öppnar den lokala disken C att det finns två mappar som heter "Program Files" och "Program Files (x86)" i Windows -miljöer:
Frågan som uppstår är: Vad är skillnaden mellan dessa två mappar? Kom ihåg att syftet med båda är att vara värd för de program som är installerade på systemet.
Det är viktigt och idealiskt att komma ihåg att sedan 2005 tog Microsoft beslutet att tillhandahålla sina Windows-system i 32-bitars och 64-bitars arkitektur för alla användare eftersom ursprungligen var Windows bara tillgängligt som ett 32-bitars operativsystem. Det är därför som vi i 32-bitarsversioner av Windows, även 32-bitarsversioner av Windows 10, som vi fortfarande ser idag, bara ser en mapp C: \ Program Files medan vi i 64-bitars operativsystem hittar två mappar med namnet C: \ Program Files (C: \ Program Files) och C: \ Program Files 8x86) eller C: \ Program Files (x86).
Denna "Program Files" -mapp är standardplatsen i Windows där de program vi installerar måste lagra sina körbara filer, data och andra typer av filer.
WoW64-lagret tar hand om att emulera en 32-bitarsmiljö, och eventuell prestationsförlust märks i allmänhet inte som användare. Emulerade program har en fördel eftersom WoW64 kan tilldela den maximala mängden RAM (4 GB) till applikationen. I ett verkligt 32-bitars system skulle en del av det RAM-minnet tilldelas kärnan i operativsystemet och andra program som körs.
Vad är skillnaden mellan dessa två mappar
Windows operativsystem kör 32-bitars applikationer på 64-bitars versioner av Windows med något som kallas WOW64, vilket betyder "32-bitars Windows på 64-bitars Windows", men det kan inte köra 64-bitars applikationer i 32-bitars miljöer.
När vi kör ett 32-bitars program på en 64-bitarsversion av Windows, omdirigerar WOW64-emuleringslagret denna åtkomst till filer från sökvägen "C: \ Program Files" till "C: \ Program Files (x86)". 32-bitars program försöker komma åt "Program Files" -katalogen och peka på mappen "Program Files (x86)". 64-bitars program använder fortfarande den vanliga programmets "Filer" -mapp.
Vad varje mapp lagrar
I 32-bitars Windows-miljöer har vi bara mappen "C: \ Program Files" som innehåller alla 32-bitars program installerade.
FÖRSTORA
I en 64-bitarsversion av Windows lagras 64-bitars program i mappen "C: \ Program Files" och 32-bitars program lagras i mappen "C: \ Program Files (x86).":
FÖRSTORA
Anledningar till att båda mapparna finns och inte bara en
- För att skilja de olika versionerna
- Minska risken för konflikter när du kör 32-bitars program i 64-bitars miljöer
- Ökar sannolikheten för att äldre program fungerar korrekt
Utöver detta kan 32-bitars program inte ladda 64-bitars bibliotek (DLL-filer) och kan krascha om de försöker ladda en specifik DLL och hitta en 64-bitars fil istället för en 32-bitars. Detsamma gäller för 64-bitars program eftersom att hålla olika programfiler för olika CPU-arkitekturer åtskilda hindrar fel som dessa från att påverka produktiviteten.
Anledningen till att "Program Files" -mappen har x86-insticksprogrammet är att x86 är ett annat sätt att hänvisa till 32-bitars processorer. Ursprungligen kallades 16-bitars processorer (specifikt 8086- och 8088-processorarkitekturerna) "x86". Detta namn utökades under en tid till att omfatta 32-bitars 80386- och 80486-processorfamiljen. När 64-bitars processorer introducerades kallades de x64 för att skilja dem från äldre processorlinjer.
Windows installerar automatiskt programmen i rätt mapp så att vi inte behöver oroa oss för om de finns i rätt sökvägsmapp eller inte.
Alla 32-bitars och 64-bitars program och applikationer bör lagra sina data i mappar som AppData och ProgramData, och inte i någon "Program Files" -mapp.
För att ta reda på vilka program eller applikationer som är 32 eller 64 bitar, kan vi gå till varje mapp i enhet C och se var programmet är installerat, eller från Windows Aktivitetshanteraren kan vi se arkitekturen för programmet:
FÖRSTORA
Varje applikation har utvecklats med en speciell typ av arkitektur och Windows tar hand om att hitta den på rätt väg.