64-bitars

Sysnative-mapp i Windows 64-bitars förklaras

Sysnative-mapp i Windows 64-bitars förklaras

Med lanseringen av Windows 7 på 64-bitar infördes en liten förändring i den normala tilldelningen av mappar i Windows-katalogen. Två nya mappar ingår i 64-bitarsversionen av Windows 10, Windows 8 och Windows 70. Dom är Sysnative och SysWOW64 mappar. Detta är endast i 64-bitars Windows. Om du kör ett 32-bitars Windows på en 64-bitars maskin ser du dem inte. Du kommer inte heller att se dem när du kör 32-bitars Windows på en 32-bitars maskin.

Det finns en annan mapp utanför Windows-katalogen, och den heter Programfiler (x86). Vi är vana vid namnet på mappen Program Files som innehåller körbarheten för våra program. I 64-bitarssystem lagras 64-bitarsprogrammen i mappen Programfiler medan 32-bitarsprogrammen finns i Program Files (x86). Windows använder dock något som en emulering för att köra 32-bitarsprogram på en 64-bitars maskin. Och därför finns det ett behov av att veta och förstå vilka systemmappar som är under Windows (64 bitar) så att du vet hur du når filen du vill ha.

Till skillnad från 32-bitars maskiner, där 32-bitars DLL-filer lagras i System32-mapp, 64-bitarsversionen av Windows lagrar DLL-filer relaterade till 64-bitar i System32-mappen. Detta för att underlätta programmeringsändamålen och för att ge bakåtkompatibilitet. Det vill säga om ett 64-bitarsprogram refererar till System32 i sin kod, kommer det att få 64-bitars DLL automatiskt när det anropas. Detta hjälper utvecklare eftersom de inte behöver ändra koden i sina program för Windows 64-bit.

Kort sagt, Windows flyttade alla 32-bitars DLL-filer från System32-mappen i Windows-katalogen till någon annan mapp så att tidigare program inte behöver kodas om för att få rätt DLL-filer även när man använder API: er - efter uppgradering till 64-bitars. Problemet uppstår när ett 32-bitarsprogram försöker komma åt System32-mappen. I det här fallet kraschar programmet eftersom det inte är skrivet för att hantera 64-bitars DLL-filer.

Läsa: Vad är Panther-mappen?

SysWOW64-mapp i Windows 64-bit

Alla 32-bitars DLL-filer har flyttats till den nya SysWOW64-mapp i 64-bitarsversionen av Windows 10, Windows 8 och Windows 7, så när 32-bitarsprogrammen kräver 32-bitars DLL-filer måste de nå SysWOW64-mappen.

Du kanske känner att utvecklarna måste skanna sina program och applikationer för att peka DLL-funktionerna till SysWOW64-mappen. Men Microsoft har redan tagit hand om det. Om det är ett 32-bitars program som ringer C: \ Windows \ System32, en emulator omdirigerar sökvägen till C: \ Windows \ SysWOW64. För att köra 32-bitarsprogram i Windows 64-bitars används en emulator så att det finns rätt bakåtkompatibilitet och för att undvika fel när du ringer till DLL-filer.

Läsa: Vad är FUNDET?.000 mapp?

Sysnative-mapp i Windows 64-bit

Det kan finnas fall där ett 32-bitars program eller program kan behöva en 64-bitars DLL. I så fall måste du använda omdirigeringsmappen Sysnative. Du kan betrakta SysNative som en virtuell mapp och ett alias som pekar på System32-mappen. Det finns inte fysiskt på ditt system som sådant.

Så om ditt 32-bitarsprogram behöver komma åt en 64-bitars DLL, använd inte det C: \ Windows \ System32 eftersom 32-bitars programemulatorn tar den till 32-bitars DLL-mappen som heter SysWOW64. Använd istället C: \ Windows \ SysNative som sökvägen till DLL-programmet. Om du använder Sysnative i sökvägen omdirigeras den till mappen System32 istället för mappen SysWOW64.

Om du öppnar File Windows Explorer kommer du inte att hitta Sysnative-mappen i C: \ Windows. Även om du ställer in mappalternativ för att visa dolda mappar och systemmappar. Detta beror på att Windows File Explorer är ett 64-bitarsprogram när det körs i ett 64-bitars Windows och att Sysnative-mappen är synlig och endast tillgänglig från 32-bitarsprogram.

För att sammanfatta:

  1. System32-mappar innehåller 64-bitars DLL-filer.
  2. SysWOW64 innehåller 32-bitars DLL-filer och 32-bitarsprogrammen omdirigeras automatiskt till den här mappen
  3. Sysnative är en omdirigeringsmapp som gör att 32-bitarsprogram kan ringa 64-bitars DLL-filer.

Ytterligare läsning: MSDN.

Vill du veta skillnaden mellan System32 och SysWOW64-mappar?

Vulkan för Linux-användare
Med varje ny generation grafikkort ser vi spelutvecklare driva gränserna för grafisk trohet och komma ett steg närmare fotorealism. Men trots all kred...
OpenTTD vs Simutrans
Att skapa din egen transportsimulering kan vara rolig, avkopplande och extremt lockande. Det är därför du måste se till att du testar så många spel so...
OpenTTD-handledning
OpenTTD är ett av de mest populära affärssimuleringsspelen där ute. I det här spelet måste du skapa en underbar transportaffär. Du kommer dock att bör...