> man operating_systems
Переход на страницу  [1] 2
Модераторы: Roman I Khimov, Wanderer, Dron
Автор Добавил
Laco
Понедельник 26.07.2004 04:30
ID пользователя #30
Зарегистрирован: Понедельник 26.07.2004 03:49
Сообщений: 5
Согласно спецификации AMD на 64-битный процессор, в защищённом режиме отсутствует проверка на выход за границы сегмента, т.е. любой сегмент имеет размер все 64 бит. Если учесть тот факт, что почти все современные ОС работают всего в двух кольцах СPL R0 и R3, то защита на основе "железа" процессора превращается в фикцию. Страничная (paging) защита имеет всего два уровня привилегий - user/supervisor, доступ к странице тоже два уровня - read/write. Таким образом код, имеющий привилегии супервизора (читай R0), имеет возможность творить все что угодно в системе. Выход из создавшейся ситуации остается один - выносить код, требующий защиты, в другой процесс. Механизм виртуальной памяти, казалось бы, защищает адресное пространство процесса, если бы не одно но. Код с привилегиями супервизора получает доступ, в том числе, и к GDT/PDE/PTE. Остается найти требуемую информацию в оперативной памяти, что не очень сложная задача для операционных систем с открытым кодом. Все что необходимо - написать драйвер ядра.
Наверх
Dron
Четверг 19.08.2004 11:46


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Ну защита на уровне сегментов уже давно превратилась в фикцию... что Windows, что Linux предпочитают использовать FLAT. хотя сегментная защита это конечно сила... я думал на эту тему в своем ядре, в результате остановился на частичном FLAT. то есть сегмент приложения занимает большую часть памяти и является как бы линейным для приложения. но к ядру приложение обратиться не может даже на чтение... не дано...

в виндузе системная часть в принципе для приложения открыта... да и в линуксе...

но че-то мне кажется сомнительным что они всю сегментную защиту похерили... получается сегменты - это пережиток прошлого чтоль? ориентация 100% на линейную память? ну в принципе многие архитектуры живут без сегментов и ничего...

страничная организация в принципе обеспечивает достаточный уровень защиты... хотя мне сегменты нравятся.

Одну из двух вечных российских проблем можно, в принципе, решить с помощью асфальтоукладчиков и катков. А вот с дорогами, конечно, будет труднее...

Андрей Валяев
Наверх
Сайт
CodeWorld
Пятница 20.08.2004 16:35
ID пользователя #28
Зарегистрирован: Вторник 20.07.2004 08:00
Сообщений: 3
а как со стэками в лонг моде? как поределить стэк для 0 кольца и 3ого?!

Жить чтобы победить!
Наверх
Dron
Пятница 20.08.2004 17:47


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
вообще странно мне это, я и говорю...
про стек ты правильно вспомнил...
<span class='smallblacktext'>[ Редактирование пятница 20.08.2004 17:53 ]</span>

Одну из двух вечных российских проблем можно, в принципе, решить с помощью асфальтоукладчиков и катков. А вот с дорогами, конечно, будет труднее...

Андрей Валяев
Наверх
Сайт
CodeWorld
Пятница 20.08.2004 18:46
ID пользователя #28
Зарегистрирован: Вторник 20.07.2004 08:00
Сообщений: 3
а ответ где? =) че какаята новая структура вводиться, где стэки задаются или где?

Жить чтобы победить!
Наверх
Laco
Воскресенье 22.08.2004 01:44
ID пользователя #30
Зарегистрирован: Понедельник 26.07.2004 03:49
Сообщений: 5
Dron написал(а) ...
ориентация 100% на линейную память? ну в принципе многие архитектуры живут без сегментов и ничего...

Именно такое положение дел и способствует неконтролируемому распространению вирусов. Остается ориентироваться на разделение памяти на уровне процессов. Только приходится кардинально переделывать не только ядро, но и всю архитектуру ОС: микрокернел (CPL 0) - процесс, HAL и драйверы устройств (CPL 1) - процесс(ы), система (CPL 2) - тоже процесс(ы). Сервисы необходимо выносить в процессы. Получается, возвращаемся к старому UNIX, когда потоков (threads) не существовало. Только переключение задач даже для современных процессоров требует заметного количества тактов. Для обеспечения приемлемого уровня защиты с использованием "железа" приходится разносить компоненты в разные процессы, как описано выше. Но тогда затраты на коммуникации между процессами сьедают до половины времени процессора. Многовато получается...

Только страничная защита абсолютно не приемлема из за малого количества уровней. Достаточно попасть на уровень супервизора - и можно творить все что угодно.

Остается возврат к DOC, и.е. системный вызов через прерывание
Наверх
coff
Пятница 08.07.2005 14:10
ID пользователя #367
Зарегистрирован: Пятница 08.07.2005 13:50
Сообщений: 2
Да, сегментная защита, правильно примененная, это сила. Жаль, что ее считают пережитком прошлого. Да, остается только вызов через прерывание, так как ситуация в Windows с разделением памяти на user и system в процессе нам не подходит.
Наверх
coff
Пятница 08.07.2005 14:11
ID пользователя #367
Зарегистрирован: Пятница 08.07.2005 13:50
Сообщений: 2
Примитивизация системы не всегда есть гуд... (особенно если она нормально работает).
<span class='smallblacktext'>[ Редактирование пятница 08.07.2005 14:13 ]</span>
Наверх
Roman I Khimov
Пятница 08.07.2005 15:47

ID пользователя #1
Зарегистрирован: Воскресенье 27.06.2004 12:37
Местонахождение: Санкт-Петербург
Сообщений: 601
AMD здесь просто пошла по пути наименьшего сопротивления и ее сложно в этом винить - никто, по сути, не использует сегменты, а расширять все эти регистры, усложнять механизмы преобразований... В общем, выкинули да и ладно. Не прижилось. Зато NX бит сделали. Вот это востребовано.

А что касается того, что это дает коду из нулевого кольца творить всякое (изначальный постинг из этого и состоит) - так это и сейчас точно так же, ничего не меняется.


Греби и улыбайся!
Наверх
Сайт
robot12
Понедельник 24.10.2005 21:50
ID пользователя #473
Зарегистрирован: Понедельник 24.10.2005 21:18
Местонахождение: Syzran
Сообщений: 4
http://plan9.bell-labs.com/sys/doc/auth.ps читаем. интересно, а главное работает. и всё таки не велосипед.
Наверх
Сайт
Переход на страницу  [1] 2  

Перейти:     Наверх

Транслировать сообщения этой темы: rss 0.92 Транслировать сообщения этой темы: rss 2.0 Транслировать сообщения этой темы: RDF
Powered by e107 Forum System

© OSRC.info, 2004-2010.
Авторские права на любые материалы, авторы которых явно указаны, принадлежат их авторам. По вопросам публикации таких материалов обращайтесь к авторам.
Авторские права на любые другие материалы принадлежат OSRC.info.
Сайт является помещением библиотеки. Копирование, сохранение на жестком диске или иной способ сохранения произведений осуществляются пользователями на свой риск.
При использовании материалов сайта ссылка на OSRC.info обязательна.