nolibc: a userspace libc in the kernel tree
nolibc is a C standard library for Linux which is developed and distributed as part of the kernel source tree. It has support for a wide range of architectures^1, many features and is easy to extend, especially for kernel developers. It consists solely of header files which allows building very small applications with bare-metal toolchains.
This talk will explain why it makes sense to have nolibc in the kernel tree, how it ended up there, its strengths and limitations and how it is used currently. Furthermore a new framework is proposed which uses nolibc to combine kselftests with KUnit to improve the developer experience.
^1 i386, x86_64, arm, aarch64, riscv32, riscv64, loongarch64, mipso32, m68k, s390, s390x, SPARC32, SPARC64
Thomas WEISSSCHUH
Linutronix
Thomas Weißschuh has worked on the kernel since 2018 as a hobbyist and since 2024 professionally. He maintains nolibc and various drivers. Currently he is working on the vDSO, build reproducibility, testing, hardening and a few other topics.
He is working as a software engineer at Linutronix