试验3_内核模块_试验报告_第1页
试验3_内核模块_试验报告_第2页
试验3_内核模块_试验报告_第3页
试验3_内核模块_试验报告_第4页
试验3_内核模块_试验报告_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1、内核模块 实验报告题目:内核模块实验1、实验目的模块是Linux系统的一种特有机制,可用以动态扩展操作系统内核功能。 编写实 现某些特定功能的模块,将其作为内核的一部分在管态下运行。 本实验通过内核 模块编程在/porc文件系统中实现系统时钟的读操作接口。2、实验内容设计并构建一个在/proc文件系统中的内核模块clock,支持readfl作,read(超 回值为一字符串,其中包块一个空格分开的两个子用,分别代表 xtime.tv_sec和 xtime.tv_usec。3、实验原理Linux模块是一些可以作为独立程序来编译的函数和数据类型的集合。在装 载这些模块时,将它的代码链接到内核中。Li

2、nux模块可以在内核启动时装载,也可以在内核运行的过程中装载。如果在模块装载之前就调用了动态模块的一个 函数,那么这次调用将会失败。如果这个模块已被加载,那么内核就可以使用系 统调用,并将其传递到模块中的相应函数。4、实验步骤编写内核模块文件中主要包含 init_module(), cleanup_module(), proc_read_clock()三个函数。 其中init_module(), cleanup_module()负责将模块从系统中力口载或卸载, 以及增加 或删除模块在/proc中的入口。 read_func()负责产生/proc/clock被读时的动作。内核编译部分过程:1L

3、a*iv)Ct arch/ asK/k-emeV all JJ4. iC arcli/KSEks-mfil / aspfLi o -DC也 rc 府“曲 gGC白N为片/g|7*1,网讥门的.nOC四Ei/厘$a. CC flixti/icac/lio-rn&L/aCCaCC-/1|愚汴轲厘1/1.(1的用1!0CC.FC 由/*. E#i:1y.i.0OZarcn/K3Slt&i f USZ5J ,0CCAKfl/ riK/hAfrMl/H.l ronrau,B1 bc_ *CCarch/Hft-/limGl/if r mrr a TOC o 1-5 h z 伐:口CCfit .Eh/jfJ

4、tfhEiTsel f 兴 i-pOCtnsh/nM/fcrrwW pa rcti/kSG, M q ecI F . r dc口cc.此岛/注7皿01,01九4CC arcn/ $6/k#nwl4LKh/e*1 FrI E 个CC货mi/幽FUnwlf仙电CCarch/i/hJtmAL/itap, 口CdEh/fCtftreh/wW/hrTwl./*i KT w u. earcl-i/K3C/&ml /.工 pL/bocn, 0CtarcH/d/h.ml/Mpl/ftlp c吗d 此 r/Ef 禺多 rmlFNpdi叫。上4.。&arEti/*M/ksiroVcljiXcTtat-Wansn/

5、kk/MowI f c pi /bull 11x0CCaneJ/K9t/k*m*L/ 邛ix!, a111加华 Mhi-E) llriv)*上t)苒*t)加卬UD 1/5. 43f6jpLn. 0fl/prK./ wh jwm4 4CEfspraz/lriDdfi,aOCfi/p iw/rgt, 4T*0ro ,巾羊生1 =5 WEI; J ULkrlJE : VCCfu iprac fa rrayBgCC旭 rocJPc1n 口Bfa/prawT.flGZTs ”.ee paLn忖 口CCfa/ipiw /diHlc wai *CCTftjprcw /irarrupTf.Fff/pnx/li

6、B*d*Rrgi CCfT/prgc/BHmi.niD, hGf/prcM /stat, CCffprXhT/uipfLft*fv/nx/verufln. v 1/prM/icrftirqi-flHfsifprac,naiEa; ih 口 dCC也依血,由-IF,CCfsgrg /pmc s旧ctL f wfp rnc / p FTC_pst - -dfv/pr HYPERLINK file:/knrf.fi /knrf.fiCJZfiifcpra juETr4gH修和ECjhEgCCiSRE五,pipSEUOf*/pra/p,cLDfsrprac /buLl E- 4n g恒/MM rt/L

7、nMH, WgZ飙44曲f明 口LOe,pfEe- v2TfiCrlt#扁1ML =CtTfiMmC W&|gt ,a过程持续较长时间.编译内核模块Makefile文件MakefileCC= gccMODCFLAGS := -Wall -D_KERNEL_ -DMODULE -DLINUXclock.o :clock.c /usr/include/linux/version.h$(CC) $(MODCFLAGS) -c clock.cecho insmod clock.o to turn it onecho rmmod clock to turn ig offecho编译完成之后生成clock

8、.o模块文件。注:此参考makefile文件包含错误,于是从网上寻找相关教程自行修改得到合适 的Makefile文件内核模块源代码clock.c#define MODULE#define MODULE_VERSION1.0”#define MODULE_NAMEclock” #include #include #include int proc_read_clock(char* page, char* start, off_t off,int count,int* eof,void* data)一一一int len;struct timeval xtime;do_gettimeofday(&x

9、time);len = sprintf(page,%d %dn,xtime.tv_sec,xtime.tv_usec);printk(clock: read_func()n);return len;/ proc_dir_entry 数据结构struct proc_dir_entry* proc_my_clock;int init_module().printk(clock: init_module()n);my_clock=create_proc_read_entry(clock,0,&proc_root, proc_read_clock, 0); printk(KERN_INFO %s %s

10、 has initialized.nMODULE_NAME,MODULE_VERSION);return 0;void cleanup_module()printk(clock: cleanup_module()n);remove_proc_entry(proc_my_clock-name, &proc_root);printk(KERN_INFO %s %s has removed.n, MODULE_NAME,MODULE_VERSION);MODULE_DESCRIPTION( clock module for gettimeofday of proc.);EXPORT_NO_SYMBO

11、LS;工餐4 卜 Kifp.上fniMI支事吐色盛电却用ZlT)至桎0)L q打开 坳 C 二二 Q QWrtqxtfdatlns MtDJLE.如He110rdeTire ELE二飞1盟小flraclimfe- -J.nwM/ktrTwl iH-finclijda:fsIll pro:,匕.科 c2f W cCTjrrt fcirt1, 8孔21dls dat-a) (int 15:mWwcf tli*Miiil. Hi”; dointjvb| ;Iw* = 中pag*, Jrtlno- .tw_sw ,r it Jrla. Tvjlwc 51 ;prLnthCclcch.;1M

12、fm C ro-tarn la-ri;!/ p rD._dlr_artnK_4iT_s*rtry* 庐leek;nt irdLt nodula |i( prirrthCc 1 co 1-1111;clw,QI;PFlHtk.|KEFH KF 狂,5res 3H1E IqlgJWl., hT r眸JWte:秋 tUJE_MW t 曲I : frrnm 1;voLd 门meo e* *牛位鹿口/* ttM a加载内核模块在系统root用户下运行用户态模块命令装载内核模块#insmod clock.o测试测试源代码gettime.c#include #include #include int mai

13、n(void)(struct timeval getSystemTime;char procClockTime256;int infile,len;gettimeofday(&getSystemTime,NULL);infile = open(/proc/clock,O_RDONLY);len = read(infile,procClockTime,256);close(infile);procClockTimelen = 0;printf(SystemTime is %d %dnProcClockTime is %sn,getSystemTime.tv_sec ,getSystemTime.

14、tv_usec,procClockTime);sleep(1);,hrf.Tcnil.hcFlilt !U_E:Hdri 口 ccJui priii:nDckTli*13S6 j.get tlngicifdji IoaTxffl -H.LL) j5/讥 epl( a7fl TJC/CloW ,C_REWLTJ ;Ion - rd| inf ila rocCl-eK kT ina,3S5-|i ;ClMClATlHI prwCl/M kru*lfln l - W :Is td -nProcCL ack I iiw is ,is -ia.sri I i.ria. tv .(! trxtrtll IBs t uxl pEi-OcL ach I irJi ;SlWdlf fl :程序测试输出结果为o小闻单削w 曲留甘 口小二 TS总杏RUft03,甘鼻毛中业盛史医,府里普UTETLk,一档/口1 加IrElydv -*fcrYtl .hJi |. ii ij. *diKrHald叨冉町文律共射破索31W1ZJM 曰工匹感SI文件交氧提注1日W日町用立型:391言眄月7日0 13文4世ZHS*3fi7Hoia宝牛国201斑1月B法mIE戏T

温馨提示

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

评论

0/150

提交评论