API для проверки информации о процессоре, памяти, сети, использовании таблицы NAT - PullRequest
0 голосов
/ 21 февраля 2012

Я занимаюсь разработкой встроенной системы Linux (ядро 2.6 и uclibc), и мне нужно проверить процессор, память, сеть, использование таблиц NAT и т. Д. *

Какой API следует использовать?Где я могу это проверить?Я посетил некоторые сайты об API ядра Linux, но не нашел никакой прямой информации о.Любое предложение или рекомендация?

Моя программа написана на C с uclibc и gcc 3.4.6

Спасибо

Ответы [ 2 ]

1 голос
/ 22 февраля 2012

файловая система proc довольно оптимальна: это виртуальная файловая система, где все содержимое фактически создается при чтении.Поэтому, если никто не читает информацию, она не генерируется.

Прелесть интерфейса на основе текстового файла в том, что он одновременно удобочитаем и воспринимается машиной.Во-вторых, нет проблем с бесконечностью и тому подобного - это лучше работает в разных архитектурах.По сравнению с запуском ioctls, который был сделан для нескольких подсистем, включая V4L и ALSA, он имеет то преимущество, что он также является компилятором (например, #pragma pack) и независимым от ABI - спросите разработчиков ARM об изменении OABI на EABI, если вам нравятся страшные истории...

Обратите внимание, что содержимое procfs и sysfs считается частью стабильных интерфейсов ядра, ни один разработчик не может изменять что-либо наугад.

1 голос
/ 21 февраля 2012

Вся информация, которую вы ищете (и многое, многое другое) доступна в procfs:

  • ЦП: /proc/uptime, /proc/stat
  • Память: /proc/meminfo
  • Сеть: /proc/net/dev
  • NAT: /proc/net/ip_conntrack

В качестве отступления: GCC 3.4.6 очень стар. Самая старая на данный момент поддерживаемая версия - 4.4; Я бы порекомендовал обновить, если это возможно. Buildroot автоматизирует большую часть процесса для вас.

...