Introduction This article targets the user who has first read my ASM tutorial (http://www.codeproject.com/KB/system/asm.aspx ) and wants to learn how Virtualization works. You want to create your own VMWare workstation? Let's go!
Background Required items: A complete understanding on how the CPU works in protected and long mode - read my article: http://www.codeproject.com/KB/system/asm.aspx.
Bochs Source - recompilation with VMX extensions. VMWare (or other virtualizers) won't work - at least, as far as I know. Also chances are that my code could use features not found in your cpu version - but you can try. Oh, and you can test it in raw DOS PC if you are really brave.
=very good= Assembly knowledge
Flat Assembler (http://flatassembler.net/)
FreeDos (or any other DOS you might have licensed)
LOTS OF PATIENCE If you are a beginner programmer, quit right now. If you are an advanced programer, quit right now. If you are an expert programmer, quit right now. When you start reading this article you will feel like a beginner anyway. BUT, since I am a beginner too, you will be eventually able to read what I have to say because I felt the same after I read the virtualization manuals. So keep reading!
Startup We will create an application that prepares the CPU for virtualization, creates a guest, enters it and exits. All this will be done in x64 mode for simplicity. In x86 it is also possible, but we will focus on the x64 architecture to avoid unnecessary overhead in the code. The code demonstrates only the basic VMX features and it might not work in your own CPU. However you can use bochs with virtualization enabled and then you will be able to test my code. Read more: Codeproject
QR:
Background Required items: A complete understanding on how the CPU works in protected and long mode - read my article: http://www.codeproject.com/KB/system/asm.aspx.
Bochs Source - recompilation with VMX extensions. VMWare (or other virtualizers) won't work - at least, as far as I know. Also chances are that my code could use features not found in your cpu version - but you can try. Oh, and you can test it in raw DOS PC if you are really brave.
=very good= Assembly knowledge
Flat Assembler (http://flatassembler.net/)
FreeDos (or any other DOS you might have licensed)
LOTS OF PATIENCE If you are a beginner programmer, quit right now. If you are an advanced programer, quit right now. If you are an expert programmer, quit right now. When you start reading this article you will feel like a beginner anyway. BUT, since I am a beginner too, you will be eventually able to read what I have to say because I felt the same after I read the virtualization manuals. So keep reading!
Startup We will create an application that prepares the CPU for virtualization, creates a guest, enters it and exits. All this will be done in x64 mode for simplicity. In x86 it is also possible, but we will focus on the x64 architecture to avoid unnecessary overhead in the code. The code demonstrates only the basic VMX features and it might not work in your own CPU. However you can use bochs with virtualization enabled and then you will be able to test my code. Read more: Codeproject
QR: