русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Техническая реализация


Дата добавления: 2014-11-27; просмотров: 887; Нарушение авторских прав


 

Пока все звучит как сказка, но «мы рождены чтоб сказку сделать былью», и как оказалось, придумать все же проще чем реализовать, я наивный, в этом уже убедился.

Первоначально была идея сделать задуманное используя только технологические особенности процессорных ядер, контроллера памяти и системной шины, этот метод изоляции можно увидеть в тестовых примерах которые я выкладывал в статье «Искусство программирования». Но от идеи пришлось отказаться из-за серьезных проблем с моделезависимостию, коробочное решение, которое должно работать везде и всегда, на этих принципах не построить.

 

Поэтому, отложив в сторону уже рабочие коды, все начали с нуля. Пришлось перейти на использование аппаратуры виртуализации, благо она к настоящему времени пережила «детские болезни левизны», т.е. стала надежно и гарантированно работать, а не сваливаться «в никуда» по необъяснимым (по крайней мере для меня) причинам.

Главная проблема использования аппаратуры виртуализации это написание двух абсолютно разных гипервизоров, для Intel и AMD соответственно, это очень большой и сложный объем работы который пришлось проделать что называется «с нуля».

Тяжелым, но вынужденным решением стал отказ от поддержки начальных ревизий систем виртуализации для Intel. Пришлось в целях надежности и функциональности ограничится поддержкой начиная с версий 13, а это значит, что без поддержки технологии EPT (расширенное страничное преобразование) в процессорах Intel доверенная среда работать не будет.

У процессоров AMD проблем с ранними версиями аппаратуры виртуализации нет, все их ревизии работают с ДВС, вообще мне их система виртуализации нравится больше (и не мне одному).

 

В результате родилась комбинированная технология, когда процессорное ядро для монопольного использования в доверенной среде изолировалось стандартным образом, одинаковым для процессоров AMD и Intel а все защитные и контрольные функции ДВС были реализованы с использованием аппаратуры виртуализации, задействованной на остальных ядрах функционирующих под управлением ОС.



 

Сначала о процессорном ядре используемом в Доверенной среде, это ядро всегда с последним номером, оно может быть логическим (при включенном Гипертрейдинге) но всегда забирается в первозданном, незапятнанном работой с разными непроверенными программами состоянии, его только проинициализировал БИОС, а после этого оно сразу попадает в ДВС и там оно остается до выключения питания.

Этим гарантируется надежность и предсказуемость поведения этого ядра в ДВС, его состояние не модифицировано сторонними программами, а если его кто и «попортил» то только БИОС, и соответственно все вопросы уже к его авторам, а если оно проходило проверку на НДВ, то к экспертам и методикам этих проверок.

Кто-то может сказать что «попортить» процессорное ядро невозможно,- не слушайте его, он просто некомпетентен, в качестве простейшего примера можно вспомнить механизм активации отечественных модулей доверенной загрузки.

 

Теперь об аппаратуре виртуализации включенной на остальных процессорных ядрах. Обычно программу, использующую аппаратуру виртуализации называют «Гипервизор», но это большие программные комплексы с мегабайтами кода, в нашем случае задача попроще и кода то всего-ничего, - не более 10кбайт. Так что Гипервизором назвать это «творение» язык не поворачивается, это не Гипервизор, это «ГиперДрайвер», так и будем его далее называть.

Гипердрайвер на процессорных ядрах используемых ОС и прикладными программами предназначен только для двух задач, во первых, он должен обеспечить дополнительную защиту процессорного ядра и памяти доверенной среды, а во-вторых, он должен «выкусывать» аппаратуру необходимых контроллеров ввода\вывода для сеансов доверенного обмена информацией.

Вот пример того, как он работает:

 

 

Скриншот участка ОП для обычного режима работы ОС, Доверенная Вычислительная Среда не активирована и в этом месте памяти размещены таблицы ОС.

А вот скриншот того же участка ОП, но с включеной ДВС:

 

 

В этой области памяти включена защита от доступа/модификации и ничего не видно, хотя по этим адресам реально находятся системные таблицы процессорного ядра доверенной среды.

Но можно отключить защиту и тогда в этих адресах ОП увидим фактически расположенную там корневую запись системной таблицы (PG) ДС:

 

 

Соответственно сейчас ДС будет доступна для модификации и просмотра, но это только в отладочном режиме, естественно.

 

 



<== предыдущая лекция | следующая лекция ==>
Жизненный цикл Доверенной Вычислительной Среды. | Ограничения применения.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.097 сек.