Font Size: a A A

System-level X86 Emulator No Operating System On The Host's Startup And Peripheral Simulation Program

Posted on:2012-04-22Degree:MasterType:Thesis
Country:ChinaCandidate:Y ZhangFull Text:PDF
GTID:2218330335498581Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
With the rapid development of microprocessor design technology and system architecture, lots of brand new platforms have been launched these years. More and more advanced architectures with higher performance, or specially designed for specific usage, are flooding into the market every year. China also developed and promoted our own processors, such as Loongson and MPRC Unicore-2. In comparison, the development of operating systems and software cannot catch up with the hardware. The compatibility problem between these two is more and more severe gradually, becoming an obstacle to promotion and popularization of newly developed architectures.Dynamic binary translation technic can be applied to efficiently solve this compatibility problem, by enabling an abstract layer between the software and the hardware. Thus existing operating systems or applications can be launched and operate normally on these new architectures without being altered or re-complied. Dynamic binary translation has become a hot spot in both industry and research, attracting more and more companies'and developers'attention. Many well designed and fully functioned emulators based on binary translation came up and have been put into use recently.However, most of these translators run at the application level, requiring support from underlying system service. As a result, when the hardware manufactures raise a new architecture, they still need to raise available operating systems, shared libraries, and maybe applications as well. That's to say, translators operate as applications can efficiently solve the compatibility problems between platforms with different ISAs, while having limit usage to the compatibility between existing software and newly developed hardware. And this brings the requirement of developing a translator running at the system level.Several specific problems need to be solved when launching a binary translator on a platform without operating systems. Firstly, we need to integrate a bootloader into our emulator to boot it from the raw hardware. Besides, considering the differences between the emulated environment and the real underlying environment, device emulation for virtual machine and access to real peripheral devices needs to be carefully designed as well.This article bases on an implementation of a simple X86 emulating based on dynamic binary translation running at system level. We studied the bootloader technic and device emulation design, and provided easy implementation to them. This project tries to explore a preliminary research work to solve the compatibility problem between the new processors raised by China and operating systems as well as applications based on X86 architecture. Considering the complexity of the whole X86 architecture, currently we only support the emulation of X86 real mode. For now, the emulator can run on X86 and ARM machines without operating systems pre-installed, launching OS running in X86 real mode and some typical applications inside of it.This article has the following contributes.1. Provided a feasible solution for the compatibility problems between the brand new processors developed by China and the existing X86 operating systems as well as applications.2. Designed or integrated a light-weight bootloader to boot our emulator on a platform with no OS pre-installed.3. Explored feasible resolutions to virtualize necessary peripheral for the emulated X86 environment, and to access and update the underlying physical devices properly without OSes and relevant system services'supports.
Keywords/Search Tags:System Emulation, Dynamic Binary Translation, Bootloader, Device Emulation, X86 Architecture
PDF Full Text Request
Related items