Кіріспе

NX биті (no execute) – деректерді немесе процессор нұсқауларын сақтау үшін, процессорларда қолданылатын, виртуалды адрестік кеңістіктің бөліктерін бөлу технологиясы. NX битін қолдайтын операциялық жүйе, адрестік кеңістіктің белгілі бір бөліктерін орындалмайтын деп белгілеуі мүмкін. Процессор, адрестік кеңістіктің осы бөліктерінде орналасқан кез келген кодты орындаудан бас тартады. Орындалатын кеңістікті қорғау деп аталатын, сондай-ақ Write XOR Execute деп те аталатын бұл жалпы техника, зиянды бағдарламалардың кейбір түрлерінің, басқа бағдарламаның дерек сақтау аймағына өз кодын енгізу арқылы компьютерлерді басып алуына жол бермеу үшін қолданылады және осы бөлімнен өз кодын іске қосады; мұндай шабуылдардың бір түрі – буфер асығу шабуылы. NX биті термині Advanced Micro Devices (AMD) компаниясынан маркетингтік термин ретінде шыққан. Intel бұл мүмкіндікті XD биті (орындауды өшіру) деп сатады. MIPS архитектурасы бұл мүмкіндікті XI биті (орындауды тоқтату) деп атайды. ARM архитектурасы, ARMv6 нұсқасында енгізілген бұл мүмкіндікті XN (ешқашан орындалмау) деп атайды. NX биті термині кейде басқа процессорлардағы ұқсас технологияларды сипаттау үшін де қолданылады.

x86

x86 процессорлары, 80286-дан бастап, сегмент деңгейінде іске асырылған ұқсас мүмкіндіктерді қамтыды. Дегенмен, 80386 және одан кейінгі x86 процессорлары үшін жасалған дерлік барлық операциялық жүйелер жазық жад моделін қолданады, сондықтан олар бұл мүмкіндікті пайдалана алмайды. Бұл процессорларда беттер кестесіне кірісте (беттер сипаттамасында) «Орындалатын» белгісі болған жоқ. Осы мүмкіндікті тегіс жад моделін қолданатын операциялық жүйелерге қолжетімді ету үшін AMD өзінің AMD64 архитектурасында беттер кестесіне кірісте «орындауға тыйым салынған» немесе NX битін қосты, бұл бүкіл сегментке емес, әрбір бетке орындалуын басқаратын механизмді қамтамасыз етеді. Intel компаниясы осыған ұқсас мүмкіндікті 2001 жылы Itanium (Merced) процессорында, IA 64 архитектурасымен бірге, іске қосты, бірақ оны көбірек таралған x86 процессорларының отбасыларына (Pentium, Celeron, Xeon және т.б.) енгізбеді. x86 архитектурасында AMD бұл мүмкіндікті алғаш рет NX биті ретінде, өзінің AMD64 процессорлар тізбегі үшін, мысалы Athlon 64 және Opteron үшін пайдаланды. AMD-нің бұл функционалдылықты AMD64 нұсқаулар жиынтығына қосу шешімінен кейін Intel, Prescott ядросының кейінгі нұсқаларына негізделген Pentium 4 процессорларынан бастап, x86 процессорларында ұқсас XD бит мүмкіндігін іске асырды. NX биті нақтырақ айтқанда, беттер кестесіндегі 64 биттік жазбаның 63-ші битіне (яғни ең маңызды битіне) сілтеме жасайды. Егер бұл бит 0-ге тең болса, онда кодты сол беттен орындауға болады; егер 1-ге орнатылса, онда кодты сол беттен орындауға болмайды және ондағы барлық деректер дерек ретінде қарастырылады. Бұл мүмкіндік тек ұзақ режимде (64 биттік режимде) немесе Physical Address Extension (PAE) беттер кестесі форматтарында ғана қолжетімді, бірақ x86-ның бастапқы 32 биттік беттер кестесі форматында қолжетімсіз, себебі бұл форматтағы беттер кестесі жазбаларында орындауды қосу немесе өшіру үшін қолданылатын 64-ші бит жоқ. Windows XP SP2 және одан кейінгі нұсқалары Data Execution Prevention (DEP) технологиясын қолдайды.

АРМ

ARMv6-да жаңа беттік кесте жазбасы форматы енгізілді; ол "ештеңе орындалмасын" битін қамтиды.

Альфа

Alpha Architecture нұсқаулығының төртінші басылымына сәйкес, DEC (қазір HP) Alpha жүйесінде OpenVMS, Tru64 UNIX және Alpha Linux PALкодтарымен жұмыс істейтін беттік кесте жазбаларында Execute қатесі біті бар.

SPARC

Sun SPARC нұсқасы 8-ге арналған SPARC анықтамалық MMU, беттік кесте жазбаларында тек оқу, оқу/жазу, оқу/орындау және оқу/жазу/орындау рұқсаттарын ұсынады, бірақ барлық SPARC процессорларында SPARC анықтамалық MMU болмайды. SPARC нұсқасы 9 MMU, оқу/жазу/орындау рұқсаттарының кез келген комбинациясын ұсынуы мүмкін, бірақ бұл міндетті емес. Oracle SPARC Architecture 2011, D1.0.0 нұсқасының жобасындағы Translation Storage Buffer-дегі аударма кестесі жазбасында орындалатын және жазылатын биттер бөлек.

PowerPC/Power ISA (Қозғалтқыштың басқару жүйесі)

IBM PowerPC жүйесіндегі хэштелген беттер кестелерінің жазбаларында орындауға тыйым салатын бит болады. Power ISA нұсқасындағы радикс ағашы беттер кестелерінде оқу/жазу және орындау құқықтарын беретін жеке рұқсат биттері қарастырылған.

PA-RISC

PA RISC 1.1 және PA RISC 2.0 жүйелеріндегі Translation lookaside buffer (TLB) жазбалары мен беттер кестесі жазбалары тек оқуға арналған, оқу/жазу, оқу/орындау және оқу/жазу/орындау беттерін қолдайды.

Итан

Itanium жүйесіндегі TLB жазбалары тек оқуға арналған, оқу/жазу, оқу/орындау және оқу/жазу/орындау беттерін қолдайды.

z/Архитектура

z/Architecture Principles of Operation-ның он екінші басылымына сәйкес, z/Architecture процессорлары нұсқауларды орындауды қорғау мүмкіндігін қолдауы мүмкін, ол беттік кесте жазбаларына бит қосып, белгілі бір аймақтан, сегменттен немесе беттен нұсқауларды орындау бақыланады.