Разлика между версии на „Защитен режим“

86 байта изтрити ,  преди 4 месеца
м
редакция без резюме
м (излишен празен ред)
м
'''Защитен режим''' ({{lang|en|protected mode}}) е режим на работа на [[Централен процесор|компютърните процесори]] в архитектурата [[x86]]. При защитения режим, максималната адресирана памет е 4 GB (2<sup>32</sup> байта), има 'странициране' и 'сегментиране' на паметта, както и апаратна защита на достъпа до паметта и входно-изходното пространство. Почти всички съвременни операционни системи за x86 процесори работят изключително в защитен режим (и неговия наследник - – [[long mode]], въведен с разширенията [[x86-64]]).
 
== История ==
 
=== Методи за адресиране ===
При защитения режим физическият адрес се формира по по-сложен начин в сравнение с [[RealРеален mode#.D0.9C.D0.B5.D1.82.D0.BE.D0.B4.D0.B8 .D0.B7.D0.B0 .D0.B0.D0.B4.D1.80.D0.B5.D1.81.D0.B8.D1.80.D0.B0.D0.BD.D0.B5режим|реалния режим]]. От самата инструкция се определя т.нар. ''ефективен адрес'', който се преобразува в ''линеен адрес'' чрез механизма за [[сегментиране на паметта]]. Ако не е включен механизма за [[странициране на паметта]], то линейният адрес съвпада с физическия, но ако механизмът за странициране е включен, той преобразува линейния адрес в съответния ''физически адрес''.
 
==== Формиране на адресите ====
В съвременните операционни системи за управление на паметта се използва предимно страницирането, а сегментирането почти не се използва (обикновено всички сегменти са с максимален размер и начален адрес 0, което на практика ги обезсмисля). Това се налага поради факта, че при писането на приложни и системни програми сегментирането създава много главоболия и проблеми, а страницирането е напълно невидимо за потребителските програми.
 
Защитата на паметта от гледна точка на страницирането е доста "орязана"„орязана“: в описанието на страницата има само 2 еднобитови флага, които осигуряват следните нива на достъп: забранен всякакъв достъп, разрешено четене и разрешено четене и запис. В по-съвременните x86 процесори (произведени след 2003 г.) е въведен т. нар. [[NX бит]], който показва дали е разрешено изпълнението на програмен код в съответната страница. Това повишава сигурността на операционната система, предотвратявайки една от най-често използваните хакерски атаки – препълването на буфер.
 
=== Входно-изходно адресно пространство ===
* '''CLI''', '''STI''' (прави се само първата проверка)
 
Както се вижда, освен достъпа до входно-изходното адресно пространство, се ограничава и способността на програмата да маскира прекъсванията, за да не може да "завземе"„завземе“ процесорното време, игнорирайки прекъсванията от часовника.
 
Както полето IOPL, така и таблицата за защита на входно-изходното пространство са специфични за всеки процес, която позволява на операционната система да управлява достъпа до входно-изходното пространство изключително гъвкаво.