Кіріспе
NX биті (no execute) – деректерді немесе процессор нұсқауларын сақтау үшін, процессорларда қолданылатын, виртуалды адрестік кеңістіктің бөліктерін бөлу технологиясы. NX битін қолдайтын операциялық жүйе, адрестік кеңістіктің белгілі бір бөліктерін орындалмайтын деп белгілеуі мүмкін. Процессор, адрестік кеңістіктің осы бөліктерінде орналасқан кез келген кодты орындаудан бас тартады. Орындалатын кеңістікті қорғау деп аталатын, сондай-ақ Write XOR Execute деп те аталатын бұл жалпы техника, зиянды бағдарламалардың кейбір түрлерінің, басқа бағдарламаның дерек сақтау аймағына өз кодын енгізу арқылы компьютерлерді басып алуына жол бермеу үшін қолданылады және осы бөлімнен өз кодын іске қосады; мұндай шабуылдардың бір түрі – буфер асығу шабуылы. NX биті термині Advanced Micro Devices (AMD) компаниясынан маркетингтік термин ретінде шыққан. Intel бұл мүмкіндікті XD биті (орындауды өшіру) деп сатады. MIPS архитектурасы бұл мүмкіндікті XI биті (орындауды тоқтату) деп атайды. ARM архитектурасы, ARMv6 нұсқасында енгізілген бұл мүмкіндікті XN (ешқашан орындалмау) деп атайды. NX биті термині кейде басқа процессорлардағы ұқсас технологияларды сипаттау үшін де қолданылады.
The NX bit (no execute) is a technology used in CPUs to segregate areas of a virtual address space to store either data or processor instructions. An operating system with support for the NX bit may mark certain areas of an address space as non executable. The processor will then refuse to execute any code residing in these areas of the address space. The general technique, known as executable space protection, also called Write XOR Execute, is used to prevent certain types of malicious software from taking over computers by inserting their code into another program's data storage area and running their own code from within this section; one class of such attacks is known as the buffer overflow attack. The term NX bit originated with Advanced Micro Devices (AMD), as a marketing term. Intel markets the feature as the XD bit (execute disable). The MIPS architecture refers to the feature as XI bit (execute inhibit). The ARM architecture refers to the feature, which was introduced in ARMv6, as XN (execute never). The term NX bit itself is sometimes used to describe similar technologies in other processors.
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 процессорлары нұсқауларды орындауды қорғау мүмкіндігін қолдауы мүмкін, ол беттік кесте жазбаларына бит қосып, белгілі бір аймақтан, сегменттен немесе беттен нұсқауларды орындау бақыланады.