Concerns about Parallels over at the Apple forum

Discussion in 'Parallels Desktop for Mac' started by mcg, Apr 9, 2006.

  1. peterwor


    Yes, thanks, I get that, I guess I was referring not so much to the kexts but to the code snippets in my original post in the Apple forums where it appears as though new interupt descriptors are being used in the ioctl() handlers. Looking like it copies function pointers from user space and installs them as event handlers, why is what I'm curious about.
    Its been awhile since I fooled around with Mach code so I'm still a little rusty.
    I thought that this was actually hypervisor type technology that was invented years ago to try and stabilize virtualization and trying to leave most of the hyperviror stuff to the CPU, but like I said that assumption was based on old code that may or may not even be in the OSX host version.
    I appreciate the follow up though, I need to go back and do a little more study on exactly how Mach kernal handles all this.
    At any rate, what can I say I'm curious as to how exactly PW works. Its pretty cool stuff and it works.
    Cheers all,
  2. bbraun


    I'm also trying to understand some of how Parallels works. You can see some of my observations here:
    I'd be interested in any observations you make which can be reproduced by others.
  3. peterwor


    Yep, I read your post right away when you posted it. You had some GREAT observations and I have to wholeheartedly agree with your recommendations.
    We'll definitely have some more exchanges as we start to delve into this software some more.

  4. luz


    Not really - Maybe I'm wondering too much :)
  5. luz


    I'm also curious how Parallels works. Thanks bbraun for the interesting analysis details!

    I might have asked a bit to general in my previous post. I know VT-x only from reading whitepapers so far, but I've written virtualisation code myself (different context, and long timee ago, but still) and thus it just intrigues me to know more about PW which I will (once my MBP arrives...) use daily.

    Especially I would like to understand how Parallels without VT-x (on Windows e.g.) compares with the case when VT-x is used (as it is said to be the case on all Intel Macs, as they all have VT-x enabled CPUs).

    I'd expect that without VT-x, the guest and host will share ring 0 - which raises my original question about how the guest is prevented to affect host's ring 0 / kernel space.

    With VT-x, I wonder if Parallels really inserts a VMM below the Mac OS X kernel (I recall reading something about a "thin virtualisation layer between hardware and OS") such that both OS X and guest run virtualized, or if OS X just becomes the VMM and only guests are virtualized. From my understanding of VT-x so far, both would be possible without rebooting as long as Mac OS X itself is not (yet) VT-x aware. I'd expect they did the latter - to get the former to work without rebooting (i.e. without becoming VMM before the host boots) is probably introducing way too much dependency on host OS' internals into the solution.

Share This Page