|
|
|
|
|
для: jaber-X
(16.05.2007 в 16:51)
| | >Тогда напиши мне его до завтра. я не могу, но мне надо. напиши!
Так вы ответа не добьётесь - тема широкая - дробите вопросы на более короткие - спрашивайте небольшими и конкретными кусками - чем меньше по объёму вопрос, тем больше вероятность получить ответ.
Люди, как правило, не могут тратить на ответ больше 20 минут - если деньги ещё можно заработать, то время не повернёшь вспять. Никто не будет ценить ваше время больше своего. Даже на форуме отвечают не вам конкретно, а сразу десятку или сотне человек, которые потом найдут информацию через поисковые системы. | |
|
|
|
|
|
|
|
для: mefestofel
(16.05.2007 в 15:56)
| | Тогда напиши мне его до завтра. я не могу, но мне надо. напиши! | |
|
|
|
|
|
|
|
для: jaber-X
(16.05.2007 в 15:34)
| | Приложить голову и написать... - шутка
если Вы рекшили написать ОС не имея знаний в этой области то пока вы не изучите соответствующий материал - никак (ответ на вопрос "Как это реализовать?" ).
То что я Вам написал - это тезисно, как Вы и просили, для того чтобы реализовать ядро ОС, Вам необходимы знания в области устройства ЭВМ, особенности 32-разрядных процессоров (как минимум), обработки аппаратных прерываний в защищенном режиме, работы с расширенной памятью, и т.д. и т.п. Надо знать ассемблер на приличном уровне...
Вам sim5 уже писал и давал ссылку... Надо прочитать много литературы по данной проблемной области. | |
|
|
|
|
|
|
|
для: mefestofel
(16.05.2007 в 15:21)
| | А как это все реализовать? | |
|
|
|
|
|
|
|
для: jaber-X
(16.05.2007 в 14:41)
| | >... vov4ik Спасибо за совет - без Вас разберемся
Думаю не стоить хамить, форум для того и нужен чтобы все разбирались и высказывали свое мнение...
>А как реализовать межуровневую передачу управления?
При построении многоуровневой системы особую сложность представляет организация передачи управления с уровня на уровень. Обычно в кольце 0 располагаются программы операционной системы, управляющие вычислительным процессом, в кольце 3 - размещаются прикладные программы. В этом случае сначала начинает работать управляющая программа, которая готовит операционную среду зщищенного режима для себя и прикладных программ, после чего переводит процессор в защищенный режим. Затем управление передается прикладной программе, которая часть работы может выполнять самостоятельно, однако должна иметь возможность обратиться к операционной системе для вызова определенных функций, например вывод на экран. вспомните архитектуру WindowsXP. | |
|
|
|
|
|
|
|
для: vov4ik
(16.05.2007 в 13:41)
| | mefestofel - спасибо!
А как реализовать межуровневую передачу управления?
[поправлено модератором] | |
|
|
|
|
|
|
|
для: mefestofel
(16.05.2007 в 12:40)
| | Здесь jaberx'y следовало бы поблагодарить за ответ... | |
|
|
|
|
|
|
| Уровни привилегий в операционной системе - ответ на вопрос jaber-X
Если как Вы и просили "тезисно", чтобы было понятно:
Выделение для каждой задачи отдельного локального адресного пространства (с помощью таблицы дескрипторов), позволяет надежно защищать задачи друг от друга.Поскольку в процессоре имется тольк оодин регристр LTDR, то в каждый иоиент доступна только одна таблица локальных дескрипторов. Поэтому каждая задача работает только со своими сегментами., не имея доступа к сегментам других задач. С другой стороны сегменты описанные в GDT, доступны всем задачам, которые могут как обращаться к глобальным полям данных, так и вызывать подпрограммы, входящие в глобальные сегменты команд.Концкпция дескрипторов позволяет выделять каждой задаче любые ресурсы памяти, надежно защищенные на аппаратном уровне от перекрытия с другимичами!
Учитывая важность защиты системных ресурсов в многозадачном режиме, в процессорах Intel(!) предусмотрены механизмы защиты, к которым как Вы уже поняли и относится система уровня привилегий, наряду с другими системамаи защиты.
Каждому сегменту программы придается опредленный уровень привилегий, указываемый в поле DPL(Descriptor Privilege Level). Уровни привилегий указываются во всех дескрипторах - памяти, системных и шлюзах... Так, если сегменту команд назначен уровень 3, то все процедуры этого сегмента имеют и уровень защиты - 3
Всего процессор различает 4 уровня привилегий. 0- максимальные привилегии, 3 - минимальные, в ряду Windows NT, используются уровни 0 и 3, в Unix'ах все кровни используются 0, 1, 2, 3... Уровень максимальных привилегий-0 ассоциирован с ядром ОС.
Тезисно, как Вы и просили, правила защиты:
- данные из сегмента с некоторым уровнем привилегий могут быть получены только программой того же уровня или более внуреннего уровня, т.е ближе к нулевому уровню
- процедура из сегмента с некоторым уровнем привилегий может быть вызвана только программой того же или более внешнего уровня, причем такой вызов должен осуществляться не непосредственно, а через шлюз вызова.
- каждый уровень привилегий имеет свой стек
- все команды, воздейсвующие на механизмы сегментации защиты (lgdt, lldt, ltr и др.), являются привилигированными и могут использоваться в только на уровне- 0. Это исключает вмешательство в оргагизацию "программного комплекса со стороны прикладных программ" | |
|
|
|
|