Previous Entry Share Next Entry
Применение программных эмуляторов процессоров семейства Intel x86
svoinov

С. Б. Воинов

Научный руководитель: проф. С. М. Авдошин

«МАТИ» - Российский Государственный Технологический Университет

им. К. Э. Циолковского, 121552, Москва, Оршанская 3, e-mail: shackmaster@mail.ru

 

            С ростом вычислительной мощности современных компьютеров возникает задача построения специального рода программного обеспечения, предназначенного для эмуляции работы каких-либо аппаратных средств. Эмуляция работы аппаратных средств позволяет выполнять функции отсутствующего у пользователя устройства, причём эти функции выполняются программно, а не аппаратно. Не смотря на то, что можно эмулировать многие функции, поддерживаемые аппаратно, программная эмуляция требует значительной вычислительной мощности процессора и, как правило, уступает по скорости выполнения функций эмулируемому устройству. С одной стороны, программная эмуляция может использоваться для поддержки аппаратно реализуемых функций устройства, совместимого с той аппаратной платформой, для которой написан эмулятор. Примером этому может служить программная эмуляция функций 3D-ускорителей в API Direct3D. С другой стороны, иногда возникает необходимость выполнения на одной аппаратной платформе функций другой аппаратной платформы, несовместимой с первой. Примером может являться эмулятор процессора PowerPC, написанный для семейства процессоров Intel x86.

            Широко распространены программные эмуляторы различных игровых платформ, например Sega, Nintendo, PlayStation и т. д. Также существуют эмуляторы устаревших микрокомпьютеров, таких как ZX Spectrum, Commodore 64, Радио 86 РК и т. д. Последняя группа эмуляторов представляет, в основном, академический интерес с точки зрения изучения системы команд и аппаратных особенностей микрокомпьютеров. Однако в настоящее время отсутствуют полностью функциональные программные эмуляторы процессоров семейства Intel x86, написанные под эту же аппаратную платформу и позволяющие помимо системы команд эмулировать функции таких устройств IBM PC как контроллер прерываний, контроллер прямого доступа к памяти и других системных устройств. Использование такого рода эмуляторов представляет большой научный интерес.

            Подобные эмуляторы могли бы использоваться для следующих целей:

  • Детальное изучение системы команд процессоров семейства Intel x86 и особенностей её применения.
  • Изучение неоднозначности системы команд.
  • Знакомство с защищённым режимом работы процессора 80386 без дополнительных неудобств, связанных с необходимостью создания соответствующего программного окружения.
  • Реализация прототипов модулей программной защиты информации, защиты от дизассемблирования и отладки.
  • Снятие программных защит информации.
  • Исследования в области вирусологии без опасности повредить программно-аппаратные средства PC.
  • Изучение работы и протоколов взаимодействия аппаратных и программных средств.

В соответствии с перечисленными целями, был проведён анализ системы команд процессора 8086 и начата разработка программного эмулятора, функционирующего в среде Windows 95/98/Me/2000.



?

Log in

No account? Create an account