Object-oriented design patterns in the kernel, part 1
https://lwn.net/Articles/444910/

Despite the fact that the Linux Kernel is mostly written in C,
it makes broad use of some techniques from the field of object-oriented programming.