Priečinok Sysnative v 64-bitovom systéme Windows bol vysvetlený

Obsah:

Priečinok Sysnative v 64-bitovom systéme Windows bol vysvetlený
Priečinok Sysnative v 64-bitovom systéme Windows bol vysvetlený

Video: Priečinok Sysnative v 64-bitovom systéme Windows bol vysvetlený

Video: Priečinok Sysnative v 64-bitovom systéme Windows bol vysvetlený
Video: Avi Rubin: All your devices can be hacked - YouTube 2024, November
Anonim

S vydaním systému Windows 7 64-bitov došlo k malej zmene v normálnej alokácii priečinkov v adresári Windows. V 64-bitovej edícii Windows 7, Windows 8 a Windows 10 sú zahrnuté dve nové priečinky Sysnative a SYSWOW64 zložky. Toto je len v 64-bitovom systéme Windows. Ak spustíte 32 bitový systém Windows na 64-bitovom počítači, neuvidíte ho. Ani ich neuvidíte pri spustení 32-bitového systému Windows na 32-bitovom počítači.

Existuje ďalšia zložka mimo adresára systému Windows a nazýva sa Programové súbory (x86), Sme zvyknutí na názov priečinka Program Files, ktorý obsahuje spustiteľné súbory našich programov. V 64-bitových systémoch sa 64-bitové programy ukladajú do priečinka Program Files, kým 32-bitové programy sú uložené v programových súboroch (x86). Systém Windows však používa niečo ako emuláciu na spustenie 32-bitových programov na 64-bitovom počítači. A preto je potrebné vedieť a pochopiť, aké sú systémové priečinky v systéme Windows (64 bitov), takže viete, ako sa dostať k súboru, ktorý chcete.

Na rozdiel od 32-bitových počítačov, kde sú uložené 32-bitové DLL Zložka System32, 64-bitová verzia systému Windows ukladá DLL súvisiace so 64 bitmi do priečinka System32. Toto má uľahčiť programovacie účely a poskytnúť spätnú kompatibilitu. To znamená, že ak 64-bitový program odkazuje na System32 vo svojom kóde, získa 64-bitovú DLL automaticky pri volaní. To pomáha vývojárom, pretože nemusia meniť kód vo svojich programoch pre systém Windows 64-bit.

Stručne povedané, systém Windows presunul všetky 32-bitové DLL z priečinka System32 v adresári Windows do iného priečinka, takže predchádzajúce programy nemusia byť rekodifikované, aby získali správne DLL aj pri použití API - po inovácii na 64-bitové. K problému dochádza, keď sa 32-bitová aplikácia pokúsi získať prístup k priečinku System32. V tomto prípade sa program spustí, pretože nie je napísaný na spracovanie 64-bitových DLL.

Priečinok SysWOW64 v systéme Windows 64-bit

Všetky 32-bitové DLL boli presunuté do nového SysWOW64 priečinok v 64-bitovej verzii Windows 7, Windows 8 a Windows 10, takže keď 32-bitové programy volajú na 32-bitové DLL, musia sa dostať do priečinka SysWOW64.

Možno máte pocit, že vývojári budú musieť skenovať svoje programy a aplikácie, aby ukazovali funkcie DLL do priečinka SysWOW64. Ale Microsoft sa už o to postaral. Ak ide o 32-bitový program, ktorý volá C: Windows System32, emulátor presmeruje cestu na C: Windows SYSWOW64, To znamená, že na spustenie 32-bitových programov v systéme Windows 64-bit sa používa emulátor, takže existuje správna spätná kompatibilita a zabráni sa chybám pri volaní súborov DLL.

Sysnative priečinok v systéme Windows 64-bit

Image
Image

Môžu existovať prípady, keď 32-bitový program alebo aplikácia môže naozaj potrebovať 64-bitovú DLL. V tomto prípade budete musieť použiť priečinok presmerovania Sysnative, SysNative môžete považovať za virtuálny priečinok a alias, ktorý odkazuje na priečinok System32. Na vašom systéme fyzicky neexistuje. Ak teda váš 32-bitový program potrebuje prístup k 64-bitovému DLL, nepoužívajte ho C: Windows System32 pretože 32-bitový emulátor programu prevezme do 32-bitovej zložky DLL s názvom SysWOW64. Namiesto toho použite C: Windows Sysnative ako cesta k programu DLL. Použitie Sysnative v ceste presmeruje do priečinka System32 namiesto priečinka SysWOW64.

Ak otvoríte položku Prieskumník systému Windows, v priečinku C: Windows nenájdete priečinok Sysnative. Aj keď nastavíte možnosť Možnosti priečinka, zobrazí sa skryté a systémové priečinky. Je to preto, že program Windows File Explorer je 64-bitový program pri spustení v 64-bitovom systéme Windows a priečinok Sysnative je viditeľný a prístupný iba z 32-bitových programov.

Sumarizovať:

  1. Zložky System32 obsahujú 64-bitové súbory DLL.
  2. SysWOW64 obsahuje 32-bitové súbory DLL a 32-bitové programy sú automaticky presmerované do tejto zložky
  3. Sysnative je priečinok presmerovania, ktorý umožňuje 32-bitovým programom zavolať 64-bitové DLL.

Dodatočné čítanie: MSDN.

Odporúča: