Remix.run Logo
drnick1 4 days ago

It's a bit unnatural to use Go when C is the "native language" of Linux and pretty much every operating system.

ktpsns 4 days ago | parent | next [-]

Talos Linux [1], "the Kubernetes Operating System", is written in Go. That means it exactly works as the little demo here, where the Kernel hands over to a statically compiled Go code as init script.

Talos is really an interesting linux distribution because it has no classical user space, i.e. there is no such thing as a $PATH including /bin, /usr/bin, etc. The shell is instead a network API, following the kubernetes configuration-as-code paradigm. The linux host (node) is supposed to run containerized applications. If you really want to, you can use a special container to get access to the actual user space from the node.

[1] https://www.talos.dev/ [2] https://github.com/siderolabs/talos/releases/tag/v1.11.5

preisschild 4 days ago | parent | next [-]

I also use Talos, but I wonder if just using systemd for the init process wouldn't have been easier. You can interface with systemd in go quite easily anyways...

cpach 4 days ago | parent [-]

s6 (perhaps with s6-rc) is another interesting option. One could say it’s less opinionated than systemd. Or perhaps it’s more correct to say it has another set of opinions.

tayo42 4 days ago | parent | prev [-]

Off-topic i guess. Are there like large scale success stories using this os?

ktpsns 4 days ago | parent [-]

Yes. I know at least one big cloud provider (actually the biggest) in Germany who uses Talos for their managed k8s.

zsoltkacsandi 4 days ago | parent | prev | next [-]

The goal was to strip away most of the complexities (including C), to make the topic more approachable for a broader audience.

Go seemed a perfect fit, it is easy to pick up the syntax and see what is going on, but you can still be close to the OS.

themafia 4 days ago | parent | prev | next [-]

Go can speak C. It's fine.

cpach 4 days ago | parent | prev [-]

I mean what you run is still machine code anyway, right?