barco is a project I worked on to learn more about Linux containers and the Linux kernel, based on other guides on the internet.
Looks like a good project to learn container from scratch.
Just wondering the main reason you're C since most of the container project now seems to be using Go or Rust?
I came across this last week when reading about different container runtimes -- crun is implemented in C[0].
Their explanation:
"While most of the tools used in the Linux containers ecosystem are written in Go, I believe C is a better fit for a lower level tool like a container runtime. runc, the most used implementation of the OCI runtime specs written in Go, re-execs itself and use a module written in C for setting up the environment before the container process starts.
crun aims to be also usable as a library that can be easily included in programs without requiring an external process for managing OCI containers."
[0]https://github.com/containers/crun