The "plumbing" refers to utility code used throughout the kernel, without having a very specific purpose or function like drivers do. Examples could be the linked list implementation, debugging helpers and tools and various core code not otherwise categorized. read more
Like any other operating systems or a piece software , a Linux kernel need to define prototypes (function declarations a.k.a. signature) for its entry points for userspace program to interact with it. read more
That is essentially what kernel modules do for Linux. Kernel modules, also known as a loadable kernel module (LKM), are essential to keeping the kernel functioning with all of your hardware without consuming all of your available memory. A module typically adds functionality to the base kernel for things like devices, file systems, and system calls. read more