操作系统-linux课程实验报告

操作系统-linux课程实验报告

ID:25721853

大小:1.95 MB

页数:37页

时间:2018-11-22

操作系统-linux课程实验报告_第1页
操作系统-linux课程实验报告_第2页
操作系统-linux课程实验报告_第3页
操作系统-linux课程实验报告_第4页
操作系统-linux课程实验报告_第5页
资源描述:

《操作系统-linux课程实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验1.1、1.2LinuxUbuntu的安装、创建新的虚拟机VMWare实验1.3Shell编程1.实验目的与内容通过本实验,了解Linux系统的shell机制,掌握简单的shell编程技巧。编制简单的Shell程序,该程序在用户登录时自动执行,显示某些提示信息,如“WelcometoLinux”,并在命令提示符中包含当前时间、当前目录和当前用户名等基本信息。2.程序源代码清单#include#includeintmain(){printf("HelloLinux");

2、intpid;intstate;intpfd[2];pipe(pfd);if(fork()==0){printf("Inthegrepprogress");dup2(pfd[0],0);close(pfd[0]);close(pfd[1]);execlp("grep","grep","sh",0);perror("exelpgreperror");}esleif(fork()==0){printf("Inthepsprogress");dup2(pfd[1],1);close(pfd[0]);close(pf

3、d[1]);execlp("ps","ps","-ef",0);perror("execlpps-ef");}close(pfd[1]);close(pfd[0]);wait(&state);wait(&state);}实验2.3内核模块实验步骤:(1).编写内核模块文件中主要包含init_clock(),exit_clock(),read_clock()三个函数。其中init_clock(),exit_clock()负责将模块从系统中加载或卸载,以及增加或删除模块在/proc中的入口。read_clock()负责产

4、生/proc/clock被读时的动作。(2).编译内核模块Makefile文件#Makefileunder2.6.25ifneq($(KERNELRELEASE),)#kbuildsyntax.dependencyrelationshsipoffilesandtargetmodulesarelistedhere.obj-m:=proc_clock.oelsePWD:=$(shellpwd)KVER?=$(shelluname-r)KDIR:=/lib/modules/$(KVER)/buildall:$(MAKE)-

5、C$(KDIR)M=$(PWD)modulesclean:rm-rf.*.cmd*.o*.mod.c*.ko.tmp_versions*.symvers*.orderendif编译完成之后生成proc_clock.ko模块文件。(3).内核模块源代码clock.c#include#include#include#include#include#includ

6、e#defineMODULE#defineMODULE_VERSION"1.0"#defineMODULE_NAME"clock"structproc_dir_entry*my_clock;intread_clock(char*page,char**start,off_toff,intcount,int*eof,void*data){intlen;structtimevalxtime;do_gettimeofday(&xtime);len=sprintf(page,"%d%d",xt

7、ime.tv_sec,xtime.tv_usec);printk("clock:read_func()");returnlen;}structproc_dir_entry*clock_proc_file;intinit_clock(void){clock_proc_file=create_proc_read_entry("clock",0,NULL,read_clock,NULL);return0;}voidexit_clock(void){remove_proc_entry("clock",clock_proc

8、_file);}module_init(init_clock)module_exit(exit_clock)MODULE_LICENSE("GPL");(4).编译内核模块#make(5).加载内核模块在系统root用户下运行用户态模块命令装载内核模块#insmodproc_clock.ko(6).测试在终端中输入以下命令:#cat/proc/

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。