操作系统实验11Linuxproc文件系统.doc
文本预览下载声明
《操作系统》实验报告
实验序号: 实验十一 实验项目名称:Linux proc文件系统
学 号 1207022103 姓 名 陈华荣 专业、班 1班 实验地点 实1-311 指导教师 李桂森 实验时间 2014-12-17 一、实验目的
通过本实验的学习,使学生掌握Linux 系统Web服务器的配置方法,搭建简单的动态数据网站。
二、实验内容
实验内容:实践Linux系统Web服务器的配置操作,并搭建简单的动态网站。
三、实验内容与步骤
1,查看/proc 目录,了解此目录下各个目录以及文件的含义;解释以下文件的含义:
proc 文件系统可以被用于收集有用的关于系统和运行中的内核的信息。下面是一些重要的文件:
* /proc/cpuinfo - CPU 的信息 (型号, 家族, 缓存大小等)
* /proc/meminfo - 物理内存、交换空间等的信息
* /proc/mounts - 已加载的文件系统的列表
* /proc/devices - 可用设备的列表
* /proc/filesystems - 被支持的文件系统
* /proc/modules - 已加载的模块
* /proc/version - 内核版本
* /proc/cmdline - 系统启动时输入的内核命令行参数
* /proc/XXX – XXX是指以数字编号的目录,有不少这样的目录,每一个目录表示一个进程(即线程组)
* /proc/sys – 可以修改的系统信息
* /proc/swaps - 要获知swap空间的使用情况
* /proc/uptime - 获取系统的正常运行时间
* /proc/fs/nfsd/exports - 列出由NFS共享的文件系统
* /proc/kmsg – 该文件被作为内核日志信息源,它可以被作为一个系统信息调用的接口使用。
* /proc/kcore – 该文件提供了以内核文件格式形式访问系统物理内存,并且可以被gdb用于检查任意内核数据结构的当前状态。如果装了源码,那么可以通过查看/usr/src/linux/Documentation/filesystems/proc.txt文件来获取更多的信息 。
/proc/kcore文件是系统物理内存的映像
2,从proc文件系统获取信息
通过读取proc文件系统,获取系统各种信息,包括主机名、系统启动时间、版本号、所有进程信息等
主机名
系统启动时间:/proc/uptime
版本号:/proc/version
#includestdio.h
#includeunistd.h
#includetime.h
#includesys/types.h
/*声明结构体*/
struct cpustatus
{
long total;
float user;
float nice;
float system;
float idle;
};
struct netstatus
{
long total;
float bytes;
float packets;
float errs;
float drop;
};
struct memstatus
{
unsigned int MemTotal;
float MemFree;
};
/*计算CPU利用率*/
void get_cpu_status(struct cpustatus *cpu_stat)
{
unsigned int total;
float user;
float nice;
float system;
float idle;
char cpu[21];
char text[201];
FILE *fp;
fp=fopen(/proc/stat,r);
while(fgets(text,200,fp))
if(strstr(text,cpu))
sscanf(text,%s %f %f %f %f,cpu,user,nice,system,idle);
fclose(fp);
total=(user+nice+system+idle);
user=((user+system)/total)*100;
cpu_stat-total=total;
cpu_stat-user=user;
cpu_stat-nice=nice;
cpu_stat-system=system;
cpu_stat-idle=idle;
return;
}
/*计算net利用率*/
void get_net_status(struct netstatus *net_dev)
{
unsigned i
显示全部