logoalt Hacker News

naikrovekyesterday at 3:08 PM1 replyview on HN

Here I go again: Plan9 had per-process namespaces in 1995. The namespace for any process could be manipulated to see (or not see) any parts of the machine that you wanted or needed.

I really wish people had paid more attention to that operating system.


Replies

nyrikkiyesterday at 4:23 PM

The tooling for that exists today in Linux, and it is fairly easy to use with podman etc.

K8s choices clouds that a little, but for vscode completions as an example, I have a pod, that systemd launches on request that starts it.

I have nginx receive the socket from systemd, and it communicates to llama.cpp through a socket on a shared volume. As nginx inherits the socket from systemd it does have internet access either.

If I need a new model I just download it to a shared volume.

Llama.cpp has now internet access at all, and is usable on an old 7700k + 1080ti.

People thinking that the k8s concept of a pod, with shared UTC, net, and IPC namespaces is all a pod can be confuses the issue.

The same unshare command that runc uses is very similar to how clone() drops the parent’s IPC etc…

I should probably spin up a blog on how to do this as I think it is the way forward even for long lived services.

The information is out there but scattered.

If it is something people would find useful please leave a comment.

show 2 replies