




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、v1.0可編輯可修改、構(gòu)建基本的實(shí)驗(yàn)環(huán)境基本實(shí)驗(yàn)環(huán)境與前提條件Windows7、Word2010、VmwareWorkstation、AdobeReaderReadHatLinux,gcc,vi將Linux內(nèi)核源代碼及配置文件傳送給虛擬機(jī)上的RedHatLinux系統(tǒng)配置網(wǎng)絡(luò)時(shí)遇到這個(gè)問(wèn)題,rooig'locaUiost:-日肚EdkV.l«wTermlrulGoHlpLtooT&Ioc3LhostrootJservicenetworkrestartShuttuiEdownloopbackintertace:IUhJSettingnetworkpaLramQtQrs:
2、UKBringin-gupluupbdck.luterlacu:OKBEJdiiRjiigupIn虹fðiQ:Delyrrnining.IPinfoniatlunfurethO.fdjled;n.ulinkpresent.CtiEcrk匚ablt!?1FWLEDJ口心工口|百hm與t=白口七1#DeterminingIPinformationforeth0failed;nolinkpresent.Checkcable通過(guò)查找資料發(fā)現(xiàn)是系統(tǒng)的Bug,解決方法如下:至U/etc/sysconfig/network-scripts/ifcfg-eth。在文件最后一行中加入11v1.0可
3、編輯可修改check_link_down()return1;文件,則同另夕卜如果存在/etc/sysconfig/networking/profiles/default/ifcfg-eth0樣在其中加入這一段東西即可,然后重啟系統(tǒng)。23設(shè)置網(wǎng)絡(luò)為DHCP重新啟動(dòng)就可以,啦,直接上圖'irwi修iHiUH.thfl"buH-vdWrirvidtvsrtariiH,最后將內(nèi)核代碼下載到/root目錄下、Linux內(nèi)核編譯、配置與調(diào)試內(nèi)核配置與編譯、解壓內(nèi)核源代碼文件v1.0可編輯可修改33tar-zxf、解壓后如下拷貝linux,命名為-rlinux 1-V ;> L J
4、*. b !U1a 4 H_ -k !S-X !M! 3. I -L ro3t(53cnlhoat root t cp rootlaccilhoBt root! anaconda-ks-cfg Lunfi-2.4.18 far MP.txt Jiislall. lug install.13g.svslog linaxrootlocalhosr rootl# mv confi£-2.4.18 for-rlinuxlinux2.4,101inus-2.4.18l.imiJL-2.L8.Ldi.gzLinuxkernelCGditiit.tk)cvwwarelodIs-a.B,z-590Z
5、12.tar.gzvimvare-TDOls-distrib、移動(dòng)到根目錄,替換掉.configMP.txt./linux-2.4.18/.configrooWlocalhostraotj#cdlinux-2-4.18/rooWlocalhostlinux-2.4.18IsatxhDv<uncailunii心u加kernelMakefileREADMEscriptsCOPYINGdriversinitlibmrREPORTING-BUGSCREDITSfsipcr(»tlocalho8tlinux-2.4.181#AINIAINERS11.confignetRules.makg
6、-rw-r一一r-1rootrootrnotelocalhostlinux-2B4.18#13850Ocl1321:45config、進(jìn)入目錄,配置和編譯內(nèi)核模塊makeoldconfigv1.0可編輯可修改Kerneldebugging(COKF1GJ)E8UG_KERNEL)Y/n/?Debughighremarvsupport(COMFIG_PEBUG_HIGFMEM)N/y/?!Debugmemoryillacations(COMFIGDEBUG_5LAB)Y/n/?lMemorynappedI/Odebugging(CONFIGJ)EBUG_IOVIRT)N/y/?Magic卯后Rq
7、keyCCONFIG_MAGIC_SYSRQ)Y/n/?Spinlockdebugging(CONF1G_DEBUG_SEINLOCKN/y/7VerboseHUG(Jrepoiting(adds7OKJ(CONFIG_DliBUG_BUGVEREQSE)¥/n/?J*EndufLinuxkernelcunflgurdtlon.4*rCJltftkLhetup-levtilMdkefilefurddJitiotldlCUitriglU'dtlull.*Next,yaumustrunKmakedep*.makedepI « P JlK/fircl"/i;iK
8、fi/nmrfovlt-fraiQ-pointermrch-iGBSbaund3ry=? , iiFErpp.r ,i Tint Man鄧rSm up Mui mcrukor pditflibf- - ''i-k prropy.c m壯看江 巾口kEl;4.18/include -wall fno-strict-allaslRi - 而cksu限.5 decietuBer.S iodelMs期1ct-protoypes -wno-trierphs ftiQ-coniTQii -pipe -mpreferred st a c k-C arrh/T3flG/Hb fristdfpm
9、ake2j ; EnterinH dirFctory "/root /1 iinux-2.4.18/archB/lib /r oot /1 iiiu 2,4.18/ ser ipi:® /-D_KERKE1_ -l/root/linu2> HdpppndLeivinr ditory '/re/Iinux-2.4.18/Brch/i3耽/lib leaving directon1 '/root/linux-2.4* 18r/root/ 1 in UK-21, 4.1 a/scripts/rikdp -D_ KFRKEL-T /ron t/1 j tiux
10、- 2.418/i.nc liide -Wh I L-strictpretijtypes1rifiraphs -02 -foqiit-fra«ie-pointer fno-strict-aliasing-fttQ-cooQJi -pipe -wreferred-slack-boundarv=2 -Mrch=ieafi - extble.c fault c init,c ioreuapBc > ,depend inalsel?1: Lpving direrrnry /roDt/liniEXmx.c oltf-checksuTi-c strstTUV a sus . c prorp
11、fis . c ptrace nemeiphare. c setup. r signal . r ismboo 5+c iwe.c trinpollne.s traps -c "l寫(xiě)ks_apf<c wrnse.c > .depend mmkelZl; Leavine dir c*c Tory " /ro t/I iniix - a. 4 - is/irch / i 386 /kern c 1 muke -c arch/i3B6/mr fatdep mflkeI2: Rntpring diTprtory '/r/inux-2.4,18/arch/138A
12、/mflpm工乂曾 up-date wxlverfilcmalkel: Entering diTectofry '/rrsot/liTiiux-Z,4,18*/rwt/linux-Zu 4.1 R/iiiirliid/ Hnux/miartvprsiioni-h updated 印心餐口: IiPvinR directory Vroot/liniBX-2.4.181|rrooiiDlocaho£t IIiiuk-2.4.ispud hu±L; -/H n UKt241ArocVglocaMMEL-ainl J ” nut g ka 匚/host -/&!Do
13、wnloid unri四流C Fr1 8 * 3 J: H AMmake cleanmake bzImage#v1.0可編輯可修改objeopv-0binary-R.note-Rrcomment-Scompressd/bvinliniaxcompresspd/bvmlinux.cuttools/buildbbootsectbsetupcompressed/tviilinux+ouTCURRENT>t>zImageRootdeviceis乩3)Boatsector512bytes.setupisZ52Kbytes.Systemis645kB1:Leavingdir#ctary'
14、;/root/limiK-I.4.18/arch/i386/baot1h'UULlULdlllUb1llnux'2.4.18pIsarchdriversipcMakefileREP0RT1MG-BUGSCOPYINGfskprriplmmRljp<iemakpCREDITSincludelibnetscriptsDocumentationinitlAISTAIMEftSREADMESystem.maprootlocalhostllnux-2.4.IS#vmlinuxIrooteiocaJJuostbootJffIsbboot5ectbbootsect.sb5etupbse
15、tup.scompressedMakefiletoolsbbootsect.0bootsect.sbsetup.oPhzlnagGinstall.ghsetup.svid-eo.sfr00tolacalho£tboot11bzlna,-rw-r一一r1rootroot63034oct4oo:22teLinagefe00tLocalhostbootiffl/lrgt,Unujc*2臥Q+18/ai:di,iMGe/bootKoctQlocalho£tbciotmakemodules內(nèi)核安裝與測(cè)試安裝內(nèi)核映像文件cparch/i386/boot/bzImage/boot/55-
16、_m£)f£_dir里>?*Lenrrn40口匕口lif?.4.18;聲r(shí)p;trrh/i3ftfi/txHJT/yizTriagp/boot/vrlinux-?.4.1SIrnnTloralhnsTrrwiQlocalhjistboot.bchair.blinux-3.4.UIn/bnntihitr<3-2rT.2O-®Srp.IhlQtl&dk*le-illfO-2.4.2C-SrDnfig-?.4.cunfiH-2,4.2卜取叩iniird.?o-s,imgkcrneLhInT+fniir1m骷曄,anoduleinfonoduleinf
17、Q-5snipns2,.d,b3V屏twe-napSvSttuHtldp-2,4.203systeurnap-ind,2Q-65npvmlinux-2,ISvmLinuxBvmLinux-2.4.20-9supvuilinuzvmlinuzsVfflLinUZB>np拷貝和安裝Linux系統(tǒng)映射文件,并創(chuàng)建其與系統(tǒng)映射文件之間的符號(hào)鏈接v1.0可編輯可修改#執(zhí)行命令makemodules_install以安裝可動(dòng)態(tài)加載的內(nèi)核模塊roote oral fiost 2.4.19.* Ifb. j .moctult!5.gtneric_STringksrtielmu du 1 es-. dep
18、aoduljefl. parpartmap nodules. ua bnap nodLLLc.pcinip pencilEdu Ltd s. u np b i u bind pLrootioca Lhast 2.4rl&J# pwd/Jlb/nodulM/2.4.1Aphm Manager_LuoL!flli>CdlliGtt 2.4.18_Set .jp and nmrmrprlnfer'inciules.ieeeijyiEi添加啟動(dòng)項(xiàng)的配置利用Vi編輯器,vi查看/所在的位置,為/dev/sda3Used AvailebLe Mounted cm3G1177G4170
19、184 47% /Lfoot®iocaihostFilesystpri/deV/sdalLtuuLfilu匚alihustrootledt/IK-blocks9206944root*v1.0可編輯可修改77重新啟動(dòng)系統(tǒng),從自己創(chuàng)建的內(nèi)核啟動(dòng)系統(tǒng)啟動(dòng)后查看內(nèi)核分另1J用unamer,和dmesg查看v1.0可編輯可修改FieEditV.lewGcHelp(rootPlotaliitjfitrootIffUiurti-r2.4.18rantjlhu&lrudlclnvsgLinuxversion(roojtLocaItiost,1ocaLdominJ(eccversion3.2.
20、?200302?(liedHitLinux3.7.2511*1FtiOctCXJ:21:4<ICffI2013三、Linux系統(tǒng)調(diào)用添加與實(shí)現(xiàn)在內(nèi)核增加系統(tǒng)調(diào)用結(jié)構(gòu)體structsrz_rusage可聲明如下:structsrz_rusagestructtimevalru_utime;/*usertimeused*/structtimevalru_stime;/*systemtimeused*/longru_majflt;/*majorpagefaults*/longru_minflt;/*minorpagefaults*/longru_nswap;/*swaps*/;添加到下的中rru
21、ctsrz_rusagestructtimevalru_utime;stnicrtimevalru_stirne;lung;lonoru_ninfIt;ionpru.nswap;添加的系統(tǒng)調(diào)用名稱為:intget_process_usage(pid_t,structsrz_rusage*);參考的getrusage和sys_getrusage的代碼在下面分析getrusage()和sys_getrusage()的源代碼1)數(shù)據(jù)Z構(gòu)rusage在頭文件中定義。structrusagestructtimevalru_utime;/*usertimeused*/#v1.0可編輯可修改struct t
22、imeval ru_stime;longru_maxrss;longru_ixrss;longru_idrss;longru_isrss;longru_minflt;longru_majflt;longru_nswap;longru_inblock;longru_oublock;longru_msgsnd;longru_msgrcv;longru_nsignals;longru_nvcsw;longru_nivcsw;;2)函數(shù) getrusage()/*/ It would make sense to put struct rusage in the task_struct,* except
23、 that would make the task_struct be *really big*. After* task_struct gets moved into malloc'ed memory, it would* make sense to do this. It will make moving the rest of the information* a lot simpler! (Which we're not doing right now because we're not* measuring them yet).* This is SMP sa
24、fe. Either we are called from sys_getrusage on ourselvessystemtimeused*/*maximumresidentsetsize*/*integralsharedmemorysize*/*integralunshareddatasize*/*integralunsharedstacksize*/*pagereclaims*/*pagefaults*/*swaps*/*blockinputoperations*/*blockoutputoperations*/*messagessent*/*messagesreceived*/*sig
25、nalsreceived*/*voluntarycontextswitches*/的作用是獲取系統(tǒng)資源使用情況。/*involuntary"*/99v1.0可編輯可修改* below(weknowwearen'tgoingtoexit/disappearandonlywechangeour* rusagecounters),orwearecalledfromwait4()onaprocesswhichis* eitherstoppedorzombied.Inthezombiedcasethetaskwon'tget* reapedtillshortlyafterthe
26、calltogetrusage(),inbothcasesthe* taskbeingexaminedisinafrozenstatesothecounterswon'tchange.* FIXME!Getthefaultcountsproperly!*/intgetrusage(structtask_struct*p,intwho,structrusage*ru)structrusager;memset(char*)&r,0,sizeof(r);switch(who)caseRUSAGE_SELF:=CT_TO_SECS(p->=CT_TO_USECS(p->=C
27、T_TO_SECS(p->=CT_TO_USECS(p->=p->min_flt;=p->maj_flt;=p->nswap;break;caseRUSAGE_CHILDREN:=CT_TO_SECS(p->=CT_TO_USECS(p->#v1.0可編輯可修改=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->
28、=CT_TO_SECS(p->+p->=CT_TO_USECS(p->+p->=p->min_flt+p->cmin_flt;=p->maj_flt+p->cmaj_flt;=p->nswap+p->cnswap;break;returncopy_to_user(ru,&r,sizeof(r)-EFAULT:0;3)sys_getrusage()只是調(diào)用了內(nèi)核函數(shù)getrusage(),是內(nèi)核提供給用戶的接口。asmlinkagelongsysgetUSage(intwho,structrusage*ru)if(who!=RU
29、SAGE_SELF&&who!=RUSAGE_CHILDREN)return-EINVAL;returngetrusage(current,who,ru);1111v1.0可編輯可修改編寫(xiě)應(yīng)用程序調(diào)用該系統(tǒng)(調(diào)用)過(guò)程在中添力口函數(shù)get_process_usage()和系統(tǒng)調(diào)用函數(shù)sys_get_process_usage()的代碼;目錄intget_process_usage(structtask_struct*p,structsrz_rusage*ru)structsrz_rusager;memset(char*)&r,0,sizeof(r);TFSO-一一曷孑J
30、define_NR_-J1.d.J二getxattr二W3229_NR_leExaECr230fgetxatcx232_NR_lisuxaEur232tdefineNR二二二six己二tr233define_NR_fliarxattr23defxne_NR_reiECvexatti:;35*define_NRIrejT.ovexattr236#detuneNRfren.ovexauur237#v1.0可編輯可修改#define._甌.getxattr229define_NR._lgetatrr230idefine_阪_fgetxatrr231define_-listxatrr232define
31、_NR_liistKattr233考defitiw._甌_flistxattr234_NR._rmove-xattr235define_-NR,_lremovexattr236define_皿_fremovxattr237define_NK_gei_process_usage238ongSYMBOL_NAME()的清單,該清單用來(lái)對(duì)sys_call_table口數(shù)組進(jìn)行初始化,該數(shù)組包含指向內(nèi)核中每個(gè)系統(tǒng)調(diào)用的指針。我們?cè)谇鍐巫詈筇砑右恍校?longSYMBOL_NAME(sys_get_process_usage)sitingSYMBCL_NAME.(sys_ni_sysoall/*23Cr
32、eserved皿皿淑松I-/63。.longSYMBOL_NAME.(sysni_syscall)/*reservedfor團(tuán)鼠躡7631s.longSYHBOL_NAME(sysni.syscall)/xreservec.fdi每32.long3YM5OL_NAME(3工_3工)/*reserved£oxg33.long5YMBOL_NAME(sy3_ni_3y3call>/*zcaerQGfor34.longSYMBOL_NAME(8ys_nx_Byeeall/*23Sreserved堂口發(fā)黑駛儂猿曷黑宓:.635,IonaSYMBOL_NAME(sys_nl_vscall
33、J7*reservedfor工X覬。靈兔麻匚工”,36salong5YlaI3CLNAME(sysn±sysca.ll)/*reservedfQrf二之耳二友之及司工*二637388NR_sy3calla-ayB_call_tak;le)/A,1ongSYM30L_NAME|sys_ni_sy-callj.1口Kg.i'L一zy<_r-;_:,=(!)/*225*/.long'1b_L_NAr«u(,:._r.i_=yi.izall)產(chǎn)reservedforseta":tr餐,.Icing-.xT-:I.-m-(t;_r7_-y-:-:)/*
34、reservedforISPtYJtTT=$lnr-SSYWBOJNAME(qyS_ni_Ey£8:L1)/*forfHArkarir7-Ions口'1'J.-rH!)/*rFSrvclfur卜.戶1lr1F*fhlungSYMSOUMMECsysj)i_syscall)/*230w.、rdfurL,Uidt11*/.long5YK30LJ4AMEsys_ni_syscall)/*reservedfOTfgetxattr*/.lar.fi5¥M3Cl_J4AME(sy_jiijyacall)/reservedforlistxdttr*/.LorKSYNBOL
35、_HMtE(bvs_Jii_syscall)/*reservedforlllstxattr*/.1岫咨SYMBOL_NAN_(sys_ni_Syscal1)Areserved±orflistxattr*/JongSYME3L_NAME(Gys_ni,syscal1)產(chǎn)235reservedtorrencv&xattr*ior:gS¥MBOLJ4AM£(syg_n±_gyEcall)/*reiserveciforIreTKZivexJttrInrnA'rMKIrr7U-F3111/*forTr-二曠訃*/.lung匕"I_priM
36、比,-INSERT1313v1.0可編輯可修改編譯安裝內(nèi)核以后的啟動(dòng)界面出bvuL=/dwWbduJefiihlt=OCiHeOUt=lD5plashiinage-(hdo3廿l/grub/spl-ash,xprn.gztitleMIL2.4.16-etztcHjt(hdtO90)kern總1/'nllnux-2.4«18-sriiroe口口t=,d&v/xddLmtitleRedHatLinuxz.-l.Ltflabroot(hdO.O)kerne1/iti1inux-2.4.ISrorooT=/dev/sda3titleRdHatLinux(2=4.20-8snp
37、)root(hi43pCi)kernel/vi1inuz-z.a.20-roroot=lABEL=jrhdc=lde-scsiinitrdl/mitrd-2.4.20-esnp.ingtitleRedHat'LiTiux-up(2.4.20-BJroot(hdOa0)keriiel/v11Ifiuz-2_4.20-sroroot-LAHEL=/hde-ide-scsl#262-9Hot;10jmQpmg1flecgWntuipgrub,conf'126wordiprocessorfooilocajho&tHiiK-z.4J.rz/kerndQfoottocahost.h
38、oougnjbOsacOctos723PM四、編寫(xiě)程序調(diào)用新的系統(tǒng)調(diào)用程序一頭文件testsyscallpid_no執(zhí)行結(jié)果v1.0可編輯可修改1515Dmesg查看信息v1.0可編輯可修改#程序二testsyscallpid_nov1.0可編輯可修改£ileyiewJjermlnalgoHelpo&tQlochrfloc-jtestssceetpv_syscall2.crootlocalhostroot#./testsyscall21S05IShangRangZhuSuccessfUsertime:Oseconds:640000msecondsISystem_time:口seconds;200000msecondsMinlostpages:1102Maxlostpage:2148Changepagetines:0rooteiocalhostrootdmesg查看1717v1.0可編輯可修改1818附件:源程序一:第一種實(shí)現(xiàn)方法/#include</root/</root/源程序v1.0可編輯可修改/
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 建設(shè)工程項(xiàng)目質(zhì)量控制系統(tǒng)的運(yùn)行田海燕課件
- 湖北省襄陽(yáng)地區(qū)2025年數(shù)學(xué)四年級(jí)第二學(xué)期期末綜合測(cè)試模擬試題含解析
- 1.2復(fù)雜多變的關(guān)系課件- -2024-2025學(xué)年統(tǒng)編版道德與法治九年級(jí)下冊(cè)
- 復(fù)旦大學(xué)《公共管理學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 跨境電話詐騙的識(shí)別與應(yīng)對(duì)策略
- 信陽(yáng)涉外職業(yè)技術(shù)學(xué)院《建筑設(shè)計(jì)上》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東新安職業(yè)技術(shù)學(xué)院《中醫(yī)學(xué)基礎(chǔ)與適宜技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024-2025學(xué)年林芝地區(qū)朗縣三下數(shù)學(xué)期末聯(lián)考模擬試題含解析
- 2025屆浙江省杭州市濱江區(qū)四年級(jí)數(shù)學(xué)第二學(xué)期期末學(xué)業(yè)水平測(cè)試試題含解析
- 遠(yuǎn)程醫(yī)療在慢性病管理中的應(yīng)用及效果評(píng)估報(bào)告
- 對(duì)建筑工程施工轉(zhuǎn)包違法分包等違法行為認(rèn)定查處管理課件
- 營(yíng)養(yǎng)性缺鐵性貧血患兒的護(hù)理 (兒童護(hù)理課件)
- 八大問(wèn)題性肌膚培訓(xùn)課件
- 記敘的順序超實(shí)用課件
- 二年級(jí)下學(xué)期家長(zhǎng)會(huì)班主任發(fā)言稿張課件
- 個(gè)人理財(cái)(第三版)第01章導(dǎo)論
- 鉆機(jī)交接班記錄表
- 全國(guó)初中數(shù)學(xué)聯(lián)賽試題30套
- IATF16949質(zhì)量體系基礎(chǔ)知識(shí)培訓(xùn)
- 內(nèi)科學(xué)-高血壓病
- 車間6S管理實(shí)施方案
評(píng)論
0/150
提交評(píng)論