3 ms·
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 us
by jmmv 1y 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 https://github.com/rumpkernel/wiki/wiki/Repo%3A-rumprun
- signa11 1y agothere is also this: https://mirage.io https://mirage.io which does something similar.
- pjmlp 1y agoBoth are part of Unikernels as another approach on how to design OSes. http://unikernel.org/projects/ http://unikernel.org/projects/
- indigodaddy 1y agoMirage looks _vastly_ more complicated to use/implement (than smolbsd).
- signa11 1y agoit provides an environment to create bespoke applications running exclusively on h/w, so not surprising at all.
- anentropic 1y agoI am also curious how SmolBSD micro VMs compare to unikernels as the benefits/use cases sound similar What are the differences?
- myaccountonhn 1y agoCompared 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.