I don't know if this is the best forum to ask such a question, but I don't know of any other forums with programmers knowledgeable of such more advanced topics like this. That's a compliment btw
So, I've been searching for ages on how to get started using Intel's VMX instructions to implement a virtual machine. When searching google and such, all I ever get are theory white papers, thesis-es and overviews on what virtualization is supposed to do, which I already know. I do have a copy of Intel's documentation on their instruction set, but it's a bit difficult to follow for me. I guess it's easiest for me to learn when I not only get an explanation of what's going on, but some sample code in readily compilable form to deviate from. Obviously, this isn't likely to be something where I can just learn it over night and have a working implementation just like that, but I have to start somewhere. I am familiar with x86 assembly and have done most of my asm in 32-bit mode.
Another thing, my assumption is that Intel VMX instructions require ring 0 in order to work. If that's true, then I assume I can use the WinDDK to write a special kernel mode driver to have ring 0 access for those specific instructions and load the driver manually in user mode (this I already have some information on doing, but the more the merrier). So, anyone here know anything about this subject? Thanks.
Anyone know anything on Intel-VMX usage?
This is one of those "If you have to ask, you aren't ready to do it" questions.
There are a few options. What you want will depend on your goal.
No matter what your goal, you will ultimately end up with a piece of bare hardware. You will need to write the software to boot and make the bare hardware useable to users. That is not a trivial task.
Assuming you want to proceed, you can either operate directly on the hardware, or run under an existing OS.
For the first option you can install yourself below the OS; effectively writing your own OS that hosts Windows. This is how a few earlier VMM systems worked. There are a few piece of malware that do exactly that.
If you intend to work under Windows (as you implied with the DDK) then your first stop should be to learn about SCVMM and Hyper-V. In this case you will be writing an application that uses Windows' Hyper-V WMI system to manage your own virtual machines. Again, this will leave you with a bare machine and you will need to effectively write your own OS that operates within it.
There are a few options. What you want will depend on your goal.
No matter what your goal, you will ultimately end up with a piece of bare hardware. You will need to write the software to boot and make the bare hardware useable to users. That is not a trivial task.
Assuming you want to proceed, you can either operate directly on the hardware, or run under an existing OS.
For the first option you can install yourself below the OS; effectively writing your own OS that hosts Windows. This is how a few earlier VMM systems worked. There are a few piece of malware that do exactly that.
If you intend to work under Windows (as you implied with the DDK) then your first stop should be to learn about SCVMM and Hyper-V. In this case you will be writing an application that uses Windows' Hyper-V WMI system to manage your own virtual machines. Again, this will leave you with a bare machine and you will need to effectively write your own OS that operates within it.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement