最近要做一个jni给java来采集系统信息. 支持linux和windows
    采集的内容包括. 系统所有进程名, cpu占用率, 内存占用率, 系统内存大小, 已用内存大小, 可用内存大小, 分区大小, 已用分区磁盘空间, 可用分区磁盘空间. 系统信息. cpu核心总数..
    在windows下已经使用系统提供的api一一完成并经过调试. linux为了保证代码的统一. 也用了jni的方式

    linux下我老以为会有类似的api提供. 翻了半天google, 最终决定还是从/proc文件系统开始来.
不过/proc方式的好处就是不论哪种语言. 只要他有操作文件的能力. 都可以获得这些信息. 而不局限于c或者c++

    要点1. /proc不是物理文件系统. 他是对内存数据的映射, 是驱动留给开发者和使用者的接口, 所以不管你什么时候用ls指令也好, 用stat来读 st_size也好. 他的大小都是0字节.
    要点2. 由于是vfs, 不要试图往/proc中扔文件或者目录

    /proc目录中. 有不少信息. 我这次项目涉及到如下

    /proc/stat      //实时的系统信息, 我感兴趣的主要是cpu负载数据
    /proc/loadavg   //一段时间内 cpu负载的平均数 以及最近一次的pid
    /proc/cpuinfo   //cpu信息 频率 核心 支持特性
    /proc/version   //系统内核版本  系统发行版本 gcc版本

    /proc目录下每个以数字命名的子目录都代表一个进程, 目录名则是他的pid
    /proc/(pid)/cmdline  该进程启动时的命令,  系统核心进程应该是空的
    /proc/(pid)/stat     里面记录着pid, 进程名(short_cmd)等等
    /proc/(pid)/environ  记录着系统执行的环境变量

其他的改天碰到再看吧.