Нет API ядра для определения текущего распределения ОС, просто потому, что оно на самом деле не нужно. Само ядро Linux является независимым от дистрибутива c, и ему наплевать, какой дистрибутив запускается поверх него (если ядро зависит от того, что запускается поверх него, не имеет особого смысла) .
Если вы действительно хотите, вы можете открыть, прочитать и проанализировать файл самостоятельно из пространства ядра. См. в этом другом посте для примера, и в частности этот ответ для современных ядер. В любом случае, помните, что взаимодействие с файловой системой из пространства ядра, как правило, не рекомендуется, и может легко привести к ошибкам и поставить под угрозу безопасность ядра, если сделано неправильно, поэтому будьте осторожны.
Если вы разрабатываете модуль ядра, Я бы посоветовал вам проанализировать файл /etc/os-release
из пространства пользователя при компиляции / установке модуля и использовать набор #define
s или даже параметров модуля . В любом случае, вы должны спросить себя , почему вам нужна эта информация в коде ядра, а вам в действительности это не нужно.