我正在开发一个嵌入式Linux系统(2.6内核和uclibc(,我需要检查CPU,内存,网络,NAT表使用情况等...
我应该使用哪个 API?我在哪里可以检查它?我访问了一些关于 Linux 内核 API 的网站,但没有找到任何直接信息。有什么建议或建议吗?
我的程序是用 C 编写的,带有 uclibc 和 gcc 3.4.6
谢谢
您所追求的所有信息(以及更多信息(都可以在 procfs 中找到:
- 中央处理器:
/proc/uptime
,/proc/stat
- 内存:
/proc/meminfo
- 网络:
/proc/net/dev
- 国家:
/proc/net/ip_conntrack
顺便说一句:GCC 3.4.6 非常古老。目前维护的最古老的版本是 4.4;如果可能的话,我建议升级。Buildroot将为您自动化很多过程。
proc 文件系统是相当最佳的:它是一个虚拟文件系统,所有内容实际上是在读取时创建的。因此,如果没有人读取信息,则不会生成信息。
基于文本文件的界面的优点在于它既是人类可读的,也是机器可读的。其次,没有endianess问题之类的事情 - 它跨架构工作得更好。与运行 ioctls 相比,它是为包括 V4L 和 ALSA 在内的一些子系统完成的,它的优点是它也与编译器(例如 #pragma 包(和 ABI 独立 - 如果您喜欢恐怖故事,请向 ARM 开发人员询问有关 OABI 到 EABI 的变化......
请注意,procfs 和 sysfs 的内容被视为稳定内核接口的一部分,任何开发人员都不允许随意更改任何内容。