0

組み込み Linux システム (2.6 カーネルお​​よび uclibc) を開発しており、CPU、メモリ、ネットワーク、NAT テーブルの使用状況などを確認する必要があります...

どの API を使用すればよいですか? どこで確認できますか?Linux カーネル API に関するいくつかの Web サイトにアクセスしましたが、直接的な情報は見つかりませんでした。提案や推奨事項はありますか?

私のプログラムは uclibc と gcc 3.4.6 を使用して C で書かれています。

ありがとう

4

2 に答える 2

1

あなたが求めているすべての情報 (そしてもっともっと) は procfs で入手できます:

  • CPU: /proc/uptime/proc/stat
  • メモリー:/proc/meminfo
  • 通信網:/proc/net/dev
  • NAT:/proc/net/ip_conntrack

余談ですが、GCC 3.4.6 は非常に古いものです。現在維持されている最も古いバージョンは 4.4 です。可能であればアップグレードをお勧めします。Buildrootは、多くのプロセスを自動化します。

于 2012-02-21T17:34:05.910 に答える
1

proc ファイル システムは非常に最適です。これは仮想ファイル システムであり、読み取り時にすべてのコンテンツが実際に作成されます。したがって、誰も情報を読み取らない場合、情報は生成されません。

テキスト ファイル ベースのインターフェイスの優れた点は、人間が読めると同時に機械が読み取れることです。第二に、エンディアンの問題やそのようなものはありません。アーキテクチャ間でより適切に機能します。V4L や ALSA を含むいくつかのサブシステムで行われた ioctl の実行と比較すると、コンパイラー (#pragma pack など) であり、ABI に依存しないという利点があります。 ...

procfs と sysfs の内容は、安定したカーネル インターフェイスの一部と見なされることに注意してください。開発者は、無作為に何かを変更することはできません。

于 2012-02-22T12:31:55.597 に答える