В настоящее время я занимаюсь разработкой приложения, которому требуется много информации о системе и процессах, некоторые из которых доступны только через / proc, и у меня есть несколько общих вопросов о доступе к структурам.
Приложение будетзапускаться в Linux (ядро> = 2.6), а не в любой другой ОС Unix.Он должен иметь доступ к любым данным в / proc, я не могу сказать, что необходимо сейчас, поскольку спецификации еще не ясны, но весь каталог / proc относится к приложению.Прежде всего: есть ли хорошая документация, которая охватывает все функции, добавленные / удаленные из версии ядра в версию ядра?В частности, меня интересует формат отдельных файлов.Могу ли я принять это как должное?Меняется ли оно между версиями ядра?
Подключение процесса синтаксического анализа, основанного на ядре, не будет проблемой вообще, просто я не смог найти хороших документов о том, что изменилось от версии к версии, которые могли бы помочь мне отлавливать ошибки синтаксического анализазаранее.
Кроме того: существует ли определенный список функций, которые можно активировать / деактивировать с помощью параметров ядра (кроме, конечно, самой / proc-функции)?Я ищу список файлов / каталогов, которые существуют только с соответствующими параметрами, установленными в ядре.
В качестве примера того, о чем я думаю, это ссылка на man-страницу proc (http://linux.die.net/man/5/proc), которая включает много полезной информации, например, некоторые опции включают в себя самую раннюю версию ядра, в которой они были доступны, некоторые включают, требуется ли загружать модуль. Это не описывает формат вывода всей информации, что является чем-тоМне нужно, если я хочу разобрать его (например, если он согласован во всех версиях ядра или изменен в какой-то момент).
Второе, что меня интересует, это то, что происходит, если запрашиваемый процесс умирает во время запроса.Какой у меня временной интервал?Например, если я собираюсь получить список процессов, считывающих все структуры, и анализировать их одну за другой, что произойдет, если мой процесс x умрет, прежде чем я смогу его прочитать?Даже если я проверю, существует ли каталог, он все равно может исчезнуть через один вызов приложения.
И последнее, но не менее важное: существует ли какой-либо основной дистрибутив, который не монтирует proc?
Насколько я понимаю, многие общие инструменты основаны на интерфейсе / proc, например lsmod
илиfree
, поэтому я предполагаю, что / proc может существовать почти всегда.