Путешествие к центру ядра j1m (j1m@list.ru) Хакер, номер #081, стр. 081-104-4 Список загруженных в текущий момент модулей содержится в файле /proc/modules. Формат его такой: "имя_модуля размер количество_зависимостей - Live адрес_в_памяти". Количество зависимостей - это число, указывающее на то, сколько других модулей зависит от данного модуля. Команда lsmod обращается за информацией именно к /proc/modules. Все поддерживаемые ядром файловые системы перечислены в файле /proc/filesystems. Этот список, кстати говоря, может оказаться несколько длиннее, чем ты думаешь ;). У меня, например, в списке присутствуют bdev, sockfs, pipefs, eventpollfs. Все они нужны для правильного функционирования ядра. Какие из этих ФС смонтированы в текущий момент, подскажет файл /proc/mounts, формат которого идентичен конфигу /etc/fstab. Информация о смонтированных swap-областях доступна в /proc/swaps. Помимо вышеперечисленных файлов, существует еще каталог /proc/fs, в который, по задумке разработчиков Linux, должны помещать всевозможную информацию драйвера файловых систем. В реальной жизни здесь можно найти только информацию по драйверу NFS, файловой системе reiserfs и, если наложен соответствующий патч, по supermount. Обрати внимание: если ты хочешь получать статистику о reiserfs, тебе придется включить в ядре опцию "File systems -> Stats in /proc/fs/reiserfs". [сеть] Вся сетевая статистика хранится в файлах, расположенных в каталоге /proc/net. Текущие подключения перечислены в файлах tcp, udp и unix. По сути они предоставляют ту же информацию, что и netstat, но в формате таблицы сокетов ядра. Это значит, что все данные представлены в шестнадцатиричном формате (включая IP-адреса и порты), а состояние соединений идентифицируется числом. Таблица "сырых" сокетов находится в файле raw. Дамп таблицы маршрутизации можно найти в файле route. Приятная для глаз обычного человека инфа находится только в двух файлах: arp и dev. Первый - это ARP таблица (таблица соответствий IP и MAC адресов), а второй содержит статистику по сетевым устройствам. Файл dev представляет собой таблицу из трех секций: сетевой интерфейс, статистика принятых и переданных данных. Вторая и третья секция имеют одинаковый формат и содержат такие колонки: bytes - общее количество переданной/принятой информации, packets - число пришедших/ушедших пакетов, errs - число пакетов с неправильными заголовками, drop - число отброшенных (например, брэндмауэром) пакетов, multicast - число широковещательных пакетов. Вся эта информация используется утилитой ifconfig для вывода отчета. [ядерная бухгалтерия] Главным местом скопления статистической информации о ядре является файл /proc/stat. Первая строка, озаглавленная "cpu", отображает данные о том, сколько процессор тратит времени на выполнение кода пользовательских программ (первое число), кода ядра (третье число), время "спячки" процессора (четвертое число), сколько времени ждет выполнения операций ввода/вывода (пятое число) и сколько времени уходит на обработку прерываний (шестое число). Остальные колонки не столь интересны. Данные представлены в сотых долях секунды. Хочу отметить, что в нормально функционирующей системе время бездействия процессора будет в несколько раз больше времени его работы. Остальные строки не столь интересны, но я все же прокомментирую некоторые из них. Btime - время загрузки системы, указанное в секундах, прошедших с 1 января 1970 г. Processes - общее количество порожденных с момента загрузки процессов. |