IT CAN BE DONE
You can even have
3 independent workstation environments if you wish. In addition to this, on the same machine you can run a multitude of virtual machines which can have direct access to your machines physical hardware and be controlled via VNC.
To achieve the above, you'll be using visualization server software. I've tested this solution with
ESXi but
XEN may also work. The process is a bit complicated but if you're familiar with VMware it's actually pretty simple to get started. The software is free so if your hardware is supported there is no cost. Alternatively, if starting from scratch, you could build a new system for around R5000.
One thing to understand is that the processing power, memory, hard drives, etc will be shared between the virtual machines, this is one of the benefits. Since you'll be using either an i5 or i7 processor, you'll have either a Dual or Quad Core processor and unless the virtual machines are simultaneously being used to their fullest the system will be more than up to the task.
Hardware wise, you'll need a processor and motherboard that support Directed I/O [VT-d]. Directed I/O support is required to allow PCI pass-through, without which your virtual machines won't be able to interact with the physical hardware of your actual machine. Note that Directed I/O is marked as "VT-d", systems listed with support for VT-x, vPro or simply visualization support is not enough so make sure your hardware actually supports "VT-d". For a list of Intel compatible chips see
here. Motherboards are listed
here and
here, others may also be supported, some of which simply require a firmware update.
Since you want two workstation environments, I'd suggest a motherboard that has has two or more PCI-E x16 slots. You can get PCI-E x1 graphics cards but they're not guaranteed to work with this setup. I've had great success with MSI motherboards in that they support Directed I/O [VT-d] and many offer two or more PCI-E x16 slots.
The next most important component is the network card, you won't be able to use ESXi without a supported network card and there are only a
few cards supported. ESXi requires a network card with the exact chip of a supported card so from the list the easiest to get hold of are usually the Intel or D-Link cards. It is possible to patch ESXi and load device specific drivers but having the right network card makes the process a whole lot simpler.
Although it's recommended to use a RAID controller, it's not really necessary for what you're hoping to achieve so a regular SATA hard drive is all you need.
Regarding the graphics cards, you'll need to use ATI graphics cards as the Nvidia cards seem to crash when loading up a graphics based operating system (Windows, Linux, Mac, etc). Seems to relate to how they access memory.
For the keyboard and mouse, you'll need to use USB devices as PS2 devices can't be allocated for pass-through. This is the real trick with getting the system to act independently and although simple it's why most people assume it can't be done. Typically the keyboard and mouse are assigned to the ESXi console and aren't available for pass-through. The trick to how this whole setup works is that your computer has two or three internal "USB Host Controllers" (hubs in essence), each of which has 4 - 8 USB ports associated with it. These hubs have different PCI device ID's and can be independently assigned to virtual machines, doing this results in all the hubs associated USB ports being directly passed-through to the guest virtual machine. By connecting a keyboard and mouse to USB port that has been "passed-through" to a virtual machines you achieve an independent workstation.
As such for each independent workstation, you simply create a virtual machine in ESXi, then using PCI Device pass-through assign a graphics card as well as a USB Host Controller. To make PCI devices available for pass-through, using the "ESXI vSphere Client" you need to select "Configuration" -> "Advanced Settings", click "Edit" and select all the desired devices (Do not select your network card for pass-through as this will make your system unreachable).
ESXi configuration can't easily be performed from within the ESXi console so when setting up the system you'll need an extra computer to perform the initial configuration using the "ESXI vSphere Client". Once you've completed the setup and have a virtual machine automatically booting, you can self administer ESXi from within the virtual machine using the "ESXi vSphere Client" but if disaster strikes an additional PC for accessing the system does help.
The above directions provide a guideline for how to get things working, although it may seem rather straightforward there can be hardware related complication so if going down this road make sure you've set aside enough time should Murphy's law preside.
I've run my primary computer using the above setup for well over a year now. My reason for doing this is it allows me to have multiple development environments right at my fingertips, for the secondary workstation I have a couple of different virtual machines that I boot into depending on the task at hand and I usually have 4 or 5 other virtual machines running on the system simultaneously. In addition to supporting the two independent environments I have a KVM allowing my primary monitor and keyboard to switch to the secondary system.
Aside from the multiple independent workstation benefit, one huge advantage of the above setup over using VMware workstation is that when my operating system needs a reboot I don't have to shut down all the other running virtual machines.