Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. Laya the open source version of Jev(convaiinnovations.com ↗)
    135comments
  2. A graphical desktop for the ZX Spectrum(github.com/mindbox77 ↗)
    44comments
  3. Tin: full-text search for Postgres(planetscale.com ↗)
    35comments
  4. AI-generated posters don’t have to be horrible(john.hartnup.uk ↗)
    449comments
  5. Human brain is two separate organs, Stanford Medicine-led research finds(stanford.edu ↗)
    179comments
  6. “The Secret Life of Circuits” is here(coredump.cx ↗)
    51comments
  7. Asking Authors About Their Own Papers(medium.com/tmlrorg ↗)
    32comments
  8. Black Holes or Black Hole Stars? Astronomers Spar over 'Little Red Dots'(quantamagazine.org ↗)
    11comments
  9. Android 17 is the first since 3.x to add new APIs without releasing to the AOSP(grapheneos.social ↗)
    548comments
  10. I built the fastest PHP webserver in the world(qbixserver.com ↗)
    26comments
  11. San Francisco Onion Futures Company(onionfutures.com ↗)
    115comments
  12. GPT-6 Astra Solves a WWI German Radio Cipher(prinzai.com ↗)
    132comments
  13. New evidence for hidden chambers beyond Tutankhamun's tomb(nature.com ↗)
    4comments
  14. If math is more than proof, we need to better celebrate the rest of it(terrytao.wordpress.com ↗)
    187comments
  15. What Zig felt like, coming from Rust(besok.github.io ↗)
    103comments
  16. Learning Another Language May Be One of the Best Ways to Keep Your Brain Healthy(theconversation.com ↗)
    38comments
  17. Cloudflare Quick Tunnels(cloudflare.com ↗)
    301comments
  18. How to Write with an LLM(sockpuppet.org ↗)
    360comments
  19. Agreement between the USA and Denmark (1951,2004) [pdf](state.gov ↗)
    8comments
  20. You can run Git on object storage if you re-make packfiles(tigrisdata.com ↗)
    24comments
  21. Communication by means of modulated Johnson noise(pnas.org ↗)
    18comments
  22. Saving another 100TB of RAM(cloudflare.com ↗)
    89comments
  23. SDCC – Small Device C Compiler(sourceforge.net ↗)
    23comments
  24. Ray Ozzie and the Optimism of Being Early(reproof.app ↗)
    10comments
  25. Science Is Open Software(jepedersen.dk ↗)
    50comments
  26. Why building a Rust LSP is hard(rust-glancer.github.io ↗)
    44comments
  27. Ctenophores: Wonders of Biology(quantamagazine.org ↗)
    7comments
  28. From Stonemasons to Carpenters(thelastsoftwareengineer.substack.com ↗)
    4comments
  29. The first new cat species discovered in 100 years(nationalgeographic.com ↗)
    122comments
  30. OpenJev(openjev.com ↗)
    278comments

Show HN: microvm – a minimalist machine type for QEMU inspired by Firecracker

145 pointsby 6y agogithub.com
20 comments
6y agoHN ↗

What are the differences compare to Firecracker?

6y agoHN ↗

From the guest perspective, the differences are minimal. Even boot time of the guest (thinking about a custom-built minimalist Linux kernel here) is roughly the same.

On the host side, things are more interesting. Firecraker has a smaller TCB (Trusted Computing Base), is written in Rust, and is statically linked. On the other hand, QEMU provides more features (especially in the block layer, with more formats, network-based block devices, asynchronous I/O...), can be configured at build time to adapt it to a particular use case, and has a pretty good security record.

In the end, KVM userspace VMMs (Virtual Machine Monitors) are learning from each other, giving users more options to choose from. Everybody wins.

6y agoHN ↗

I think the slide 14 from the talk "Reports of my Bloat Have Been Greatly Exaggerated" [1] presented by Paolo Bonzini at KVM Forum 2019 gives some good perspective about QEMU's security track:

"Of the top 100 vulnerabilities reported for QEMU:

- 65 were not guest exploitable

- 3 were not in QEMU :)

- 5 did not affect x86 KVM guests

- 3 were not related to the C language

- Only 6 affected devices normally used for IaaS

The most recent of these 6 was reported in 2016"

The rest of this talk was also very interesting. I encourage everyone with 10 minutes to spare and an interest in VMMs to take a look at the slides.

[1] https://static.sched.com/hosted_files/kvmforum2019/c6/kvmfor...

6y agoHN ↗

"Of the top 100 vulnerabilities reported for QEMU:

- 3 were not related to the C language

wow

6y agoHN ↗

"Of the top 100 vulnerabilities reported for QEMU:

- 65 were not guest exploitable

[...]

Which leaves about 30 that presumably were guest exploitable.

Don't get me wrong -- QEMU is useful. As a "kitchen sink" solution that runs anything, anywhere, with any useful combination of emulated {devices,processors,systems}.

However, this is also its biggest weakness. Which is why Google and Amazon all run their own custom VMMs for their IaaS services.

The microvm machine type as described here is a great step to improve this situation. The next step in my book would be to reconfigure QEMU's build system to allow building a binary that only supports the devices provided by microvm, and nothing else.

6y agoHN ↗

In the end, KVM userspace VMMs (Virtual Machine Monitors) are learning from each other, giving users more options to choose from. Everybody wins.

Indeed. Nice to see that the cross-pollination is happening.

For folks interested in what can be accomplished with userspace VMMs, a very minimalist example is the Solo5 project (https://github.com/Solo5/solo5), specifically the 'hvt' tender.

6y agoHN ↗

Oh, nice: props for including precise, fully worked example commands to actually use this. This is so helpful in terms of onboarding and being able to actually get people to use a project:)

6y agoHN ↗

If I was an eccentric billionaire, I'd reward good documentation with an open source doc prize.

It's so difficult to impress upon some people just important documentation is. And when they do it, they half-ass it by copying stuff from source code and not adding any context.

6y agoHN ↗

+100 to this. I’ve become a cheerleader for some projects just because the documentation was so good that it was easy to get started. It’s how I became a ZFS zealot among other things.

6y agoHN ↗

OT: where do you find the good ZFS documentation? Googling always seems to turn up Oracle's documentation, which may not match what's in FreeBSD or ZFS-on-Linux

6y agoHN ↗

To be fair -- the docs for ZFS via the manpage are great but I found a lot of help also from forums of likeminded folks -- ServeTheHome (https://servethehome.com) is where I got hooked.

And then there are countless GitHub projects where the README.md file, which is usually first thing I read, that is super well documented and written for the noob (imo). The best example of that so far, especially for someone like me just getting started with the framework, is the gin Golang http framework: (https://github.com/gin-gonic/gin) -- that readme is full of useful examples.

6y agoHN ↗

I sure wish qemu were better documented. There's a lot of qemu documentation out there, but much is incomplete or out of date. A lot of Red Hat's documentation is virsh rather than qemu/kvm. It's fairly easy to get something simple up and going, but there are shortcomings when you try to do something more complicated.

6y agoHN ↗

Firecracker requires KVM, but QEMU can be used with instruction emulation, correct? Does that make this potentially a little easier to develop with in certain environments?

6y agoHN ↗

That's correct. The initial versions of the microvm patch series did require KVM, but the one that got upstreamed does work with TCG [1], thanks to the QEMU's maintainers feedback.

That said, I'm not sure for which kind of use cases it would be useful to run it this way, as the performance won't be amazing. I find TCG acceleration mainly useful for debugging and foreign systems emulation.

[1] https://wiki.qemu.org/Documentation/TCG

6y agoHN ↗

I wonder if that's a security benefit, too... I would expect that KVM equals more attack surface, and direct to the host kernel at that. Now, weighing likelihood of exploiting KVM through qemu vs qemu through TCG (or whatever)... I'm not qualified to asses, and probably depends on your threat model. But it sure feels good if you can run qemu with no special privileges.

6y agoHN ↗

What kind of workloads make sense for this runtime? DIYFaaS? Or small, isolated long-running processes?

6y agoHN ↗

Function as a service is certainly one place. Others include secure container runtimes (eg. Kata-containers), sandboxing applications in general, and libguestfs.