A kernel typically has very little, if any, knowledge of the actual hardware devices in a system. It does need to understand enough about basic devices. Basic devices recognized by a kernel include the following:
For all other hardware devices that are not critical to the start up of the operating system, a kernel depends on ``kernel modules''. The interface between a kernel and kernel modules is flexible. This permits the update and addition of modules without having to change the kernel.