It makes sense that your development environment should follow your production as closely as possible, especially while learning.
With that in mind, a virtual machine of some kind is going to be the best way forward, despite the additional headaches such as setting up networking between the host and the guest machine. I've been doing this personally in a Magento project, and can safely say the time spent getting it all just right was amply rewarded with less headaches at the end of the process, and now its all setup, can easily be reused.
About dual boot, its really not worth the hassle considering how easy it is to get a VM up and running, and for these purposes, there is no difference.
Just make sure you look into the virtual box guest additions installation if you go down this route, everything gets much cooler once they are installed and running on the guest.
Links for resources:
VirtualBox
NAT Configuration of virtualbox, some ideas
Redcar editor - textmate style editing on linux including TM bundle support