For the pseudo file system in BSD operating systems, see
kernfs (BSD).
In the
Linux kernel, kernfs is a set of
functions that contain the functionality required for creating the
pseudo file systems used internally by various
kernel subsystems so that they may use
virtual files. For example, sysfs provides a set of virtual files by exporting information about hardware devices and associated
device drivers from the kernel's device model to
user space.
The creation of kernfs resulted from splitting off part of the internal logic used by
sysfs. The associated
patchset, with Tejun Heo as its main author, was merged into the
Linux kernel mainline in kernel version 3.14, which was released on March 30, 2014.[1][2]
Kernfs took the independent and reusable functionality of sysfs so other kernel subsystems can implement their own pseudo
file systems more easily and consistently.[1][3][4]
One of the primary users of kernfs is the pseudo file system used internally by
cgroups, whose redesign continued into version 3.15 of the Linux kernel.[5]