Developing Tilck a Tiny Linux-compatible kernel

One of the ways to get a solid understanding of operating systems is to write one, from scratch. This is what Vlad has been doing in his free time since 2016. It all started as an experiment to see what would it take to write an OS that could just “run a shell” and...

Ftrace update

A lot of neat little features has been added to the ftrace tracing subsystem. This will go over what those are. From synthetic events to event probes. New triggers and even user events. If you don’t know what these are, then this talk will explain them to...

HID-BPF

HID (Human Interface Device) is an old protocol which handles input devices. It is supposed to be standard and to allow devices to work without the need for a driver. Unfortunately, it is not standard, merely “standard”. The HID subsystem has roughly 80 drivers, half...

Idmapped Mounts

On most Linux filesystems ownership is expressed in the form of user identifiers (uid) and group identifiers (gid). The only way to alter ownership of a filesystem object is to use a system call from the chown* family to specify a new uid and gid. Changing ownership...

io_uring: path to zerocopy I/O

With I/O devices getting faster each year, memory copies are becoming more and more expensive, wasting a lot of CPU cycles and being a burden to the memory subsystem. The problem goes even deeper, as device-to-device transfers usually require intermediate steps,...