ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:20.81KB ,
资源ID:4258143      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4258143.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(操作系统实验指导.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

操作系统实验指导.docx

1、操作系统实验指导安全操作系统实验指导书2007-12-5绪论实验报告内容1,命令接口的使用2,多进程程序设计(同步、互斥、通信)3,linux的文件操作4,Socket网络编程实验报告的格式和要求实验报告的格式1,封皮(姓名 班级 学号)2,试验目的3,实验内容4,试验步骤5,试验结论实验报告的要求按照要求格式,字体用宋体,字号小四每个实验报告篇幅控制在6-8页总共8次试验课,需要写4个实验报告以班级为单位按时上交实验内容1,linux基本命令的使用: ls、cd、chmod等命令的使用2,linux命令接口的使用: Vi编辑器与shell程序的编写3,linux的C语言开发: gcc、gdb

2、、make的使用4,linux多线程设计: fork等系统调用的使用5,linux下程序的同步: 同步算法的实现6,linux下程序的通信: 进程间的通信7,linux的文件操作: 有关文件操作的系统调用8,linux下的网络程序设计实验一 基本命令的使用实验目的 熟悉linux的基本命令 熟悉运用Linux的在线求助系统。(man info help)实验内容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/groupdel gpasswd(-a -d) su kernelversion hostname3,软件安装rpm( -i -e -ivh -U -q -qa -qd -ql -qi -qR)tar4,网络命令ifconfig(up/down) netstate (-t -p -u)5,进程管理ps (-a -f -x) pstree -pu kill -9 pid ldconfig

4、killall reboot halt实验二 命令接口的使用实验目的 1熟练使用vi编辑器 2,熟悉Shell程序的设计实验内容: 1 vi编辑器的使用1,三种模式进入命令模式vi 进入编辑模式i/I a/A o/O ESC进入特殊模式:q :q! :e!:w :wq :wq file :n1,n2 w file:r file:e filename :!command2,光标移动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,查询命令/abc ?abc n N :n1,n2

5、 s/word1/word2/gc6,拷贝粘贴y Y 2yy p P 7,其他命令:set nu; :set nonu; u .;v y pgf CTRL-SHIFT-62 shell程序的编写环境变量 echo env set $ “” ? (1)熟悉shell script的结构和运行、调试方法。(2)熟悉shell script的变量声明方法及其输入输出。declare i a=3;read(3)熟悉shell script的分支结构。编写shell script文件test1.sh,判断用户根目录下是否有名为test的文件或者目录,如果有的话,将其删除。if -e test ; the

6、n xxx else xxx fi (4)熟悉shell script的循环结构。编写shell script文件test2.sh,实现1到100所有奇数的和并输出。试验三 linux的C语言开发试验目的 熟悉gcc的使用 熟悉gdb的使用 熟悉make的使用试验内容1 gcc (1)过程gcc hello.c o hello输入 选项 输出 命令 注释.c -E .i cpp 预编译,文件包含、条件编译、宏展开.i -S .s cc1 编译,生成汇编文件,注意命令的路径.s -c .o as 汇编,生成目标文件.o ELF ld 链接(2)常用选项-v 显示进度-Wall 显示警告信息-I

7、头文件路径,不要空格-L 库路径,不要空格-lName库名字(libName.或者libName.so)-shared 编译成共享库-static 链接静态库-fpicfPIC 编译成共享库-On 优化-Dmacro=BAR在命令行定义预处理宏FOO,其值为BAR -Wl,option 传递给ld程序option 选项,比如-Wl,-dn和-Wl,-dy注意区别:gcc hello.c o hello.static Wl,-dn-Bstatic-staticgcc hello.c o hello.dynaticWl,-dy-Bdynamic 默认(3)c+编写hello.cxx程序:#incl

8、ude using namespce std;int main()Cout”hello”/etc/ld.so.conf #ldconfig #ldconfig pwd /更新缓存无效 #export LD_LIBRARY_PATH=. /另开shell则无效c)共享调用gcc test2.c -o test2 -I ./ -L ./ -Wl,-dy laddsub-Wl,-dy用于指定链接动态库版本,默认d)动态调用Linux 提供 4 个库函数(dlopen, dlerror, dlsym 和 dlclose),一个 include 文件(dlfcn.h)以及两个共享库(静态库 libdl.

9、a 和动态库 libdl.so),以支持动态链接装入器。gcc test2.c -o test2 ldl参考:#include #include int 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 查看文件的依赖关系nm 查看文件的符号表,比如:nm t

10、est2|grep addobjdump 查看文件的信息2 gdb(1) 准备gcc -g(2) 打开gdb filename/file filename(3) 运行run/next/step(进入子程序)/continue(4) 设置断点break/delete(5) 显示表达式的值 print exp 立即输出表达式的值 watch exp 表达式的值发生变化时,程序停止并输出其新旧值 display exp 程序一旦停止就显示表达式的值(6) 显示栈的信息 backtrace/backtrace full frame traceNum(7) 显示程序的信息 list/list num/l

11、ist func info breakpoints/info break info func/into var /info files info local /info prog/info args disassemble func/info frame/ examine(x) addr(8) 退出quit 帮助help 执行命令 shell command str3 make(1) Make命本: Make flags macro definitions targets flags如果没有-f参数,则系统将默认当前目录下名为makefile或者名为Makefile的文件为描述文件。在Linu

12、x中, GNU make 工具在当前工作目录中按照GNUmakefile、makefile、Makefile的顺序搜索 makefile文件。 macro definitionsmakefile文件中的变量定义 targetsmake的目标,默认是makefile文件中的第一个目标(2) makefile文件:规则的集合 a:b command a为目标。可以是.o,也可以是ELF,还可以是一个伪目标。 b为依赖文件。就是,要生成那个a所需要的文件或是目标。 command也就是make需要执行的,从b生成a的命令 (3)其他变量: 定义 CFLAGS=-c 引用 $(CFLAGS) 特殊变量

13、$目标文件,$所有的依赖文件,$第一个依赖文件命令: 不显示命令内容 命令出错不处理 - 多条相关命令 ;伪目标与自动推导: add.o : addsub.h .PHONY : clean clean : rm edit $(objects)文件搜索: 特殊变量 VPATH=./include:./include 特殊指令 vpath %.h ./include:./include4 实验任务(1)编写程序:main函数所在的文件名字为test3.c,程序功能为从键盘输入两个数求其和(调用add.c中的函数)和差(调用sub.c中的函数)。(2)编写一个makefile文件,并用make编译刚

14、才的程序(3)设置断点,观察点,调试程序实验四 linux多进程设计实验目的1.了解进程与程序的区别,加深对进程概念的理解;2.了解fork( )系统调用的返回值,掌握用fork()创建进程的方法;实验内容 1,用vi输入下面的程序,编译、调试、输出结果 #include #include int main() pid_t child_pid; /*fork函数 *作用:系统调用,产生一个子进程,调用一次返回两次 *返回值:pid_t类型,在头文件中定义,通常为整形 * 0 子进程返回 * ID 父进程返回的子进程ID */ child_pid=fork(); if(child_pid=0)

15、int i=0; for(;i5;i+) printf(childn); sleep(1);/wait one second else printf(childs pid is %d,child_pid); int j=0; for(;i5;i+) printf(childn); sleep(1); return 0; 2,用man察看fork、sleep的用法 3,试验任务编写一C语言程序,实现在程序运行时通过系统调用fork( )创建两个子进程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father”,儿子进程执行时屏幕显示“I am son”,女儿进程执行时屏幕显示“I

16、am daughter”。实验五 Linux进程间的同步实验目的1.掌握进程并发执行的原理,理解进程并发执行的特点,区分进程并发执行与串行执行;2.熟悉wait、exit等系统调用。 3.熟悉信号同步的方法。实验内容 1.用man察看wait、exit的用法 2.修改实验四的程序,在父、子进程中分别使用wait、exit等系统调用“实现”其同步推进,多次反复运行改进后的程序,观察并记录运行结果。实验六 Linux进程间的通信实验目的学习如何利用管道机制、消息缓冲队列、共享存储区机制进行进程间的通信,并加深对上述通信机制的理解。实验内容1了解系统调用pipe()、msgget()、msgsnd(

17、)、msgrcv()、msgctl()、shmget()、shmat()、shmdt()、shmctl()的功能和实现过程。semget() semop() semctl()2编写一C语言程序,使其用管道来实现父子进程间通信。子进程向父进程发送字符串“is sending a message to parent!”;父进程则从管道中读出子进程发来的消息,并将其显示到屏幕上,然后终止。3运行该程序,观察、记录并简单分析其运行结果。实验七 Linux文件操作实验目的复习标准C语言的文件操作函数,熟悉linux有关文件操作的系统调用,并理解他们之间的关系。实验内容1、标准的文件操作的函数 #incl

18、ude 文件指针(FILE) fopen/fclose,fread/fwrite,fputc/fgetc,fprintf/fscanf,fseek/frewind,remove,rename,feof 2、系统调用中的文件操作 #include #incldue #include #include 文件描述符(int) open/close,creat/unlink,read/write,lseek,eof mkdir/rmdir,opendir/closedir,readdir,stat,access3建立一个目录(mkdir),在目录下建立两个文件(creat)a.txt、b.bin;在a

19、.txt中输入你的姓名和学号;在b.bin中输入你的年龄的二进制表示。4.编写程序实现对文本文件指定行的读取。附录man的使用1,man的介绍 linux下的man页包括用户命令、系统调用、库函数等的帮助文档。其中每一类别对应一个section,每一个section对应一个数字id。常用的类别以及对应的数字如下:(1) 用户命令User commands(2) 系统调用System calls(3) 标准库函数Standard library functions(8) 系统管理命令System/administrative commands2,man的命令行参数详细参考#man man,常见的

20、有(以sleep为例子)#man sleep 显示用户命令(1)中sleep的man页#man 3 sleep 显示库函数(3)中sleep的man页#man -f sleep 显示名称为sleep的所有man页#man -k sleep 显示行描述中包含sleep的所有man页#man -K sleep 显示页内包含sleep的所有man页3,man的浏览命令详细输入h或者H查看,常见的有w 向下翻一页d 向上翻半页f 向上翻一页e 向下翻一行y 向上翻一行/str 向下搜索strstr 向上搜索strn 下一个strhelp命令1,ar help2,(gdb)help等设置环境变量:全局设置:直接修改 /etc/profile针对用户修改:修改 /.bashrc /.bash_profie添加变量:export PEAK=“zhao feng”:peakzhao:$PEAK删除变量:unset PEAK其他命令:env/set

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1