武汉理工大学学生实验报告书实验课程名称操作系统开课学院计算机科学与技术学院指导老师姓名学生姓名学生专业班级201—201学年第学期学生学号实验课成绩实验课程名称:操作系统实验项目名称Linux键盘命令和vi实验成绩实验者专业班级组别同组者实验日期年月日第一部分:实验分析与设计(可加页)1、实验内容描述(问题域描述)掌握Linux系统键盘命令的使用方法。2、实验设计(包括实验方案设计,实验手段的确定,实验步骤,实验过程等)Vi编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi。1.进入vi在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面:例如:$vimyfile有一点要注意,在进入vi之后,是处于“命令行模式”,要切换到“插入模式”才能够输入文字。2.切换至插入模式编辑文件在“命令行模式”下按一下字母“i”就可以进入“插入模式”,这时候就可以开始输入文字了。3.Insert的切换处于“插入模式”,就只能一直输入文字,按一下“ESC”键转到”命令行模式”能够删除文字。4.退出vi及保存文件在“命令行模式”下,按一下“:”冒号键进入“Lastlinemode”,例如::wmyfilename:wq(输入”wq”,存盘并退出vi):q!(输入q!,不存盘强制退出vi)三、主要实验工具、仪器设备及耗材安装Linux系统的计算机一台。第二部分:实验结果分析(可加页)1、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)在整个过程中,最困难的就是记忆整个Vi命令。在查阅资料的情况下,这个问题得到了解决。2、实验结果描述1.进入vi在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面图1vi主界面2.切换至插入模式编辑文件在“命令行模式”下按一下字母”i”就可以进入”插入模式”。3.退出vi及保存文件在”命令行模式”下,按一下”:”冒号键进入”Lastlinemode”;输入wfilename将文章以指定的文件名filename保存;输入wq存盘并退出vi。将编辑的内容以文件的形式保存在根目录下,如图2所示。图2图2根目录文件的显示3、实验小结、建议及体会通过这次实验对Linux操作系统有了初步的了解并掌握了一些Linux系统常用的命令。感觉命令太多,需要多加记忆并配合练习才可以。实验课程名称:操作系统实验项目名称Linux下C编程实验成绩实验者专业班级组别同组者实验日期年月日第一部分:实验分析与设计(可加页)一、实验内容描述(问题域描述)要求:掌握vi编辑器的使用方法;掌握Linux下C程序的源程序编辑方法;编译、连接和运行方法。内容:设计、编辑、编译、连接以及运行一个C程序,其中包含键盘输入和屏幕输出语句。二、实验设计(包括实验方案设计,实验手段的确定,实验步骤,实验过程等)#includestdio.hintmain(){printf(“HelloWorld.\n”);return0;}三、主要实验工具、仪器设备及耗材Linux操作系统、emacs编辑器、gcc编译器。第二部分:实验结果分析(可加页)1、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)输入源代码$vihello.c#includestdio.hintmain(){printf(“HelloWorld.\n”);return(0);}$gcc–ohellohello.c$./helloHelloWorld.$gcc–g–ohellohello.c$gdbhello2、实验结果描述编译运行3、实验小结、建议及体会通过本实验,简单学会了在Linux下进行C语言编程,编译、连接部分仍然不熟悉,需要多加练习。实验课程名称:操作系统实验项目名称SHELL编程和后台批处理实验成绩实验者专业班级组别同组者实验日期年月日第一部分:实验分析与设计(可加页)一、实验内容描述(问题域描述)要求:掌握Linux系统的SHELL编程方法和后台批处理方法。内容:(1)将编译、连接以及运行上述C程序各步骤用SHELL程序批处理完成,前台运行。(2)将上面SHELLL程序后台运行。观察原C程序运行时输入输出情况。(3)修改调试上面SHELL程序和C程序,使得在后台批处理方式下,原键盘输入内容可以键盘命令行位置参数方式交互式输入替代原键盘输入内容,然后输出到屏幕。二、实验设计(包括实验方案设计,实验手段的确定,实验步骤,实验过程等)#!/bin/shechohelloshell三、主要实验工具、仪器设备及耗材PC、操作系统:Ubuntu13.04第二部分:实验结果分析(可加页)1、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等在实验时,最主要的就是后缀名发生了错误,应为.sh在屏幕上述出用echo命令2、实验结果描述三、实验小结、建议及体会通过这次实验熟悉了shell编程,对Linux下的编程有了进一步的了解,也让我对操作系统有了全新的认识,实验中遇到了很多问题,随着自己的一步步解决,自身的技能也随之提升,我会继续努力学习操作系统。实验课程名称:操作系统实验项目名称Linux系统调用(time)实验成绩实验者专业班级组别同组者实验日期年月日第一部分:实验分析与设计(可加页)一、实验内容描述(问题域描述)要求:掌握Linux系统调用使用方法。内容:学习使用time,ctime,sleep,exit等Linux系统调用使用方法。3、实验设计(包括实验方案设计,实验手段的确定,实验步骤,实验过程等)#includetime.h#includestdio.hintmain(){time_tnow;now=time(NULL);printf(“%s”,ctime(&now));return0;}三、主要实验工具、仪器设备及耗材Ubuntu操作系统Vi编辑器GCC编译器第二部分:实验结果分析(可加页)一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)ctime(将时间和日期以字符串格式表示)表头文件#includetime.hctime()将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果以字符串形态返回。此函数已经由时区转换成当地时间,字符串格式为“WedJun3021:49:081993\n”。若再调用相关的时间日期函数,此字符串可能会被破坏。返回值返回一字符串表示目前当地的时间日期。time(取得目前的时间)表头文件#includetime.h函数说明此函数会返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数。如果t并非空指针的话,此函数也会将返回值存到t指针所指的内存。返回值二、实验结果描述三、实验小结,建议与体会通过这次实验学习使用time,ctime,sleep,exit等Linux系统调用使用方法,在以后会多多了解Linux系统调用的更多方法。实验课程名称:操作系统实验项目名称Linux进程控制(fork)实验成绩实验者专业班级组别同组者实验日期年月日第一部分:实验分析与设计(可加页)一、实验内容描述(问题域描述)要求:掌握Linux系统中进程控制原语fork的使用方法。内容:设计C程序,其中主进程创建一个子进程,以特定次序各自执行规定操作后退出。4、实验设计(包括实验方案设计,实验手段的确定,实验步骤,实验过程等)#includeunistd.h#includesys/types.h#includestdio.hintmain(intargc,char*agrv[]){pid_tpid;pid=fork();if(pid0)printf(errorinfork!);elseif(pid==0)printf(iamthechildprocess,myprocessidis%d\n,getpid());elseprintf(iamtheparentprocess,myprocessidis%d\n,getpid());return0;}三、主要实验工具、仪器设备及耗材Ubuntu操作系统Vi编辑器GCC编译器第二部分:实验结果分析(可加页)1、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)fork();返回值:若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;否则,出错返回-1由于在复制时复制了父进程的堆栈段,所以两个进程都停留在fork函数中,等待返回。因为fork函数会返回两次,一次是在父进程中返回,另一次是在子进程中返回,这两次的返回值是不一样的。2、实验结果描述3、实验小结、建议及体会经过此次实验,我学会了如何在父子进程之间发送信号和传输数据以及一些保存文件的操作,还得多多学习。