Курю ИнтелБук по теме сабжа. Все вроде ясно, кроме того, зачем при возврате по SYSEXIT сегмент возврата принудительно переводится во FLAT (0-4Гб). Ведь он после этого ритуального действа сможет завалить всю систему в теории? P.S. Да и зачем разрешать установку произвольного EIP для входа в r0 ведь это практически то же самое, что разрешить jmp в неподчиненный сегмент с DPL<CPL. С этим же боролись как раз раньше Или теперь скорость и остальное параллельно? Всем пасиба
"SYSENTER модифицирует дескрипторы используемых сегментов - сегмент кода будет иметь DPL=0, базу 0, лимит 4гб, тсанет доступным для чтения и 32битным,сегмент стека ...(аналогично сегмент стека только доступен на запись)... Кроме того, селекторы CS и SS получают RPL=0.... SYSEXIT... предназначена для передачи управления в бессегментную модель памяти с CPL=3 и она также модифицирует дескрипторы. Сегмент кода получает DPL=3,базу 0, лимит 4 Гб, доступ для чтения, перестает быть подчиненным, становится 32битным...(аналогично сегмент стека только доступен на запись)... Кроме того, селекторы CS и SS получают RPL=3"
ага, все я докатил до этого пасиба тока всеж я никак не осознаю зачем нам бессегментная модель при возврате? Зачем тогда вообще делить пространство процессов на сегменты, если после первого сист вызова дескриптор становится flat? В мануале Интела есть точно, только не объясняется зачем это сделано
честно говоря я тоже не совсем понимаю, зачем при вызове sysenter/sysexit изменять значения дескрипторов разве что только для того, чтобы избежать проверки прав при переходе, за счет чего, видимо, ускоряется переход в ring0 и в ring3
rei3er ну я теоретически понимаю зачем это делать при переходе из r3 в r0 - ведь у на жестко задан селектор + EIP те мы попадаем в нашу процедуру точно, а она по определению не должна ничего портить. Но опять же зачем базу и лимит менять. P.S. Кстати я тут подумал вдруг Вообщем мне сейчас не на чем проверить...но, мы EIP то задаем относительно базы сегмента? Или сразу линейный? У нас ведь база дескиптора ставится в 0 ДО перехода. Если так, то становится очевидно зачем все эти танцы с бубном