Virtual Machine woes
My goals for setting up my development environment are:
– Keep code files off of virtual machines so that I can work on my laptop without killing the battery
– have full access to tools like gcc and gdb
– not too worried about using the IDE since I typically work with another editor
I started with setting up Mac OS X Tiger to be an NFS file server. Leopard is going to use /etc/exports to make this easy to do, but until then while you’re running Tiger your best bet is to use NFS Manager. I create a /w folder which I put all my source code checkouts and QNX stages into and when I mount it on my virtual machine it gets the same /w pathname. This way it doesn’t matter which system I’m on, its /w either way.
In my experience so far, parallels is very fast. Even single CPU it out performs VMWare Fusion 1.0 running QNX 6.3.0. Keep in mind however that parallels doesn’t support QNX and the standard 6.3.2 neutrino doesn’t run on Parallels. Colin Burgess managed to get the kernel running on Parallels and that worked well for a while. io-audio, io-net, io-graphics, and io-usb all work well on Parallels. The only problem is that its gotten quite unstable for me, I’m not sure if its because of a Parallels update that I’ve installed or not, but io-audio seems to hang now and then, and in addition parallels itself crashes fairly frequently.
VMWare is stable, io-audio, and io-net work. It has SMP which is good for testing multi-threaded access to applications. The downsides is that its a dog… it is very slow to compile compared to Parallels, somewhere in the order of 5-8 times slower which is very noticeable. And io-usb gives errors but I haven’t spent much time at all trying to get this working. Because parallels has gotten so unstable I’m going to spend a bit more time trying to get this working better.
Many months ago I had built the QNX toolchain on Mac OS X so that I could build QNX applications directly on Darwin. I’m going to take a crack at this again. The reason why I went away from this in the past was because I had only compiled GCC 3.3.4 and we typically ship 2.9.53 binaries so my executables were often incompatible. Parallels back then was very fast and stable and there was no big performance difference while building small apps on the virtual machine. Now that things have gotten so unstable or slow depending on virtual machine I choose I’m going to rebuild the toolchain for Darwin and do testing in VMWare.
One thing that is very nice about this problem, is that I have a choice