Comment Potentially interesting given the constraints (Score 4, Interesting) 60
When launching a container, they boot a Linux VM that just has a single, statically-linked executable inside: vminitd. No systemd or other daemons. No libc or even ld.so, just vminitd.
That process is responsible for talking to things outside the VM, and for launching the container, etc. When the container process exits, vminitd exits and shuts down the VM. Starting the VM takes ~100ms, and the amount of memory and CPU cores it gets are taken directly from the container configuration. So, it's not terrible in terms of memory usage. It's sort of ideal for short-lived containers, since it starts up so fast and only uses as much memory as the container ends up actually allocating (not what it asked for). I'm not sure how they manage to boot Linux in a VM that fast, honestly. Maybe they have a pickled pre-booted image ready to be mapped into memory so they can tell Linux it's just woken up from being suspended? I have read some of the documentation, but I haven't dug into the code yet.
Meanwhile, it uses Rosetta2 to execute x86 code, so you can both build and run multi-platform containers.
I don't know that I'll actually use it myself, since Rancher Desktop is pretty slick, and I need Kubernetes. But, maybe someone will get k3s working on this and I can get away from having to run a big VM all the time. In any case, it's nice to see Apple recognizing how many people use their machines to build Linux containers, and it's nice to see them making it open source while they're at it. It isn't perfect, but it's at least somewhat clever.
That process is responsible for talking to things outside the VM, and for launching the container, etc. When the container process exits, vminitd exits and shuts down the VM. Starting the VM takes ~100ms, and the amount of memory and CPU cores it gets are taken directly from the container configuration. So, it's not terrible in terms of memory usage. It's sort of ideal for short-lived containers, since it starts up so fast and only uses as much memory as the container ends up actually allocating (not what it asked for). I'm not sure how they manage to boot Linux in a VM that fast, honestly. Maybe they have a pickled pre-booted image ready to be mapped into memory so they can tell Linux it's just woken up from being suspended? I have read some of the documentation, but I haven't dug into the code yet.
Meanwhile, it uses Rosetta2 to execute x86 code, so you can both build and run multi-platform containers.
I don't know that I'll actually use it myself, since Rancher Desktop is pretty slick, and I need Kubernetes. But, maybe someone will get k3s working on this and I can get away from having to run a big VM all the time. In any case, it's nice to see Apple recognizing how many people use their machines to build Linux containers, and it's nice to see them making it open source while they're at it. It isn't perfect, but it's at least somewhat clever.