|
In-kernel memory-mapped I/O device emulation
[Эмуляция ввода-вывода оборудования с отображением в ОЗУ внутри ядер операционных систем]
V. Yu. Cheptsovab, A. V. Khoroshilovcdab a Ivannikov Institute for System Programming of RAS
b Higher School of Economics
c Lomonosov Moscow State University
d Moscow Institute of Physics and Technology
Аннотация:
Необходимость эмуляции оборудования часто возникает на различных стадиях цикла разработки, миграции оборудования или обратной разработки. Реализация алгоритмов, связанных с конкретным устройством, сама по себе является нетривиальной задачей, но интеграция эмулятора с существующей средой, например, драйверами, предназначенными для работы с реальным оборудованием, зачастую оказывается не менее сложной. Устройства, полагающиеся на ввод-вывод с отображением в оперативную память, представляют особый интерес, так как в этих случаях, в отличие от использования портов ввода-вывода, гораздо меньше вероятность, что целевая платформа предоставит интерфейс для перехвата операций. Один из распространённых подходов, широко используемый в ПО виртуальных машин, состоит в том, чтобы поместить всю операционную систему под гипервизор и создать внешний эмулятор. Однако это может быть нежелательно по причинам сложности гипервизора, потери производительности, дополнительных требований к аппаратному обеспечению и пр. В данной статье такой подход распространяется на ядро, и предлагается описание возможности построить эмулятор, прибегая лишь к существующим интерфейсам, предоставляемым операционной системой. Ввиду частой доступности MMU и механизмов защиты страниц, позволяющих перехватывать доступ записи и чтения, предполагается, что предлагаемый подход может быть использован на значительном количестве целевых платформ. В статье приводится подробное рассмотрение проблем, возникающих при написании конкретной реализации, и приводятся способы её упрощения и оптимизации в зависимости от возможностей целевой платформы, эмулируемого протокола и иных требований к задаче. В качестве экспериментального доказательства работоспособности предлагаемого подхода приводится реализация эмулятора SMC для платформы x86.
Ключевые слова:
эмуляция оборудования, ввод-вывод с отображением в ОЗУ, модули ядра.
Образец цитирования:
V. Yu. Cheptsov, A. V. Khoroshilov, “In-kernel memory-mapped I/O device emulation”, Труды ИСП РАН, 30:3 (2018), 121–134
Образцы ссылок на эту страницу:
https://www.mathnet.ru/rus/tisp329 https://www.mathnet.ru/rus/tisp/v30/i3/p121
|
Статистика просмотров: |
Страница аннотации: | 173 | PDF полного текста: | 302 | Список литературы: | 14 |
|