top | item 45586745

(no title)

jmmv | 4 months ago

If you like this, I'd also suggest reading on "Rumpkernels", which are also based on NetBSD. The core idea is (simplified): let's implement the kernel API in userspace so that we can take kernel-level components and run them as part of an application.

Rumpkernels then allow, for example, taking all file system drivers in the kernel and running them in userspace without having to rewrite all of the file system tricky logic. Think of "mtools" if you ever used them, but by reusing existing FAT code. Or making it trivial to create disk images from userspace without having to have special kernel primitives nor root access.

And also, they allow taking a userspace application and packaging it with the minimum set of drivers required to run "bare metal". Which is what the SSH example in the smol page brought to mind. See https://github.com/rumpkernel/wiki/wiki/Repo%3A-rumprun

discuss

order

anentropic|4 months ago

I am also curious how SmolBSD micro VMs compare to unikernels as the benefits/use cases sound similar

What are the differences?

myaccountonhn|4 months ago

Compared to say MirageOS, you have access to a "full" unix system. So anything that is available on NetBSD is also available on smolBSD. It's also very easy to use, I tried it and managed to set up a small portable development environment in 5 minutes. You can use SmolBSD to build a full-blown OS should you want to, or just use it to build and distribute an app like you would with docker. It can also be used if you have a serverless-like workload where you need to spin up VMs extremely fast.