It has been a while since the PPC emulation days of Connectix Virtual Game Station, Virtual PC, and the emulation[.net] scene. The latest and greatest is now virtualization, or less emulation, more speed. Of course this is really nothing new, since IBM has employed virtualization in production mainframe environments since 1967[citation still needed], but we are still going to try and make it really complicated with fancy long words that are often mis-attributed to each other, thus becoming even more useful as a tongue-twisting teaching tool of misinformation.
The entire concept of virtualization is a bit misbegotten. We use it to get around developing stable, sandboxed services on servers or for changing development and testing environments on the fly. All of which seem avoidable with an ounce of prevention, but let's ply on for the ten pounds of cure!
This is where we are going to set the record straight. Well, straight-er at least. With the help of my trusty side-kicks Google, Wikipedia, and The Internets (<= v1.0 please) we will get to the bottom of this virtualization issue. The problem statement, slightly adjusted from the title: From within a non-Windows Host, Paravirtualize Type 1 a Windows 7 installation. Non-Windows could mean Linux, it could mean Mac OS X, or it could mean something exotic like BeOS. Ideally, it seems the Host OS may benefit from using a Microkernel such as Mach or L4. I am partial to Mac OS X for best-in-class design and general interoperability, though the computer I have to work with is an HP 8740w so Mac OS X may not be realistic as a Host OS. Some day... =)
Paravirtualize means cut some corners around full virtualization so the guest may interact with the hardware via optimized drivers. It allows the guest to know it is being virtualized by offering virtual hardware services, which then require drivers, in order to speed up stuff such as disk, network, and PCI bus I/O. A good first step is to achieve "Full Virtualization" so that the installed drivers and system see the same hardware. Given the widespread [lack of] incredibly clear and concise documentation and very limited [sarcasm] choices in software virtualization packages available to those interested, I have decided to first get the Windows 7 partition to simply boot before worry about the optimization.
Type 1 is a term coined by Robert P. Goldberg for classifying the hypervisor, a technique for virtualization, that runs directly on the host hardware as opposed to the host operating system, i.e. Type 2. A Type 1 hypervisor is also sometimes called a "native" or "bare metal" hypervisor.
A Windows 7 installation is a new concept to me, though in the past versions Windows was happy to reside in a single partition. Apparently this single installation of Windows 7 may span multiple partitions in order to appease some new recently hired Boot Manager. I am not yet certain.
Software options with Type 1 hypervisors capable of paravirtualization:
Linux KVM
The entire concept of virtualization is a bit misbegotten. We use it to get around developing stable, sandboxed services on servers or for changing development and testing environments on the fly. All of which seem avoidable with an ounce of prevention, but let's ply on for the ten pounds of cure!
This is where we are going to set the record straight. Well, straight-er at least. With the help of my trusty side-kicks Google, Wikipedia, and The Internets (<= v1.0 please) we will get to the bottom of this virtualization issue. The problem statement, slightly adjusted from the title: From within a non-Windows Host, Paravirtualize Type 1 a Windows 7 installation. Non-Windows could mean Linux, it could mean Mac OS X, or it could mean something exotic like BeOS. Ideally, it seems the Host OS may benefit from using a Microkernel such as Mach or L4. I am partial to Mac OS X for best-in-class design and general interoperability, though the computer I have to work with is an HP 8740w so Mac OS X may not be realistic as a Host OS. Some day... =)
Paravirtualize means cut some corners around full virtualization so the guest may interact with the hardware via optimized drivers. It allows the guest to know it is being virtualized by offering virtual hardware services, which then require drivers, in order to speed up stuff such as disk, network, and PCI bus I/O. A good first step is to achieve "Full Virtualization" so that the installed drivers and system see the same hardware. Given the widespread [lack of] incredibly clear and concise documentation and very limited [sarcasm] choices in software virtualization packages available to those interested, I have decided to first get the Windows 7 partition to simply boot before worry about the optimization.
Type 1 is a term coined by Robert P. Goldberg for classifying the hypervisor, a technique for virtualization, that runs directly on the host hardware as opposed to the host operating system, i.e. Type 2. A Type 1 hypervisor is also sometimes called a "native" or "bare metal" hypervisor.
A Windows 7 installation is a new concept to me, though in the past versions Windows was happy to reside in a single partition. Apparently this single installation of Windows 7 may span multiple partitions in order to appease some new recently hired Boot Manager. I am not yet certain.
Software options with Type 1 hypervisors capable of paravirtualization:
Linux KVM
VMWare ESXi
Microsoft Hyper-V
Citrix XenServer
Currently I am working on KVM in Ubuntu 10.10. I can boot the Windows 7 install DVD, go to recovery console, see the HD partition with live install, bootsect.exe to operate on the /nt60 bootloader, but bootrec.exe (and the auto-repair tools) sees no valid Win 7 installations. I have disabled AHCI in the BIOS, tried various ways of accessing that partition, unmounted it within the Linux-side, mounted it rw and tried to access the filesystem directly, etc. to no avail. It is perhaps time to move on to the next package on the list.
Microsoft Hyper-V
Citrix XenServer
Currently I am working on KVM in Ubuntu 10.10. I can boot the Windows 7 install DVD, go to recovery console, see the HD partition with live install, bootsect.exe to operate on the /nt60 bootloader, but bootrec.exe (and the auto-repair tools) sees no valid Win 7 installations. I have disabled AHCI in the BIOS, tried various ways of accessing that partition, unmounted it within the Linux-side, mounted it rw and tried to access the filesystem directly, etc. to no avail. It is perhaps time to move on to the next package on the list.