Объясните плз в чем его смысл? Даже скорее, когда мы должны использовать его вместо call gate. Ведь исполняться он будет в случае jmp из ring3 кода тоже в ring3. Тогда какой смысл нам вешать у него DPL <3 и C=1 не проще сразу DPL 3, ведь мы все равно не сможем в нем применять r0 команды тк он будет радостно вылетать при переходе из r3. Есть конечно мега креативный вариант - проверять в коде cs на CPL и дальше уже выбирать, но нафига столько проблем, если можно просто на 2 сегмента разнести, если уж так хочется разделить функционал r0 и r3
а если у нас есть код, который должен быть доступен с любого уровня привелегий, т. е и в режиме ядра, и в пользовательском режиме. Разве переход R0 -> R3 посредством обычного jmp/сall возможен?
rei3er Он не возможен даже через шлюз вызова -- шлюз вызова может лишь повышать привилегии, но не понижать их. ORANGIX Дополню rei3erа -- подчиненные сегменты нужны для того, чтобы сделать общим какой-либо кусок кода (например, библиотеку для работы со строками) но при этом избежать шлюза вызова, т.к. переход через последний выполняется довольно медленно.