|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Alexander Stavitsky 2:5020/830.2882 02 Sep 2007 16:31:02 To : All Subject : VirtualPC и все все все -------------------------------------------------------------------------------- Ребят, хватит мне моск полоскать... Вот один человек дал линк, для тех, у кого нет инета привожу цитату с http://en.wikipedia.org/wiki/Vmware#Implementation_of_virtual_processing === Cut === Implementation of virtual processing Conventional emulators like Bochs emulate the microprocessor, executing each guest-CPU instruction by calling a software subroutine on the host machine that simulates the function of that CPU instruction. This abstraction allows the guest machine to run on host machines with a different type of microprocessor, but also operates very slowly. Dynamic recompilation offers an improvement on this approach: it dynamically compiles blocks of machine instructions the first time they execute, and later uses the translated code directly when the code runs a second time. Microsoft's Virtual PC for Mac OS X takes this approach. VMware Workstation takes an even more optimized approach, and uses the CPU to run code directly whenever possible (as, for example, when running user mode and virtual 8086 mode code on x86). When direct execution cannot operate, VMware software re-writes code dynamically. This occurs with kernel-level and real mode code. VMware puts the translated code into a spare area of memory, typically at the end of the address space, which it can then protect and make invisible using the segmentation mechanisms. For these reasons, VMware operates dramatically faster than emulators, running at more than 80% of the speed that the virtual guest OS would run on hardware. VMware Inc. boasts an overhead as small as 3%-6% for computationally intensive applications. Although VMware virtual machines run in user mode, VMware Workstation itself requires installing various drivers in the host operating system, notably in order to dynamically switch the GDT and the IDT tables. Many people erroneously believe that VMware and Virtual PC replace offending instructions or simply run kernel-code in user-mode. Both of these approaches run into difficulties on x86. Replacing instructions means that if the code reads itself it may fail to find the expected content; one cannot protect code against reading and at the same time allow normal execution; replacing in-place becomes complicated. Running the code unmodified in user-mode will also fail, as most instructions which just read the machine-state do not cause an exception and will betray the real state of the program, and certain instructions silently change behavior in user-mode. One must always rewrite; performing a simulation of the current program counter in the original location when necessary and (notably) remapping hardware code breakpoints. === Cut === Читайте - просвещайтесь и хватит пустословить... Alexander --- GoldED+/LNX 1.1.5-b20070503 * Origin: LES1_LENet (2:5020/830.2882) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/537246daad7e.html, оценка из 5, голосов 10
|