Pagina principala » ferestre » Dosarul Sysnative din Windows pe 64 de biți a fost explicat

    Dosarul Sysnative din Windows pe 64 de biți a fost explicat

    Odată cu lansarea Windows 7 de 64 de biți, a apărut o mică schimbare în alocarea normală a dosarelor din directorul Windows. Două foldere noi sunt incluse în ediția pe 64 de biți a Windows 7, Windows 8 și Windows 10. Acestea sunt Sysnative și SysWOW64 dosare. Acest lucru este valabil numai pentru Windows pe 64 de biți. Dacă rulați un Windows pe 32 de biți pe o mașină pe 64 de biți, nu le veți vedea. Nu le veți vedea când rulează Windows pe 32 de biți pe o mașină pe 32 de biți.

    Există un alt folder în afara directorului Windows și se numește Fișiere program (x86). Suntem obișnuiți cu numele dosarului Program Files care găzduiește executabilele programelor noastre. În sistemele pe 64 de biți, programele pe 64 de biți sunt stocate în folderul Program Files în timp ce programele pe 32 de biți sunt găzduite în Program Files (x86). Cu toate acestea, Windows utilizează ceva asemănător unei emulații pentru rularea programelor pe 32 de biți pe o mașină pe 64 de biți. Și, prin urmare, este necesar să știți și să înțelegeți care sunt folderele de sistem sub Windows (64 biți), astfel încât să știți cum să ajungeți la fișierul pe care doriți.

    Spre deosebire de mașinile pe 32 de biți, unde DLL-urile pe 32 de biți sunt stocate în Dosarul System32, versiunea pe 64 de biți a Windows stochează DLL-uri legate de 64 de biți în folderul System32. Acest lucru este pentru a ușura scopurile de programare și pentru a oferi compatibilitate înapoi. Asta este, dacă un program pe 64 de biți se referă la System32 în codul său, va primi DLL pe 64 de biți în mod automat când este sunat. Acest lucru ajută dezvoltatorii deoarece nu trebuie să schimbe codul în programele lor pentru Windows pe 64 de biți.

    Pe scurt, Windows a mutat toate DLL-urile de 32 de biți din folderul System32 din directorul Windows într-un alt folder, astfel încât programele anterioare să nu fie recodificate pentru a obține DLL-urile adecvate, chiar și atunci când se utilizează API - după upgrade-ul la 64 de biți. Problema apare atunci când o aplicație pe 32 de biți încearcă să acceseze folderul System32. În acest caz, programul se va prăbuși deoarece nu este scris pentru a gestiona DLL-urile pe 64 de biți.

    Dosarul SysWOW64 în Windows pe 64 de biți

    Toate DLL-urile pe 32 de biți au fost mutate la noul Dosarul SysWOW64 în versiunea pe 64 de biți a Windows 7, Windows 8 și Windows 10, astfel încât atunci când programele pe 32 de biți apelează DLL-urile pe 32 de biți, trebuie să ajungă la dosarul SysWOW64.

    S-ar putea să simțiți că dezvoltatorii vor trebui să-și scaneze programele și aplicațiile pentru a îndrepta funcțiile DLL în dosarul SysWOW64. Dar Microsoft sa ocupat deja de aceasta. Dacă este un program pe 32 de biți care sună C: \ Windows \ System32, un emulator va redirecționa calea către C: \ Windows \ SysWOW64. Asta este, pentru a rula programe pe 32 de biți în Windows 64-bit, un emulator este folosit, astfel încât să existe o compatibilitate înapoi corespunzătoare și pentru a evita erorile atunci când apelați fișierele DLL.

    Folder Sysnative în Windows pe 64 de biți

    Pot exista cazuri în care un program sau o aplicație pe 32 de biți ar putea avea nevoie de un DLL pe 64 biți. În acest caz, va trebui să utilizați dosarul de redirecționare Sysnative. Puteți considera SysNative ca fiind un folder virtual și un alias care indică folderul System32. Nu există fizic în sistemul dvs., ca atare. Deci, dacă programul dvs. pe 32 de biți are nevoie să acceseze un DLL pe 64 de biți, nu utilizați C: \ Windows \ System32 deoarece emulatorul de programe pe 32 de biți va duce la folderul DLL pe 32 de biți denumit SysWOW64. În schimb, utilizați C: \ Windows \ SysNative ca calea spre programul DLL. Utilizarea Sysnative în cale va redirecționa în folderul System32 în loc de folderul SysWOW64.

    Dacă deschideți Fișier Windows Explorer, nu veți găsi folderul Sysnative în C: \ Windows. Chiar dacă setați Opțiuni folder pentru a afișa dosare ascunse și de sistem. Acest lucru se datorează faptului că Windows File Explorer este un program pe 64 de biți când rulează pe un sistem Windows pe 64 de biți și folderul Sysnative este vizibil și accesibil numai din programe pe 32 de biți.

    În concluzie:

    1. Dosarele System32 conțin fișiere DLL pe 64 de biți.
    2. SysWOW64 conține fișiere DLL pe 32 de biți, iar programele pe 32 de biți sunt redirecționate automat la acest folder
    3. Sysnative este un director de redirecționare care permite programelor pe 32 de biți să apeleze DLL-uri pe 64 de biți.

    Citire suplimentară: MSDN.

    Doriți să știți diferența dintre dosarele System32 și SysWOW64?