No-eXecute (NX)
No-eXecute (NX) este o funcție de procesor care vă permite să marcați paginile de memorie ca care nu conțin cod executabil. Această caracteristică permite procesorului să protejeze sistemul de atacurile software dăunătoare. Caracteristica NX previne plasarea codului rău intenționat în zonele de memorie accesibile. Windows 8 cere ca sistemele să aibă procesoare care suportă NX, iar funcția NX trebuie să fie activată pentru a asigura o securitate adecvată și pentru a evita posibilele vulnerabilități.
Această secțiune se referă în mod direct Termenul NX la bit CPU NX, care este definit de AMD, sau bit CPU XD echivalent, care este definit de Intel pentru a sprijini funcția de prevenire Start date (DEP) în Microsoft Windows.
DEP vă permite să preveniți lansarea de cod rău intenționat din paginile de memorie. conținând date. O versiune pe 32 de biți a Windows utilizează una din următoarele funcții pentru a sprijini DEP:
Funcția procesorului pentru protejarea paginilor de executarea codului executabil (NX)
Funcția bitului eXecute Disable (XD), determinat de Intel.
Dacă funcția DEP este activată pe sistem, procesorul care acceptă funcția NX, funcția PAE este activată automat.
Extensiile SIMD (SSE2)
Toate procesoarele care suportă NX suportă de asemenea extensii SIMD 2 (SSE2). SSE2 este un set suplimentar de instrucțiuni pentru procesoare SIMD. AMD include, de asemenea, suport pentru SSE2 în liniile Opteron și Athlon 64 ale procesoarelor AMD64. Toate procesoarele care suportă NX suportă și SSE2. Multe aplicații Windows 8 au căi de cod cu un set de instrucțiuni SSE2. SSE2 este o cerință obligatorie pentru Windows 8.
Domeniul de aplicare
Toate procesoarele moderne suportă funcția NX. Funcția NX poate fi dezactivată în BIOS. Pe baza datelor de telemetrie disponibile, la un procent din toate sistemele care rulează Windows® 7, funcția NX este dezactivată din cauza setării necorespunzătoare a BIOS-ului.
Visual Studio oferă instrucțiuni SSE2 în mod implicit. Aplicațiile care accesează aceste instrucțiuni eșuează pe sistemele cu procesoare mai vechi care nu acceptă SSE2, așa cum este descris în secțiunea instrucțiuni SSE2, sunt create prin specificarea / arc: SSE.
Cerințe de suport
Această secțiune descrie măsurile care verifică suportul pentru cerințele pentru procesoarele PAE, NX și SSE2 pe sistemele care rulează Windows 8.
Obligația logoului Windows 8
Cerința de certificare hardware pentru Windows 8 necesită ca toți driverele să colaboreze cu prevenirea executării datelor pentru a asigura comportamentul adecvat al dispozitivului și al sistemului de drivere. Driverele nu ar trebui să execute codul din stivă, grupul paginat și grupul de sesiuni. Șoferii nu ar trebui să se prăbușească la încărcare, dacă modul PAE este activat. Funcția NX trebuie să fie activată în firmware-ul sistemului, iar politica DEP trebuie să fie setată la Always off. Un test de certificare este inclus pentru a confirma că sistemul îndeplinește această cerință pentru suportul NX.
Verificarea compatibilității hardware pentru instalarea Windows
Instalarea Windows are un controler de compatibilitate hardware pentru a suporta PAE, NX și SSE2 în sistemul instalat. Sistemele care nu îndeplinesc cerințele pentru sprijin procesor PAE, NX și SSE2, marcate ca blocare de pe hardware-ul pentru Windows 8 în situația de probleme de compatibilitate, cu procesorul mesajul computerului nu este compatibil cu Windows 8.
Fig. 1. Mesaj de eroare legat de incompatibilitatea procesorului
Această verificare a cerințelor de asistență este disponibilă numai în noul program de instalare Windows și în Advisorul de upgrade. Windows 8 include o versiune alternativă a programului de instalare și folderul Surse de pe mediul de instalare care nu efectuează acest test. Clienții care încearcă să folosească această versiune alternativă de Windows Installer, sistemul care nu îndeplinește cerințele pentru a sprijini PAE / NX / SSE2, va vedea un mesaj de eroare în timpul instalării, și apoi va fi derulată înapoi la o versiune anterioară a sistemului de operare.
Când porniți din mediul de stocare sau dintr-o rețea, cum ar fi utilizarea Windows Services Deployment (WDS) în timpul instalării Windows, nu se efectuează verificări de compatibilitate. În astfel de scenarii, un sistem fără suport NX și SSE2 va da o eroare critică (care este descrisă în următoarea secțiune a Îmbunătățirii kernelului) atunci când instalatorul încearcă să pornească Windows.
Extensii pentru kernel
Pentru a verifica respectarea cerinței de suport a instrucțiunilor SSE2 și a funcției NX pentru Windows 8, kernelul acestui sistem de operare verifică aceste funcții în timpul inițializării. Sistemele care nu suporta SSE2 sau NX, nu se poate inițializa nucleul Windows 8. Într-un sistem care poate dezactiva NX în firmware-ul, această setare este suprascrisă astfel încât firmware-ul incorect configurat nu duce la eșecul descărcării. Încercarea de a porni sistemul fără suport NX sau SSE2 va duce la o eroare critică. Într-un sistem pe 32 de biți, utilizatorii primesc o eroare de cod UNSUPPORTED_PROCESSOR (0x0000005D) împreună cu 4 linii de informații:
Linia 1 - codul care indică funcția lipsă și identificatorul CPU
Linii 2 - 4 - liniile identificatorului furnizorului
Într-un sistem pe 64 de biți, o eroare critică arată același cod UNSUPPORTED_PROCESSOR ca pe un sistem pe 32 de biți, împreună cu următoarele patru linii de informare:
Linia 1 - conținutul registrului funcțiilor standard
Linia 2 - conținutul registrului funcțiilor extinse
Liniile 3 - 4 - ambele cu o valoare de 0