Cozy is a container operating system that defines modeled configurations, common RPC definitions, and plugin standards. It includes a reference implementation written in Rust and uses bi-directional gRPC for communication. Plugins are designed to be as close to the underlying operating system as possible and are responsible for mutating the system. Generators use Linux kernel eBPF infrastructure to generate kernel events and convert them to Cozy events.
- Cozy is a container operating system that defines modeled configurations, common RPC definitions, and plugin standards
- It includes a reference implementation written in Rust and uses bi-directional gRPC for communication
- Plugins are designed to be as close to the underlying operating system as possible and are responsible for mutating the system
- Generators use Linux kernel eBPF infrastructure to generate kernel events and convert them to Cozy events
The problem with this is that sometimes that just is not an option and we have to fall back to parsing unstructured text. Furthermore, getting updates comes in the form of polling. This isn't what we want in Cozy, so what if we could actually tap into when the kernel updates its own state? This is the perfect use case for eBPF. Let's see what that looks like. You can see that the disk generator picks up a kernel event when I plug in a USB stick and now an SD card. This becomes a powerful way to reflect the kernel state in real-time and with events, solving the problems that I mentioned.