学生学号0121110680125 实验课成绩武汉理工大学学生实验报告书实验课程名称操作系统开课学院计算机科学与技术学院指导老师姓名刘军学生姓名李帅学生专业班级软件11012013 — 2014 学年第一学期实验课程名称:操作系统实验项目名称Linux键盘命令和vi实验成绩实验者李帅专业班级软件工1101 组别同组者实验日期第一部分:实验分析与设计(可加页)一、实验内容描述(问题域描述)Linux键盘命令和vi1.要求:掌握Linux系统键盘命令的使用方法1. 使用mkdir命令建立一个子目录subdir2. 使用cat或more命令查看file1文件的内容。
3. 将date命令的用法附加到文件file1的后面:4. 利用ls -l file1命令列出文件file1的较详细的信息。
5. 利用rm fa命令将文件fa删除。
再利用ls -l命令查看工作目录内容。
6. 运行mv file1 file_a命令,然后用ls命令查看这两个文件是否都还在工作目录中2.vi操作1.了解vi编辑器的作用和功能2.熟悉vi的操作环境和切换方法3.掌握vi操作的方式(几个常用键)4.了解常用的快捷键二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)VI编辑器的常见命令:vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开文件,并将光标置于第n行首vi + filename :打开文件,并将光标置于最后一行首vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filenamevi filename....filename :打开多个文件,依次进行编辑键盘命令:1. cat,more,less命令2. Is命令3. cp命令4. rm命令5. mv命令VI命令:1.vi进入vi缓冲区2.vi file1:进入文件file13.退出vi三、主要仪器设备及耗材Ubuntu操作体统Vi编辑器第二部分:实验调试与结果分析(可加页)一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)1 使用mkdir命令建立一个子目录subdir2 使用cat或more命令查看file1文件的内容。
3 将date命令的用法附加到文件file1的后面:4 利用ls -l file1命令列出文件file1的较详细的信息。
5 利用rm fa命令将文件fa删除。
再利用ls -l命令查看工作目录内容。
6 运行mv file1 file_a命令,然后用ls命令查看这两个文件是否都还在工作目录中?显然,只有file_a在工作目录中,而file1不在工作目录中二、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)Free 显示系统中已用空闲内存数量Rm:删除文件或目录三、实验小结、建议及体会Linux对比Windows有些不同需要时间去适应。
通过这次实验对Linux操作系统有了进一步的了解。
初步掌握了一些Linux系统常用的命令。
通过这仅一个周时间的学习,我们只是了解了linux的一些最基本知识,我会在后的学习中不断完善和加以扩充linux知识的学习。
实验课程名称:操作系统实验项目名称Linux下C编程实验成绩实验者李帅专业班级软件1101 组别同组者实验日期第一部分:实验分析与设计(可加页)一、实验内容描述(问题域描述)Linux下的C编程要求:掌握vi编辑器的使用方法;掌握Linux下C程序的源程序编辑方法;编译、连接和运行方法。
内容:设计、编辑、编译、连接以及运行一个C程序,其中包含键盘输入和屏幕输出语句。
二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)#include<iostream>using namespace std;int main(){int begin, end;int temp = 0;cout<<"Please enter two number:"<<endl;cin>>begin>>end;if(begin>end){temp = begin;begin = end;end = temp;}for(int i=begin; i<=end; i++){cout<<i<<" ";}cout<<endl;return 0;}三、主要仪器设备及耗材Ubuntu操作体统Vi编辑器G++编译第二部分:实验调试与结果分析(可加页)一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)(1).先用vi JamesJi.c 建立文件(2).在vi的插入界面输入#include <stdio.h>int main(void){printf("JamesJi.gcc!\r\n");return 0;}(3).编译生成JamesJi文件:gcc -o JamesJi JamesJi.c(4).运行JamesJi文件:./JamesJi二、实验小结、建议及体会通过这次实验vi编辑器有了进一步的应用,同时学会了在Linux进行简单的C语言编程,掌握Linux下C程序的源程序编辑方法;编译、连接和运行方法。
在以后的学习中会加大努力加强自己的编程能力。
加深了对linux的印象,linux的兼容性很强。
C/C++仍旧可以在上面编译成功。
实验课程名称:操作系统实验项目名称SHELL编程和后台批处理实验成绩实验者李帅专业班级软件1101 组别同组者实验日期第一部分:实验分析与设计(可加页)三、实验内容描述(问题域描述)SHELL编程和后台批处理要求:掌握Linux系统的SHELL编程方法和后台批处理方法。
内容:(1) 将编译、连接以及运行上述C程序各步骤用SHELL程序批处理完成,前台运行。
(2) 将上面SHELLL程序后台运行。
观察原C程序运行时输入输出情况。
(3) 修改调试上面SHELL程序和C程序,使得在后台批处理方式下,原键盘输入内容可以键盘命令行位置参数方式交互式输入替代原键盘输入内容,然后输出到屏幕。
四、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)test.cpp文件如下:#include<iostream>using namespace std;int main(){int i, j;int a[10][10] = {0};a[0][0] = 1;for(i=1; i<=9; i++){for(j=0; j<=i; j++){if((j==0) || (i==j))a[i][j] = 1;elsea[i][j] = a[i-1][j-1] + a[i-1][j];}}for(i=0; i<=9; i++){for(j=0; j<=i; j++)cout<<" "<<a[i][j];cout<<endl;}return 0;}test.sh文件如下#!/bin/bash#Program:# This program is used to compile and run a file of cpp#History#2011/06/01g++ -o test.out test.cppchmod u+x test.out./test.out三、主要仪器设备及耗材Ubuntu操作系统Vi编辑器第二部分:实验调试与结果分析(可加页)四、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)调试过程中未发现任何问题五、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)六、实验小结、建议及体会通过这次实验熟悉了shell编程,对Linux下的编程有了进一步的了解。
也对Linux系统终端方式使用的编辑器vi有进一步的认识,如何使用命令来打开文件以及在编辑器vi里面编写内容等,。
总之,通过这次实验,对课本上的知识有了进一步的理解以及巩固。
实验课程名称:操作系统实验项目名称Linux系统调用(time)实验成绩实验者李帅专业班级软件1101 组别同组者实验日期第一部分:实验分析与设计(可加页)一、实验内容描述(问题域描述)学习Linux内核的系统调用,理解、掌握Linux系统调用的实现框架、用户界面、参数传递、进入/返回过程。
阅读Linux内核源代码,通过添加一个简单的系统调用实验,进一步理解Linux操作系统处理系统调用的统一流程。
Linux系统调用使用方法。
要求:掌握Linux系统调用使用方法。
内容:学习使用time, ctime, sleep, exit等Linux系统调用使用方法。
二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)#include<stdio.h>#include<unistd.h>#include<time.h>#include<iostream>using namespace std;int main(){while(1){char timebuf[100];time_t t;time(&t);strftime(timebuf, sizeof(timebuf),"%Y 年%m 月%d 日%H: %M: %S",localtime(&t));cout<<timebuf<<endl;fflush(stdout);sleep(1);}return 0;}现遍历进程。
实验主要内容:添加系统调用的名字利用标准C库进行包装添加系统调用号在系统调用表中添加相应表项sys_mysyscall的实现三、主要仪器设备及耗材Ubuntu操作系统Vi编辑器G++编译器第二部分:实验调试与结果分析(可加页)一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)#include <linux/unistd.h># include <sys/syscall.h>#define __NR_ mysyscall 223int main(){syscall(__NR_mysyscall); /*或syscall(223) *///在此加入在屏幕输出每个进程相关信息的代码;}用gcc编译源程序# gcc –o test test.c运行程序# ./test用shell命令查看遍历进程输出的信息#dmesg二、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)三、实验小结、建议及体会这次实验有点难度,但是通过查找资料和与老师的交流之后还是顺利完成了实验,希望以后相关能力能够得到加强。