Ни одна из стандартных пользовательских библиотек недоступна из кода ядра. В ядре есть некоторые функции, которые ведут себя аналогично соответствующим функциям пользовательского пространства, но вы всегда должны проверять, что между ними нет различий.
Что касается функции mmap
, эта функция является просто системным вызовом ядра. Не имеет смысла вызывать ядро внутри ядра. Вместо этого есть функция, реализующая mmap
. Если вы не хотите отобразить анонимную память, что было бы проще сделать с помощью выделения памяти, вам нужен файловый дескриптор. Процессы имеют файловые дескрипторы, а модули ядра — нет.
В общем, программирование модуля ядра отличается от программирования пользовательского пространства. Хорошим подходом было бы найти модули ядра, делающие что-то похожее на то, что вы намеревались, и использовать это в качестве отправной точки.
Должны ли вы изменять $PATH почти для каждого приложения? Я знаю, что эта практика распространена в Windows. Поскольку у вас есть /usr/local/bin
в исходном $PATH:-
Старайтесь никогда не изменять $PATH, чтобы приложения не могли работать из-за многократного изменения $PATH.
Просто поместите символические ссылки в /usr/local/bin
, указывающие на истинное расположение ваших программ -, которые размещены в логических местах.