Из книги Таненбаума "Современная ОС"
каждая операционная система имеет подсистему ввода-вывода для управления своими устройствами ввода-вывода. устройствами ввода/вывода. Некоторые программы ввода-вывода независимы от устройств, то есть применяются ко многим или всем устройствам ввода/вывода одинаково хорошо. Другие его части, такие как драйверы устройств, являются специфичны для конкретных устройств ввода/вывода.
Существует также диаграмма уровней программных систем ввода-вывода:
На следующих двух диаграммах подсистемы ввода-вывода Linux вы можете провести границу между компонентами, не зависящими от устройств, и компонентами, зависящими от устройств? Другими словами, какие компоненты являются зависимыми от устройства, а какие - независимыми от устройства? Я думаю, что "драйверы" зависят от устройства, а "VFS" не зависит от устройства. Но я не уверен насчет других компонентов.
Из той же книги:
В книге Bovet's Understanding the Linux Kernel 2005 тоже есть: