Эзотерический поискФорумСобрание заблуждений

x86-OS

#0
2:20, 19 апр 2012
Идеология операционной среды
============================
В среде каждому приложению дано до 8192 сегментов под 4Гб пространства каждый.
Во всех сегментах все 1048576 страниц адресуют нижние 4Кб под сегментом стека.
Все сегменты имеют несколько уровней селекторов для управления их контекстами.
Ввод имени ресурса в контекст сегмента переключает страницы на этот интерфейс.
Всего каждому приложению средой разворачивается пространство размером до 32Гб.
В среде каждому приложению дано до 4294967296 виртуальных портов ввода-вывода.
Из этого общего числа страницы по 4096 портов обслуживаются своими процессами.
Все операции с портами прерывают данный процесс переключением в обслуживающий.
Тому процессу средой открывается часть страниц памяти из процесса-провокатора.
Среда интерпретирует регистры и флаги, симулируя взаимодействие с устройством.

Пример работы:
1. Текущий процесс вызвал исключение операцией REP OUTSB;
1.1. Обработка ядром. Тормозим процесс;
1.2. Префикс "REP": Читаем регистр ECX контекста процесса;
1.3. Команда "OUTSB": Читаем регистры EDX и ESI контекста процесса;
1.4. Иницируем специальный сегмент относительно ESI и размером ECX байт;
1.5. Ищем задачу, обслуживающую порты с EDX-индексом;
1.6. Вносим в её стек событий параметры: Задача(Сегмент,Размер,КодДоступа);
1.7. Ставим тот процесс в ожидание до обработки события этой задачей;
1.8. В контексте процесса правим значения ESI и ECX, симулируя итог команды;
1.9. Возобновляем работу процесса. REP OUTSB как бы выполнились.

┌──────────────╖        ┌──────────────╖
│Process "A001"║        │Process "A002"║
│╔════════════╕║        │╔════════════╕║
│║RAM 8192x4Gb│║        │║RAM 8192x4Gb│║
│╙────────────┘║        │╙────────────┘║
│              ║        │              ║
│              ║        │              ║
╘══════════════╝        ╘══════════════╝
    /\     /\               /\
    ││/    ││               ││/
    │/     ││/              │/
    /│     │/               /│
   /││     /│              /││
    \/    /│|         /     \/
─────────────────────/────────────────────
                    /                      
                   /                      
──────────────────/───────────────────────
                 /
+ Показать
#1
23:37, 21 апр 2012

Без прогресса?

Эзотерический поискФорумСобрание заблуждений

Тема в архиве.