Какая из этого практическая польза?

2 июля 2015 г., 13:41 пользователь Alexander V Soroka <alex@euro.net.ua> написал:
Привет !

К писателям под Линукс и Админам вопрос.

Вот ниже три куска из одной переписки.

Хочется комментариев от "практических специалистов".

кусок 1...............
...
Есть такая таблица- GDT - которая и распределяет все привелегии.
Линуховоды считают что она дана богом. Как есть.
А обычные системщики знают, что эта таблица создается необычной для линуха програмкой.
Необычной в том смысле, что она на ассемблере. И создается она когда нет
никаких пользоваттелей и рутов. Сам процессор ее и создает.
Если внимательно почитать тот код с wasm.ru то там как раз и показано,
что проц может создать сам себе таблицу GDT, назначить себе права и делать все что угодно.
Только после этого можно лезть читать секторы и биосы.
Непонимание этого момента приводит вот к таким результатам.
................................

Кусок 2....................
...
Как  известно в процессоре каждый сегментный регистр имеет скрытые или
теневые  (shadow parts) части в которых в защищенном режиме кэшируется
дескриптор  сегмента,  для  программиста  они  невидимы.  В защищенном
режиме  эти  части  обновляются  всякий раз когда в сегментный регистр
загружается  новое  значение,  в реальном же режиме обновляются только
поля  базового  адреса  сегмента.  Если  в  защищенном  режиме создать
сегмент  с  лимитом  в  4Гб  и  загрузить  в  сегментный регистр такой
селектор,  после  чего  переключиться  в  реальный режим, и, не следуя
рекомендациям  интел,  оставить  предел  равным  4Гб – значение лимита
сегмента сохранится позволяя использовать 32-битные смещения.

Алгоритм перехода в нереальный режим:

Создать дескриптор с базой равной 0
Установить предел сегмента в 4Гб
Переключиться в защищенный режим
Загрузить селектор сегмента в какой-либо сегментный регистр
Переключиться в реальный режим
После этих действий можно в реальном режиме использовать конструкции типа:

мov ax,word ptr fs:[edx
...........................................

Кусок 3.................
...
Когда ядро запускает процесс, оно контролирует его полностью.
Шаг влево-шаг вправо- побег , расстрел на меcте.
Поэтому делают по другому. Этот процесс должен породить дочерний-
его система уже не контролирует, только знает о нем и контролировать его должен родитель.
А дочерний процесс порождает внучатый- про него уже и система не знает ничего.
После этого дочерний должен убить папу, убиться сам, и остается внучок- демон, про который система не знает и не контролирует-
вот он уже может делать что хочет.
Даже весь линух можно прибить, а он останется в памяти работать. пока питание есть.
..................




--
Best regards,
Alexander V Soroka       http://www.svr.ua/
AS106-RIPE
mailto:alex@euro.net.ua