machine icon indicating copy to clipboard operation
machine copied to clipboard

Hypervisor.framework driver : xhyve

Open ghost opened this issue 6 years ago • 9 comments

Hello, For Mac and to have a more native and powerful solution, Xhyve can be great Regards

ghost avatar Aug 14 '19 03:08 ghost

I wanted someone else (Mac user) to do it, but have found I could use xgo to build. Agree that it (and hyperv for the Dark Side) would be nice

afbjorklund avatar Aug 14 '19 06:08 afbjorklund

@afbjorklund, @colundrum would be great to have Mac support, as a Mac user I volunteer to help on this task. I've tried to setup a docker-machine based VM to achieve that, but it's far from trivial and I'm not finished over there. So, would be great to centralized this effort here. :-)

otaviof avatar Aug 26 '19 07:08 otaviof

Both virtualbox and qemu are supposed to work on a Mac, this is about having a better driver.

afbjorklund avatar Aug 26 '19 18:08 afbjorklund

@otaviof not sure what your issues with docker-machine were, but some are inherited by podman-machine (since it is more or less the exact same code, even though the ISO image is different...)

afbjorklund avatar Aug 26 '19 18:08 afbjorklund

@afbjorklund I mean, aside of VirtualBox support, I would love to have xhyve based VM.

otaviof avatar Sep 04 '19 17:09 otaviof

QEMU has support for the Hypervisor framework on macOS. I've had success using podman-machine on macOS with QEMU installed from homebrew [1].

I replace qemu-system-x86_64 in my $PATH with a bash script that adds "-accel hvf -cpu host" to the qemu command line. Seems to be working quite well.

[1] https://formulae.brew.sh/formula/qemu

tonyjames avatar Jun 04 '20 17:06 tonyjames

Bump. Virtualbox is dead in the water for Apple arm64 according to Oracle. If anyone wants to help port xhyve to arm64 the thread is here https://github.com/machyve/xhyve/issues/206. IBM could beat Docker to Apple M1 support with Podman - this should be a huge priority.

chadbrewbaker avatar Nov 21 '20 06:11 chadbrewbaker

IBM could beat Docker to Apple M1 support with Podman - this should be a huge priority.

Sorry but the boot2podman project (and boot2docker) share that same unsupported state...

https://boot2podman.github.io/2020/11/03/boot2podman-project.html

Podman only runs remotely now, there is no Podman that works "locally" on Mac or Windows.

Red Hat has not been able to support such a project, neither "Toolbox" (i.e. this) nor "Desktop"

https://boot2podman.github.io/2018/12/04/introducing-podman-machine.html

If you want to discuss this, I suggest: https://podman.io/community/meeting/


The included QEMU driver should work with Hypervisor.framework, unless too much changed:

https://github.com/boot2podman/machine/issues/5#issuecomment-548442359

On Linux we use -accel kvm, on the Mac it is -accel hvf and on Win it is -accel hax

Running with --accel hvf takes about 40s to start the machine compared to almost 7 minutes taken without any accelerator.

Otherwise the recommendation is to use some other means to set up the Linux VM.

For instance by using Vagrant, which should have provisioners for e.g. Parallels ?

https://boot2podman.github.io/2020/07/22/machine-replacement.html

See also https://www.redhat.com/sysadmin/podman-clients-macos-windows

afbjorklund avatar Nov 21 '20 08:11 afbjorklund

Hi, I'm a developer on the Android Emulator, which currently uses Hypervisor.framework in a fork fo QEMU for x86 Android guests.

We're looking into both Virtualization.framework and Hypervisor.framework, and I'm in the process of adding Hypervisor.framework support here: https://android-review.googlesource.com/c/platform/external/qemu/+/1510245

which is loosely based on the KVM kernel code (https://elixir.bootlin.com/linux/v4.6/source/arch/arm64/kvm/handle_exit.c). So that's the implementation strategy.

As I'm implementing this while also learning the ARM64 ISA as I go along, help is appreciated :)

741g avatar Nov 25 '20 02:11 741g