Home > QNX > Virtual Machine woes

Virtual Machine woes

September 10th, 2007 Leave a comment Go to comments

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

For a while it was difficult since I picked up one of the first Macbook Pro’s and at that time there were no virtual machine environments for it. Eventually came Parallels and then VMWare.

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 :)

Categories: QNX Tags:
  1. Andrew
    September 22nd, 2007 at 11:49 | #1

    my solution to sharing code between platforms was the subversion repository we use at work – the downside compared to your NFS method is that local changes aren’t shared between the two platforms (though this isn’t a real problem for me), but the main advantage is backup and versioning/logging of code changes.

    of course there’s no reason the working copy of the subversion repository couldn’t be on the NFS mount to give the advantages of both…

  2. Dave
    October 7th, 2007 at 01:11 | #2

    Dan,

    I’m very interested in this topic. I recently changed over to the Mac as a platform at home (I was getting bored with Windows). I purchased Parallels with the hope of running QNX on it, but found that it wouldn’t boot under it.

    I’d be interested in what Colin did to get things working under it. I tried VMware as well and found it unbearably slow. I’m also interested in your Mac hosted toolset approach.

  1. No trackbacks yet.