BSDCon '03 Abstract
Pp. 91-102 of the Proceedings
Running BSD Kernels as User Processes by Partial Emulation and Rewriting of Machine Instructions
Hideki Eiraku and Yasushi Shinjo, University of Tsukuba
A user-level operating system (OS) can be implemented as a regular user process on top of another host operating system.
Conventional user-level OSes, such as User Mode Linux, view the underlying host operating system as a specific hardware architecture.
Therefore, the implementation of a user-level OS often requires porting of an existing kernel to a new hardware architecture.
This paper proposes a new implementation method of user-level OSes by using partial emulation of hardware and static rewriting of machine instructions.
In this method, privileged instructions and their related non-privileged instructions in a native operating system are statically translated into subroutine calls that perform emulation.
The translated instructions of the user-level OS are executed by both the real CPU and the partial emulator.
This method does not require detailed knowledge about kernel internals.
By using the proposed method, NetBSD and FreeBSD are executed as user processes on NetBSD and Linux.
- View the full text of this paper in HTML and
The Proceedings are published as a collective work, © 2003 by the USENIX Association. All Rights Reserved. Rights to individual papers remain with the author or the author's employer. Permission is granted for the noncommercial reproduction of the complete work for educational or research purposes. USENIX acknowledges all trademarks within this paper.
- If you need the latest Adobe Acrobat Reader, you can download it from Adobe's site.