Testing software can present difficulties enough on its own, but when you’re talking about the Linux kernel — that piece of software that directly interfaces with hardware — there are innumerable more complexities added to the scenario. One of those complexities, of course, is the number of devices Linux is intended to run on, from a variety of desktops, laptops and phones, to Raspberry Pis and other devices on the edge. Each device presents a new environment in which the Linux kernel needs to be tested, and that’s where KernelCI comes into the equation.