Proceedings of the Institute for System Programming of the RAS
RUS  ENG    JOURNALS   PEOPLE   ORGANISATIONS   CONFERENCES   SEMINARS   VIDEO LIBRARY   PACKAGE AMSBIB  
General information
Latest issue
Archive

Search papers
Search references

RSS
Latest issue
Current issues
Archive issues
What is RSS



Proceedings of ISP RAS:
Year:
Volume:
Issue:
Page:
Find






Personal entry:
Login:
Password:
Save password
Enter
Forgotten password?
Register


Proceedings of the Institute for System Programming of the RAS, 2018, Volume 30, Issue 3, Pages 121–134
DOI: https://doi.org/10.15514/ISPRAS-2018-30(3)-9
(Mi tisp329)
 

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
References:
Abstract: Device emulation is a common necessity that arises at various steps of the development cycle, hardware migration, or reverse-engineering. While implementing the algorithms behind the device may be a nontrivial task by itself, connecting the emulator to an existing environment, such as drivers intended to work with the actual hardware, may be no less complex. Devices relying on memory-mapped input/output are of a particular interest, because unlike port-mapped input/output there is much less of a chance that the target platform provides a direct interface to intercept the transmissions. A well-known approach used in various virtual machine software is to put the entire operating system under a hypervisor and build the emulator externally. This may not be desirable for reasons like hypervisor complexity, performance loss, and additional requirements for the host hardware. In this paper we extend this approach to the kernel and explain how it may be possible to build the emulator by relying on the existing interfaces provided by an operating system. Given the common availability of an MMU unit as well as memory protection mechanisms, allowing the handling of page or segment traps at read or write access, we presume that a suggested technique of intercepting memory-mapped input/output could be implemented in a broad number of target platforms. To illustrate the specifics and show potential issues we provide the ways to simplify the implementation and optimize it in speed depending on the target capabilities, the protocol emulated, and the project requirements. As a working proof we created a SMC emulator for an x86 target, which makes use of this approach.
Keywords: device emulation, memory-mapped i/o, kernel modules.
Bibliographic databases:
Document Type: Article
Language: English
Citation: V. Yu. Cheptsov, A. V. Khoroshilov, “In-kernel memory-mapped I/O device emulation”, Proceedings of ISP RAS, 30:3 (2018), 121–134
Citation in format AMSBIB
\Bibitem{CheKho18}
\by V.~Yu.~Cheptsov, A.~V.~Khoroshilov
\paper In-kernel memory-mapped I/O device emulation
\jour Proceedings of ISP RAS
\yr 2018
\vol 30
\issue 3
\pages 121--134
\mathnet{http://mi.mathnet.ru/tisp329}
\crossref{https://doi.org/10.15514/ISPRAS-2018-30(3)-9}
\elib{https://elibrary.ru/item.asp?id=35192498}
Linking options:
  • https://www.mathnet.ru/eng/tisp329
  • https://www.mathnet.ru/eng/tisp/v30/i3/p121
  • Citing articles in Google Scholar: Russian citations, English citations
    Related articles in Google Scholar: Russian articles, English articles
    Proceedings of the Institute for System Programming of the RAS
    Statistics & downloads:
    Abstract page:173
    Full-text PDF :302
    References:13
     
      Contact us:
     Terms of Use  Registration to the website  Logotypes © Steklov Mathematical Institute RAS, 2024