информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Портрет посетителяСтрашный баг в Windows
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[IA32] Подведём итоги всему нижесказанному? 14.04.04 09:17  Число просмотров: 1631
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
[moved from beginners]
1) Если хотим делать "неисполняемый стек" в OS, никуда не уйти от сегментации, т.е. сегменты кода и стека не должны пересекаться. Или использовать всякие "грязные, но в то же время изящные хаки", могущие снижать быстродействие ;-)

2) Пейджинг в IA32 начинается с загрузки регистра CR3 указателем на Page Directory и установки флага PG в CR0. Если каждый процесс хочет иметь своё уникальное виртуальное адресное пространство (как в Windows, к примеру), без перезагрузки CR3 с каждым переключением контекста не обойтись. При этом нафиг "слетает" TLB, что снижает производительность. Хотелось бы услышать мнения, насколько серьёзно.

3) Рассматривается теоретическая возможность создания OS, в которой вируальная память выделяется процессам сегментами, OS "старается уложить" наиболее активные потоки в 4GB адресное пространство (это для того, чтобы не перегружать CR3), если такое не получается, то OS создаёт дополнительную Page Directory, и перегружает CR3 тогда, когда это необходимо. Каждый процесс имеет свой набор сегментов, в GDT хранятся только наиболее часто используемые (если количество сегментов в системе превысит возможности GDT). Ваше мнение?

4) Слышал, что появившеяся в Pentium II и выше возможность использоватения 4Mb страниц в Page Directory может повысить производительность. Это каким образом? IMHO использование для подкачки страниц такого размера сделает систему более "дёрганной", поскольку прочитать\записать 4Mb на HDD может занимать от полусекунды и более времени. Ваш взгляд на это?

5) У кого-нибудь есть мечта о том, как должно быть реализовано использование совместных библиотек? Подключать нужные сегменты в LDT процесса, который "захотел" использовать библиотеку? Грузить их в некий DLLHelperProcess и использовать какой-нибудь механизм IPC для работы с ними?

7) Я до конца не разобрался, для чего нужен флаг conforming для описателя сегмента. Кто знает, расскажите, зачем он.

Всем заранее большое спасибо за мнения.
<programming> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach