Linux не имеет стабильного API ядра.Это сделано специально, поэтому вам следует избегать написания кода ядра, если можете;вряд ли он останется совместимым с источником бесконечно долго и определенно НЕ будет двоичным, даже между второстепенными выпусками.
Это менее или более верно для ядер производителей;Redhat и т. Д. ДОЛЖНЫ поддерживать совместимость исходного и бинарного ядра между основными ревизиями.
В ядре постепенно проделывается дополнительная работа по сокращению объема кода ядра, необходимого для выполнения различных задач, таких как разработка драйверов (напримерUSB-драйверы обычно могут выполняться в пользовательском пространстве с помощью libusb), разработки файловой системы (FUSE) и сетевой фильтрации (NFQUEUE).Тем не менее, есть еще несколько случаев, когда вам нужно;в частности, блочные устройства все еще должны быть в ядре, чтобы их можно было с пользой использовать для загрузочных устройств и подкачки.