添加系统调用实验报告_第1页
添加系统调用实验报告_第2页
添加系统调用实验报告_第3页
添加系统调用实验报告_第4页
添加系统调用实验报告_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、、构建基本的实验环境 基本实验环境与前提条件 Windows7、Word 2010、Vmware WorkStation、AdobeReader ReadHatLinux , gcc, vi Linux内核虚拟机的安装及使用 将Linux内核源代码及配置文件传送给虚拟机上的Red Hat Linux系统 配置网络时遇到这个问题, |电q闵Igalhg冀 Nk Edk V.tew Ttjrmlrul Go Hdlp LtdoT up hilerf 金(:疋 EthO: Del y rm ini ng. IP inforwia tion for etho. - . failed; n.u link

2、 preset t. Gheck cab le? IF LED LI匚*心L Cf貝:匚十 广L二f 学 Determining IP information for ethO. failed; no link present. Check cable 通过查找资料发现是系统的Bug, 解决方法如下: 至 U /etc/sysc on fig/network-scripts/ifcfg-eth0 在文件最后一行中加入 check_li nk_dow n () return 1; 另外如果存在 /etc/sysconfig/networking/profiles/default/ifcfg-et

3、h0 文件,则同样在其中 加入这一段东西即可,然后重启系统。 设置网络为DHCP,重新启动就可以,啦,直接上图 W * g W UIm EM *比 口 亞vl mrl *ta iHi 诵J.tM cmjwirdb omn- Ct*1 G. n dk3t linux-2,4.18 Is atxh Documentationkernel COPYING driversinitlib CRWITS fsipcMAINTAINERS Lrootlocalhost 1inux-2.4.l = CT_TO_USECS(p-; = CT_TO_SECS(p-; = CT_TO_USECS(p-; = p-m

4、in_flt; = p-maj_flt; = p-nswap; break; case RUSAGE_CHILDREN: = CT_TO_SECS(p-; = CT_TO_USECS(p-; = CT_TO_SECS(p-; = CT_TO_USECS(p-; = p-cmin_flt; = p-cmaj_flt; = p-cnswap; break; default: = CT_TO_SECS(p- + p-; = CT_TO_USECS(p- + p-; = CT_TO_SECS(p- + p-; = CT_TO_USECS(p- + p-; = p-min_flt + p-cmin_fl

5、t; = p-maj_flt + p-cmaj_flt; = p-nswap + p-cnswap; break; return copy_to_user(ru, 3) sys_getrusage()只是调用了内核函数getrusage(),是内核提供给用户的接口。 asmlinkage long sys_getrusage(int who, struct rusage *ru) if (who != RUSAGE_SELF return getrusage(current, who, ru); 编写应用程序调用该系统(调用)过程 在中添加函数 get_process_usage ()和系统调

6、用函数 sys_get_process_usage()的代码; 目录 int get_process_usage(struct task_struct *p,struct srz_rusage *ru) struct srz_rusage r; memset(char *) if y j亠壬,齐j define NR 4 7jld. 1! !Ur getxattx 二 c q 229 _NR_ IgeExaECr 30 NR fffetxatt-r 231 define _NR_ lisuxauur 232 NR 1113tX3匸匸H 233 #define NR flxsxattr 234

7、_NR_ reicovexat-Ei: 35 NR IreiT.ovexattr 23 HR fren.ovsxautr 23 清单,该清单用来对sys_call_table数组进行初始化,该数组包含指向内核中每个系统调用的 指针。我们在清单最后添加一行: Edef in e _N5?_getxattr 229 define _ _NR_lgetx.attr 230 defire _ _NR_fgetxatrr 231 ine _ _MK_listxatrr 232 匕丄hi亡_ _NR_llistxattr 233 _HK_f listxattr 234 ine _ _NR_r 电 iLov

8、eKattr 235 m? _ NE.J.TEmoFexEtttr 236 畑:fiHE _ _HR_freinovpxatTr 237 ine _ MK_get_prac?ss_usage 238 ong SYMBOL_NAME()的 .long SYMBOL_NAME(sys_get_process_usage) 29 .long SYMBOL NiME (sys m syseall) /* 23匚rsserv-d far 血滋踰拔/ 630 .lonf SYMBOL NAME lays ni syscall) /* reserveti for Xa亦A竝 *! =6 詡 Jr ,lonj

9、 SYMBOL NAME (57sayscall /* reserven f 640000isgc?Dnds Svstem_time:Oseconds;200000mseconds Min lost pages:1102 Max lost page:2148 Change page tings:O rootClocalhost root dmesg查看 附件: 源程序一 第一种实现方法 / #include /root / /root/ 源程序 / #include #include int get (pid_t pid); int main(int argc,char *argv) pid_

10、t pid; pid=atoi(argv1); get (pid); return 1; int get (pid_t pid) struct srz_rusage ru; long r=0; if(pid=0) printf(n error: Pid must int!nn); return 0; r=syscall(238,pid, if(!r) printf(ShangRongZhu success!nn); n, printf(User_time :t%d seconds: %d msecondsn, printf(System_time :t%d seconds: %d msecon

11、ds printf(Min lost page:t%dn,; printf(Max lost page:t%dn,; printf(Change page times: t%dn,; else printf(Error,cheak the pid: n,r); 第二种实现方法 / #include /root / /root/ 源程序 / #include #include #define _NR_get_process_usage 238 _syscall2(long,get_process_usage,pid_t,pid,struct srz_rusage *,ru) int get (pid_t pid); int main(int argc,char *argv) pid_t pid; pid=atoi(argv1); get (pid); return 1; int get (pid_t pid) struct srz_rusage ru; long r=0; if(pid=0) printf(n error: Pid must int!nn); return 0; r=get_process_usage(pid, if(!r) printf(ShangRongZhu success!nn); printf(User_time :t%d seconds:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论