User talk:Alessio.biancalana

Jump to: navigation, search

Linux schedulers for fun and profit with SchedKit

on-the-fly scheduler swapping via eBPF, sched_ext and OCI images

The Linux kernel scheduler is a critical component, profoundly impacting system performance and responsiveness. Traditionally, changing the scheduler has involved recompilation, rebooting, or complex kernel module management – a significant barrier for experimentation and fine-grained performance tuning. SchedKit dramatically simplifies this process, enabling users to dynamically switch between schedulers at runtime, without reboots or kernel modifications, opening up new possibilities in customizing kernel scheduling for the specific usecase.

This talk introduces SchedKit, a new open-source project leveraging the power of eBPF and the sched_ext framework. SchedKit allows users to leverage custom Linux schedulers as standard OCI (Open Container Initiative) images. These scheduler containers are then launched and managed by the user's preferred container runtime (e.g., Docker, Podman, containerd). Through the magic of eBPF and sched_ext, SchedKit seamlessly attaches these containerized schedulers to the running kernel, changing the existing scheduling policy.

Thanks to `schedctl` we can automatically download a new scheduler, run it, and have it attached to all the subsequent processes.

... and it's of course available on openSUSE!

Developing an application for GNOME in Rust

Everything I learned through my journey building a Pocket client for the Linux desktop

Developing an application for GNOME can be quite an adventure, and I discovered both the bright side and the dark side of it on my own skin building a Pocket clone (it's my first desktop application!) for Linux.

In the end it can be quite satisfying, as we have got plenty of tooling to successfully come out with something working:

   We have GTK;
   We can write our memory safe software in Rust leveraging every library in the Rust ecosystem and the GTK bindings;
   We can optionally use libraries like Relm to declaratively implement reactive interfaces.

Writing desktop applications can be a nice way to contribute to the Linux ecosystem.

Let's see together how to write our first application for GNOME without any pain. Of course it can be something usable on other desktop environments as well!

Observability and compliance: Trento checks engine under the hood

The Trento team built a compliance check engine that leverage distributed sagas in order to discover wether or not your infrastructure is compliant to SUSE's best practices and arbitrary third-party rules (you can write your own checks!).

Let's see together how all of this works under the hood.