Speaker
Description
Maintaining userspace API (UAPI) compatibility has been a cornerstone of Linux’s success over the years as it has allowed users to confidently upgrade their kernels without worrying about their userspace programs breaking.
Traditionally, kernel developers have used code review and testing to find UAPI-breaking changes. With libabigail, an additional tool could be added to the kernel tree which would allow developers to analyze a patch for UAPI breakages before the code is even executed. It could be integrated into build pipelines/processes to give developers helpful, immediate feedback and codify the kernel’s UAPI stability policy.
Beyond UAPI headers, this talk will explore additional boundaries between user and kernel space: sysfs and module parameters; in order to guarantee a stable kernel upgrade, changes to these interfaces must be backwards-compatible as well. Though, since they do not offer a clean C API, libabigail cannot help to analyze them. We hope to generate a robust discussion on how we could analyze the compatibility of these interfaces going forward.