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,...

Linux on RISC-V

It is an exciting time for Linux on RISC-V, the open instruction set (ISA) that is quickly gaining critical mass.  I will introduce the pieces needed to boot Linux on RISC-V including the Privileged Architecture, OpenSBI and U-Boot, and how that fits into the upcoming...

Looking at yourself: Linux Introspection tales

Introspection information, used originally by debuggers, has come a long way into playing a greater role in the functioning of Linux. Now its used by tracers, profilers, and then by eBPF, in libbpf, in the verifier and other parts of the kernel, being always available...