Nemu – Modern Hypervisor for the Cloud by Intel
github.com
github.com
Its not clear why this needs to exist, as opposed to working with upstream to produce a single tree that can be built with a slimline profile enabled
think of the time and effort in documenting all of their code, compiling, getting hosting set up. bootloaders, different filesystems, different libc implementations, different command line tool implementations.
all to have an opinion?
One could say that about any industry/market. Differences of opinions and beliefs and interests are what create choice and drive innovation.
or at least, it makes sense to me
but I guess contributors are free to spend their time however they please
Same goes for Linux distros (albeit to a lesser extent, since "compatibility with software written for bigger distros" tends to be an implicit design goal for smaller distros), or for illumos distros (OpenIndiana is very different from SmartOS).
As a consequence, all three projects have their own focus (formed in part by the existence of the other projects), and that's good too.
On the upstream end, one of the features that landed in 4.0 was a 'Kconfig' system that hopefully will make it easier to build slimline versions of QEMU which don't compile in the kitchen sink.
Maybe https://bellard.org/tinyemu/ ? Seems like the right thing but it's not based on qemu I think. Anyone tried it with production workloads? It does seem like it should work - it does KVM and has virtio devices. Although at first glance I don't see either multiple CPU support or live migration support - not having multiple CPU support would basically rule it out for real workloads.
> Modern guest operating systems that host cloud workloads run on virtual hardware platforms that do not require any legacy hardware. Additonally modern CPUs used in data centers have advanced virtualization features that have eliminated the need for most CPU emulation.
> There currently is no open source hypervisor solutions with a clear and narrow focus on running cloud specific workloads on modern CPUs. All available solutions have evolved over time and try to be fairly generic. They attempt to support a wide range of virtual hardware architectures and run on hardware that has varying degree of hardware virtualization support. This results in a need to provide a large set of legacy platforms and device models requiring CPU, device and platform emulation. As a consequence they are built on top of large and complex code bases.
> NEMU on the other hand aims to leverage KVM, be narrow focused on exclusively running modern, cloud native workloads, on top of a limited set of hardware architectures and platforms. It assumes fairly recent CPUs and KVM allowing for the the elimination of most emulation logic.
> This will allow for smaller code base, lower complexity and a reduced attack surface compared to existing solutions. It also gives more space for providing cloud specific optimizations and building a more performant hypervisor for the cloud. Reducing the size and complexity of the code allows for easier review, fuzz testing, modularization and future innovation.
Fun fact: Firecracker originated in the Google ChromeOS project as "crosvm" and is now powering AWS.
> The rust-vmm project came to life in December 2018 when Amazon, Google, Intel, and Red Hat employees started talking about the best way of sharing virtualization packages. More contributors have joined this initiative along the way... The goal of rust-vmm is to enable the community to create custom VMMs that import just the required building blocks for their use case.
(Handily it works with standard Docker, just put in an extra line in your /etc/docker/daemon.json)
NEMU only does hardware virtualization on x86-64 machines and only exposes an emulated "machine" type that has the various virtualization-optimized devices and no emulation of real-world devices.
Maybe "production workloads" would be a better descriptor here than "cloud."