




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、安全操作系統(tǒng)實(shí)驗(yàn)指導(dǎo)書趙鋒2007-12-5緒論實(shí)驗(yàn)報(bào)告內(nèi)容1,命令接口的使用2,多進(jìn)程程序設(shè)計(jì)(同步、互斥、通信)3,linux的文件操作4,Socket網(wǎng)絡(luò)編程實(shí)驗(yàn)報(bào)告的格式和要求實(shí)驗(yàn)報(bào)告的格式1,封皮(姓名 班級 學(xué)號)2,試驗(yàn)?zāi)康?,實(shí)驗(yàn)內(nèi)容4,試驗(yàn)步驟5,試驗(yàn)結(jié)論實(shí)驗(yàn)報(bào)告的要求l 按照要求格式,字體用宋體,字號小四l 每個實(shí)驗(yàn)報(bào)告篇幅控制在6-8頁l 總共8次試驗(yàn)課,需要寫4個實(shí)驗(yàn)報(bào)告l 以班級為單位按時上交實(shí)驗(yàn)內(nèi)容1,linux基本命令的使用: ls、cd、chmod等命令的使用2,linux命令接口的使用: Vi編輯器與shell程序的編寫3,linux的C語言開發(fā): gcc、g
2、db、make的使用4,linux多線程設(shè)計(jì): fork等系統(tǒng)調(diào)用的使用5,linux下程序的同步: 同步算法的實(shí)現(xiàn)6,linux下程序的通信: 進(jìn)程間的通信7,linux的文件操作: 有關(guān)文件操作的系統(tǒng)調(diào)用8,linux下的網(wǎng)絡(luò)程序設(shè)計(jì)實(shí)驗(yàn)一 基本命令的使用實(shí)驗(yàn)?zāi)康?熟悉linux的基本命令 熟悉運(yùn)用Linux的在線求助系統(tǒng)。(man info help)實(shí)驗(yàn)內(nèi)容1,文件與磁盤操作man/info cd ls(-a -l -h -t) cp(-R -f -l) mv cat/less/more pwd mkdir rm(-r -f) chmod -R user:group file find
3、(-name -user) grep df(-h) mount /umount clear time 2,用戶管理useradd (-g -d -s -G) userdel (-r) passwd groupadd/groupdelgpasswd(-a -d) su kernelversion hostname3,軟件安裝rpm( -i -e -ivh -U -q -qa -qd -ql -qi -qR)tar4,網(wǎng)絡(luò)命令ifconfig(up/down) netstate (-t -p -u)5,進(jìn)程管理ps (-a -f -x) ; pstree -pu ; kill -9 pid ; l
4、dconfigkillall reboot halt實(shí)驗(yàn)二 命令接口的使用實(shí)驗(yàn)?zāi)康?1熟練使用vi編輯器 2,熟悉Shell程序的設(shè)計(jì)實(shí)驗(yàn)內(nèi)容: 1 vi編輯器的使用1,三種模式進(jìn)入命令模式vi <文件名>進(jìn)入編輯模式i/I a/A o/O ESC進(jìn)入特殊模式:q :q! :e!:w :wq :wq file :n1,n2 w file:r file:e filename :!command2,光標(biāo)移動b e j k l h 0 $ ctrl+f ctrl+bn+space n+enter 6G G H L3,刪除操作x dw D dd4,替換操作r cw C cc5,查詢命令/a
5、bc ?abc n N :n1,n2 s/word1/word2/gc6,拷貝粘貼y Y 2yy p P 7,其他命令:set nu; :set nonu; u .;v y pgf CTRL-SHIFT-62 shell程序的編寫環(huán)境變量 echo env set $ “” ? (1)熟悉shell script的結(jié)構(gòu)和運(yùn)行、調(diào)試方法。(2)熟悉shell script的變量聲明方法及其輸入輸出。declare i a=3;read(3)熟悉shell script的分支結(jié)構(gòu)。編寫shell script文件test1.sh,判斷用戶根目錄下是否有名為test的文件或者目錄,如果有的話,將其刪
6、除。if -e test ; then xxx else xxx fi (4)熟悉shell script的循環(huán)結(jié)構(gòu)。編寫shell script文件test2.sh,實(shí)現(xiàn)1到100所有奇數(shù)的和并輸出。試驗(yàn)三 linux的C語言開發(fā)試驗(yàn)?zāi)康?熟悉gcc的使用 熟悉gdb的使用 熟悉make的使用試驗(yàn)內(nèi)容1gcc (1)過程gcc hello.c o hello輸入選項(xiàng)輸出命令注釋.c -E .i cpp預(yù)編譯,文件包含、條件編譯、宏展開.i -S .scc1 編譯,生成匯編文件,注意命令的路徑.s -c .o as匯編,生成目標(biāo)文件.o ELFld鏈接(2)常用選項(xiàng)-v 顯示進(jìn)度-Wall 顯
7、示警告信息-I頭文件路徑,不要空格-L庫路徑,不要空格-lName庫名字(libName.或者libName.so)-shared編譯成共享庫-static 鏈接靜態(tài)庫-fpicfPIC 編譯成共享庫-On優(yōu)化-Dmacro=BAR在命令行定義預(yù)處理宏FOO,其值為BAR -Wl,option 傳遞給ld程序option 選項(xiàng),比如-Wl,-dn和-Wl,-dy注意區(qū)別:gcc hello.c o hello.static Wl,-dn-Bstatic-staticgcc hello.c o hello.dynaticWl,-dy-Bdynamic 默認(rèn)(3)c+編寫hello.cxx程序:#
8、include <iostream.h>using namespce std;int main()Cout<<”hello”<<endl;Return 0;編譯命令:g+ hello.cxx -o hello(4)靜態(tài)庫的建立和使用a)建立gcc -c add.cgcc -c sub.car -r libaddsub.a add.o sub.o (查ar命令,注意/r/t/x的用法)b)調(diào)用gcc test2.c -o test2.static -I ./ -L ./ -Wl,-dn laddsub-Wl,-dn后面的庫使用靜態(tài)版本(5)共享庫的建立和使用a
9、)建立 gcc -fpic -shared add.c sub.c -o libaddsub.sob)安裝為了讓動態(tài)鏈接庫為系統(tǒng)所認(rèn)識及共享, 就需要運(yùn)行l(wèi)dconfig命令。(man ldconfig,注意命令作用)默認(rèn)目錄/lib和/usr/lib配置文件/etc/ld.so.conf內(nèi)所列的目錄緩存文件/etc/ld.so.cache四種安裝方式:#cp libaddsub.so /usr/bin #ldconfig #pwd>>/etc/ld.so.conf #ldconfig #ldconfig pwd /更新緩存無效 #export LD_LIBRARY_PATH=&q
10、uot;." /另開shell則無效c)共享調(diào)用gcc test2.c -o test2 -I ./ -L ./ -Wl,-dy laddsub-Wl,-dy用于指定鏈接動態(tài)庫版本,默認(rèn)d)動態(tài)調(diào)用Linux 提供 4 個庫函數(shù)(dlopen, dlerror, dlsym 和 dlclose),一個 include 文件(dlfcn.h)以及兩個共享庫(靜態(tài)庫 libdl.a 和動態(tài)庫 libdl.so),以支持動態(tài)鏈接裝入器。gcc test2.c -o test2 ldl參考:#include <stdio.h>#include <dlfcn.h>int
11、 main()int a,b;scanf("%d,%d",&a,&b);void *pHandle;int (*sub)(int m,int n);pHandle=dlopen("libsub.so",RTLD_LAZY);sub=dlsym(pHandle,"sub");printf("%dn",sub(a,b);dlclose(pHandle);return 0;附:幾個命令ldd查看文件的依賴關(guān)系nm查看文件的符號表,比如:nm test2|grep addobjdump 查看文件的信息2gd
12、b(1) 準(zhǔn)備gcc -g(2) 打開gdb filename/file filename(3) 運(yùn)行run/next/step(進(jìn)入子程序)/continue(4) 設(shè)置斷點(diǎn)break/delete(5) 顯示表達(dá)式的值print exp立即輸出表達(dá)式的值watch exp表達(dá)式的值發(fā)生變化時,程序停止并輸出其新舊值display exp程序一旦停止就顯示表達(dá)式的值(6) 顯示棧的信息backtrace/backtrace fullframe traceNum(7) 顯示程序的信息list/list num/list funcinfo breakpoints/info breakinfo f
13、unc/into var /info filesinfo local /info prog/info argsdisassemble func/info frame/ examine(x) addr(8) 退出quit 幫助help 執(zhí)行命令 shell command str3make(1) Make命本: Make flags macro definitions targets flags如果沒有"-f"參數(shù),則系統(tǒng)將默認(rèn)當(dāng)前目錄下名為makefile或者名為Makefile的文件為描述文件。在Linux中, GNU make 工具在當(dāng)前工作目錄中按照GNUmakefi
14、le、makefile、Makefile的順序搜索 makefile文件。 macro definitionsmakefile文件中的變量定義 targetsmake的目標(biāo),默認(rèn)是makefile文件中的第一個目標(biāo)(2) makefile文件:規(guī)則的集合 a:b command a為目標(biāo)??梢允?o,也可以是ELF,還可以是一個偽目標(biāo)。 b為依賴文件。就是,要生成那個a所需要的文件或是目標(biāo)。 command也就是make需要執(zhí)行的,從b生成a的命令(3)其他變量:定義 CFLAGS=-c 引用 $(CFLAGS) 特殊變量$目標(biāo)文件,$所有的依賴文件,$<第一個依賴文件命令:不顯示命令內(nèi)
15、容 命令出錯不處理 - 多條相關(guān)命令 ;偽目標(biāo)與自動推導(dǎo): add.o : addsub.h .PHONY : clean clean :rm edit $(objects)文件搜索:特殊變量 VPATH=./include:./include特殊指令 vpath %.h ./include:./include4 實(shí)驗(yàn)任務(wù)(1)編寫程序:main函數(shù)所在的文件名字為test3.c,程序功能為從鍵盤輸入兩個數(shù)求其和(調(diào)用add.c中的函數(shù))和差(調(diào)用sub.c中的函數(shù))。(2)編寫一個makefile文件,并用make編譯剛才的程序(3)設(shè)置斷點(diǎn),觀察點(diǎn),調(diào)試程序?qū)嶒?yàn)四 linux多進(jìn)程設(shè)計(jì)實(shí)驗(yàn)
16、目的1.了解進(jìn)程與程序的區(qū)別,加深對進(jìn)程概念的理解;2.了解fork( )系統(tǒng)調(diào)用的返回值,掌握用fork()創(chuàng)建進(jìn)程的方法;實(shí)驗(yàn)內(nèi)容 1,用vi輸入下面的程序,編譯、調(diào)試、輸出結(jié)果#include <sys/types.h>#include <unistd.h>int main()pid_t child_pid;/*fork函數(shù)*作用:系統(tǒng)調(diào)用,產(chǎn)生一個子進(jìn)程,調(diào)用一次返回兩次*返回值:pid_t類型,在頭文件中定義,通常為整形*0子進(jìn)程返回*ID父進(jìn)程返回的子進(jìn)程ID*/child_pid=fork();if(child_pid=0)int i=0;for(;i&l
17、t;5;i+)printf("childn");sleep(1);/wait one secondelseprintf("child's pid is %d",child_pid);int j=0;for(;i<5;i+)printf("childn");sleep(1);return 0; 2,用man察看fork、sleep的用法 3,試驗(yàn)任務(wù)編寫一C語言程序,實(shí)現(xiàn)在程序運(yùn)行時通過系統(tǒng)調(diào)用fork( )創(chuàng)建兩個子進(jìn)程,使父、子三進(jìn)程并發(fā)執(zhí)行,父親進(jìn)程執(zhí)行時屏幕顯示“I am father”,兒子進(jìn)程執(zhí)行時屏幕顯示“I
18、 am son”,女兒進(jìn)程執(zhí)行時屏幕顯示“I am daughter”。實(shí)驗(yàn)五 Linux進(jìn)程間的同步實(shí)驗(yàn)?zāi)康?.掌握進(jìn)程并發(fā)執(zhí)行的原理,理解進(jìn)程并發(fā)執(zhí)行的特點(diǎn),區(qū)分進(jìn)程并發(fā)執(zhí)行與串行執(zhí)行;2.熟悉wait、exit等系統(tǒng)調(diào)用。 3.熟悉信號同步的方法。實(shí)驗(yàn)內(nèi)容 1.用man察看wait、exit的用法 2.修改實(shí)驗(yàn)四的程序,在父、子進(jìn)程中分別使用wait、exit等系統(tǒng)調(diào)用“實(shí)現(xiàn)”其同步推進(jìn),多次反復(fù)運(yùn)行改進(jìn)后的程序,觀察并記錄運(yùn)行結(jié)果。實(shí)驗(yàn)六 Linux進(jìn)程間的通信實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)如何利用管道機(jī)制、消息緩沖隊(duì)列、共享存儲區(qū)機(jī)制進(jìn)行進(jìn)程間的通信,并加深對上述通信機(jī)制的理解。實(shí)驗(yàn)內(nèi)容1了解系統(tǒng)調(diào)用
19、pipe()、msgget()、msgsnd()、msgrcv()、msgctl()、shmget()、shmat()、shmdt()、shmctl()的功能和實(shí)現(xiàn)過程。semget() semop() semctl()2編寫一C語言程序,使其用管道來實(shí)現(xiàn)父子進(jìn)程間通信。子進(jìn)程向父進(jìn)程發(fā)送字符串“is sending a message to parent!”;父進(jìn)程則從管道中讀出子進(jìn)程發(fā)來的消息,并將其顯示到屏幕上,然后終止。3運(yùn)行該程序,觀察、記錄并簡單分析其運(yùn)行結(jié)果。實(shí)驗(yàn)七 Linux文件操作實(shí)驗(yàn)?zāi)康膹?fù)習(xí)標(biāo)準(zhǔn)C語言的文件操作函數(shù),熟悉linux有關(guān)文件操作的系統(tǒng)調(diào)用,并理解他們之間的關(guān)系
20、。實(shí)驗(yàn)內(nèi)容1、標(biāo)準(zhǔn)的文件操作的函數(shù)#include <stdio.h>文件指針(FILE)fopen/fclose,fread/fwrite,fputc/fgetc,fprintf/fscanf,fseek/frewind,remove,rename,feof 2、系統(tǒng)調(diào)用中的文件操作#include <unistd.h>#incldue <sys/types.h>#include <sys/stat.h>#include <fcntl.h>文件描述符(int)open/close,creat/unlink,read/write,lseek,eof mkdir/rmdir,opendir/closedir,readdir,stat,access3建立一個目錄(mkdir),在目錄下建立兩個文件(creat)a.txt、b.bin;在a.txt中輸入你的姓名和學(xué)號;在b.bin中輸入你的年齡
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年安全評價師(中級)職業(yè)技能鑒定安全檢測案例分析試題
- 2025年文職人員招聘考試公共科目試卷四十三:軍事裝備維護(hù)
- 2025年征信數(shù)據(jù)分析挖掘考試題庫:征信數(shù)據(jù)分析挖掘項(xiàng)目評估標(biāo)準(zhǔn)
- 2025年會計(jì)職稱考試《初級會計(jì)實(shí)務(wù)》章節(jié)重難點(diǎn)突破實(shí)戰(zhàn)案例與解析試題
- 2025年聚碳酸酯(PC)及合金項(xiàng)目立項(xiàng)申請報(bào)告
- 2025年鍛造工(高級)職業(yè)技能鑒定真題分析與備考
- 2025年德語TestDaF閱讀真題試卷:德語閱讀能力全面訓(xùn)練卷
- 2025年對外漢語教師資格證考試課程與教學(xué)論試題
- 寵物食品分銷協(xié)議
- 個人工資增長證明書年收入增長證明(5篇)
- 2025-2030年中國期貨行業(yè)市場深度調(diào)研及競爭格局與投資策略研究報(bào)告
- 2025-2030年中國農(nóng)業(yè)科技行業(yè)市場深度調(diào)研及前景趨勢與投資研究報(bào)告
- 成人重癥患者顱內(nèi)壓增高防控護(hù)理專家共識
- 2025至2030年中國腫瘤治療行業(yè)市場發(fā)展?jié)摿扒熬皯?zhàn)略分析報(bào)告
- 危險化學(xué)品-經(jīng)營安全管理制度與崗位操作流程
- 2024年河南省豫地科技集團(tuán)有限公司招聘真題
- 2025年高考語文真題作文深度分析之全國二卷作文寫作講解
- 湖南省2025年農(nóng)村訂單定向本科醫(yī)學(xué)生培養(yǎng)定向就業(yè)協(xié)議書、健康承諾書、資格審核表
- (2025)黨內(nèi)法規(guī)知識測試題庫及答案
- 餐飲老人臨時用工協(xié)議書
- T/SHSOT 015.1-2024皮膚角質(zhì)層膠帶剝離方法及應(yīng)用第1部分:角質(zhì)層剝離方法
評論
0/150
提交評論