linux系统及应用应用开发实验报告册.docx
《linux系统及应用应用开发实验报告册.docx》由会员分享,可在线阅读,更多相关《linux系统及应用应用开发实验报告册.docx(18页珍藏版)》请在冰豆网上搜索。
![linux系统及应用应用开发实验报告册.docx](https://file1.bdocx.com/fileroot1/2023-4/17/903388e6-f1f8-486b-ba2a-fc6ff21fad9f/903388e6-f1f8-486b-ba2a-fc6ff21fad9f1.gif)
linux系统及应用应用开发实验报告册
合肥师范学院
实验报告册
2013-2014第二学期
系别计算机科学与技术
实验课程linux系统及应用
专业11级计算机科学与技术
班级嵌入式应用技术
姓名
学号
指导教师何冀军
序号
实验项目名称
内容提要
实验
学时
实验报告成绩
1
Linux系统安装与简单配置
安装并使用硬盘分区工具,为Linux准备好分区;安装Linux系统;配置Linux系统运行环境;正确地启动、关闭系统。
2
2
Linux基本命令的使用
掌握Linux一般命令格式;掌握有关文件和目录操作的常用命令;掌握有关进程操作的常用命令;熟练使用man命令。
2
3
vi编辑器
学习使用vi编辑器建立、编辑、显示及加工处理文本文件。
2
4
Shell编程
了解shell的作用和主要分类;掌握bash的建立和执行方式;掌握bash的基本语法;学会编写shell脚本。
4
5
常用开发工具
掌握C语言编译的基本用法;掌握gdb调试工具的基本用法;理解make工具的功能,学会编制makefile的方法。
2
6
Linux环境编程
(计算机科学与技术专业)
理解系统调用和库函数的异同;学会用系统调用和库函数进行编程;掌握一些常用的系统调用和库函数的功能及应用。
4
6
Linux内存管理
(计算机软件专业)
了解Linux内存管理的基本原理和方法,了解内存申请和释放的方式,掌握malloc,realloc,free等函数的使用;
4
实验项目一览表
实验一Linux系统安装和简单配置
一、实验目的
(1)掌握Linux操作系统的安装步骤;
(2)掌握Linux系统的简单配置方法;
(3)掌握Linux系统的启动、关闭步骤。
二、实验内容
(1)安装Linux系统;
(2)配置Linux系统运行环境;
(3)正确地启动、关闭系统。
三、实验软件
VMWareWorkstation5.0;
Redhatlinux9.0镜像文件;
四、实验主要步骤
(1)配置并安装操作系统;
(2)vi创建程序并实用GCC编译;
(3)运行程序;
五、实验结果
实验项目二Linux基本命令的使用
一、实验目的
(1)掌握Linux一般命令格式;
(2)掌握有关文件和目录操作的常用命令;
(3)掌握有关进程操作的常用命令;
(4)熟练使用man命令。
二、实验内容
(1)正确地登陆和退出系统;
(2)熟悉date,cal,who,echo,clear,passwd命令;
(3)在用户主目录下对文件进行如下操作:
复制一个文件、显示文件内容、查找指定内容、排序、文件比较、文件删除等;
(4)对目录进行管理:
创建和删除子目录、改变和显示工作目录、列出和更改文件权限、链接文件等;
(5)利用man显示date,echo等命令的手册页;
(6)显示系统中的进程信息。
三、实验软件
VMWareWorkstation5.0;
Redhatlinux9.0;
四、实验主要步骤
1、登录进入系统,修改个人密码。
2、使用简单命令:
date,cal,who,echo,clear等,了解linux命令格式;
3、浏览文件系统:
(1)运行pwd命令,确定当前工作目录;
(2)运行ls–l命令,理解各字段含义;
(3)运行ls–ai命令,理解各字段含义。
(4)使用cd命令,将工作目录改到根目录(/)上。
(5)直接使用cd,用pwd命令验证回到的位置。
(6)用mkdir建立一个子目录subdir;
(7)将工作目录改到subdir.
4、文件操作
(1)验证当前工作目录在subdir;
(2)运行date>file1,然后运行catfile1,看到什么信息?
(3)运行catsubdir,会有什么结果,为什么?
(4)利用man命令显示date命令的使用说明;
(5)运行mandate>>file1,看到什么?
运行catfile1,看到什么?
(6)利用ls–lfile1,了解链接计数是多少?
运行lnfile1../fa,再运行ls–lfile1,看链接计数有无变化?
用cat命令显示fa文件内容。
(7)显示file1的前10行,后10行。
(8)运行cpfile1file2,然后ls–l,看到什么?
运行mvfile2file3,然后ls–l看到什么?
运行catf*,结果怎样?
(9)运行rmfile3,然后ls–l,结果如何?
(10)在/etc/passwd文件中查找适合你注册名的行.
(11)运行ls–l,理解各文件的权限是什么?
(12)用两种方式改变file1的权限。
(13)统计file1文件的行数、字数。
(14)运行manls|more,显示结果是什么?
运行catfile1|head-20|teefile5,结果如何?
运行catfile5|wc,结果如何?
五、实验结果
实验项目三vi编辑器
一.实验目的
学习使用vi编辑器建立、编辑、显示及加工处理文本文件。
二.实验内容
(1)进入和退出vi;
(2)利用文本插入方式建立一个文件;
(3)在新建的文本文件上移动光标位置;
(4)对该文件执行删除、复原、修改、替换等操作。
三.实验软件
VMWareWorkstation5.0;
Redhatlinux9.0;
四.实验主要步骤
1、进入vi;
2、建立一个文件,如file.c.进入插入方式,输入一个C语言程序的各行内容,故意制造几处错误。
最后将该文件存盘。
回到shell状态下。
3、运行gccfile.c–omyfile,编译该文件,会发现错误提示。
理解其含义。
4、重新进入vi,对该文件进行修改。
然后存盘,退出vi。
重新编译该文件。
如果编译通过了,可以用./myfile运行该程序。
5、运行mandate>file10,然后vifile10.
使用x,dd等命令删除某些文本行。
使用u命令复原此前的情况。
使用c,r,s等命令修改文本内容。
使用检索命令进行给定模式的检索。
五.实验结果
实验项目四shell编程
一、实验目的
(1)了解shell的作用和主要分类;
(2)掌握bash的建立和执行方式;
(3)掌握bash的基本语法;
(4)学会编写shell脚本。
二、实验内容
(1)shell脚本的建立和执行;
(2)历史命令和别名定义;
(3)shell变量和位置参数、环境变量;
(4)bash的特殊字符;
(5)一般控制结构;
(6)算术运算及bash函数。
三.实验软件
VMWareWorkstation5.0;
Redhatlinux9.0;
四.实验主要步骤
1、利用vi建立一个脚本文件,其中包括date,cal,pwd,ls等常用命令。
然后以不同方式执行脚本。
2、运行history命令,配置历史命令环境。
3、体会bash的命令补齐功能。
4、用alias定义别名,然后执行。
5、编辑如下脚本进行执行:
6、编写一个shell脚本,求斐波那契数列的前10项及总和。
7、设计一个程序cuts,它由标准输入读取数据,获取由第一个参数n和第二个参数m所限定范围的数据,n和m都是整数,即从输入的字符串中抽取第n个字符至第m个字符之间的所有字符(包括这两个字符)。
例如:
$cuts1114
tisisatestofcutsprogram(输入)
tst(显示结果
五.实验结果
实验项目五常用开发工具
一.实验目的
(1)掌握C语言编译的基本用法;
(2)掌握gdb调试工具的基本用法;
(3)理解make工具的功能,学会编制makefile的方法。
二.实验内容
(1)利用gcc编译C语言程序,使用不同选项,观察并分析显示结果;
(2)用gdb调试一个编译后的C语言程序;
(3)编写一个由多个文件构成的C语言程序,编制makefile,运行make工具进行维护。
三.实验软件
VMWareWorkstation5.0;
Redhatlinux9.0;
四.实验主要步骤
1、改写例6.1,使用下列选项对它进行编译:
-I,-D,-E,-c,-o,-l。
2、完成对思考题6.5、6.6的调试。
3、完成对思考题6.9的编制,并使用make进行维护。
五.实验结果
实验项目六Linux内存管理
一、实验目的
(1)了解Linux内存管理的基本原理和方法;
(2)了解内存申请和释放的方式;
(3)掌握malloc,realloc,free,calloc函数的使用。
二、实验内容
(1)使用C语言编写一个包含内存分配与释放的程序,观察分析并显示运行结果;
(2)通过gdb等工具对程序进行调试;
(3)在程序运行过程中观察系统内存的使用情况,验证内存管理函数的执行效果。
三.实验软件
VMWareWorkstation5.0;
Redhatlinux9.0;
四.实验主要步骤
(1)内存库函数实验-malloc函数,运行程序清单6-1,写明运行结果。
(2)内存库函数实验-calloc函数,运行程序清单6-2,写明运行结果。
(3)内存库函数实验-realloc函数,运行程序清单6-3,写明运行结果。
(4)内存错误分析实验:
指出程序清单6-4的内存错误原因。
指出程序清单6-5的内存错误原因。
通过比较程序清单6-6、6-7输出结果,分析程序6-3内存错误原因。
五.实验结果
程序清单:
(1)5-1
#include
#include
main()
{
char*p;
clrscr();
//clearscreen
p=(char*)malloc(100);
if(p)
printf("MemoryAllocatedat:
%x",p);
else
printf("NotEnoughMemory!
\n");
free(p);
return0;
}
(2)5-2
#include
#include
main()
{
char*p;
clrscr();
//clearscreen
p=(char*)calloc(100,sizeof(char));
if(p)
printf("MemoryAllocatedat:
%x",p);
else
printf("NotEnoughMemory!
\n");
free(p);
return0;
}
(3)5-3
#include
#include
main()
{
char*p;
clrscr();
//clearscreen
p=(char*)malloc(100);
if(p)
printf("MemoryAllocatedat:
%x",p);
else
printf("NotEnoughMemory!
\n");
p=(char*)realloc(p,256);
if(p)
printf("MemoryReallocatedat:
%x",p);
else
printf("NotEnoughMemory!
\n");
free(p);
return0;}
(4)5-4
……
Void
ApplyForMem(char*p,intnum)
{
p=(char*)malloc(sizeof(char)*num);
return;
}
int
main()
{
char*str=NULL;
………….
ApplyForMem(str,300);
free(str);
infile.close();
return0;
}
(5)5-5
#include
#include
#include
intmain(){
charz=*(constchar*)0;
exit(EXIT_SUCCESS);
}
(6)5-6
#include“stdlib.h”
#defineHEAP_BLOCK_SIZE32
intmain()
{
//分配申明heap内存块1
char*pbuf1=(char*)malloc(HEAP_BLOCK_SIZE);
printf("HeapTestblock1(%dbytes)at%08Xh",sizeof(pbuf1),pbuf1);
*pbuf1='1';
//分配申明heap内存块2
char*pbuf2=(char*)malloc(HEAP_BLOCK_SIZE);
printf("HeapTestblock2(%dbytes)at%08Xh",sizeof(pbuf2),pbuf2);
*pbuf2='2';
//分配申明heap内存块3
char*pbuf3=(char*)malloc(HEAP_BLOCK_SIZE);
printf("HeapTestblock3(%dbytes)at%08Xh",sizeof(pbuf3),pbuf3);
*pbuf3='3';
//释放heap内存块1
printf("HeapTestblock1(%dbytes)at%08Xhfreed",sizeof(pbuf1),pbuf1);
free(pbuf1);
//释放heap内存块2
printf("HeapTestblock2(%dbytes)at%08Xhfreed",sizeof(pbuf2),pbuf2);
free(pbuf2);
//释放heap内存块3
printf("HeapTestblock3(%dbytes)at%08Xhfreed",sizeof(pbuf3),pbuf3);
free(pbuf3);
//分配申明heap内存块4
char*pbuf4=(char*)malloc(HEAP_BLOCK_SIZE);
printf("HeapTestblock4(%dbytes)at%08Xh",sizeof(pbuf4),pbuf4);
*pbuf4='4';
//分配申明heap内存块5
char*pbuf5=(char*)malloc(HEAP_BLOCK_SIZE);
printf("HeapTestblock5(%dbytes)at%08Xh",sizeof(pbuf5),pbuf5);
*pbuf5='5';
//分配申明heap内存块6
char*pbuf6=(char*)malloc(HEAP_BLOCK_SIZE);
printf("HeapTestblock6(%dbytes)at%08Xh",sizeof(pbuf6),pbuf6);
*pbuf6='6';
for(;;){
Sleep(1000);
}
return0;
}
(7)5-7
#include“stdlib.h”
#defineHEAP_BLOCK_SIZE32
intmain()
{
//分配申明heap内存块1
char*pbuf1=(char*)malloc(HEAP_BLOCK_SIZE);
printf("HeapTestblock1(%dbytes)at%08Xh",sizeof(pbuf1),pbuf1);
*pbuf1='1';
//分配申明heap内存块2
char*pbuf2=(char*)malloc(HEAP_BLOCK_SIZE);
printf("HeapTestblock2(%dbytes)at%08Xh",sizeof(pbuf2),pbuf2);
*pbuf2='2';
//分配申明heap内存块3
char*pbuf3=(char*)malloc(HEAP_BLOCK_SIZE);
printf("HeapTestblock3(%dbytes)at%08Xh",sizeof(pbuf3),pbuf3);
*pbuf3='3';
//释放heap内存块3
printf("HeapTestblock3(%dbytes)at%08Xhfreed",sizeof(pbuf3),pbuf3);
free(pbuf3);
//释放heap内存块2
printf("HeapTestblock2(%dbytes)at%08Xhfreed",sizeof(pbuf2),pbuf2);
free(pbuf2);
//释放heap内存块1
printf("HeapTestblock1(%dbytes)at%08Xhfreed",sizeof(pbuf1),pbuf1);
free(pbuf1);
//分配申明heap内存块4
char*pbuf4=(char*)malloc(HEAP_BLOCK_SIZE);
printf("HeapTestblock4(%dbytes)at%08Xh",sizeof(pbuf4),pbuf4);
*pbuf4='4';
//分配申明heap内存块5
char*pbuf5=(char*)malloc(HEAP_BLOCK_SIZE);
printf("HeapTestblock5(%dbytes)at%08Xh",sizeof(pbuf5),pbuf5);
*pbuf5='5';
//分配申明heap内存块6
char*pbuf6=(char*)malloc(HEAP_BLOCK_SIZE);
printf("HeapTestblock6(%dbytes)at%08Xh",sizeof(pbuf6),pbuf6);
*pbuf6='6';
for(;;){
Sleep(1000);
}
return0;
}
实验项目六Linux环境编程
一.实验目的
(1)理解系统调用和库函数的异同;
(2)学会用系统调用和库函数进行编程;
(3)掌握一些常用的系统调用和库函数的功能及应用。
二.实验内容
(1)使用系统调用对文件进行操作;
(2)使用系统调用对进程进行控制;
(3)使用管道机制进行I/O;
(4)使用信号机制进行进程通信。
三.实验软件
VMWareWorkstation5.0;
Redhatlinux9.0;
四.实验主要步骤
1、完成思考题7.3,上机编译、运行。
2、完成对思考题7.5,上机编译、运行。
3、编译并运行例7.5程序,体会管道机制的应用。
4、编译并运行例7.6程序,体会消息队列的管理。
5、完成思考题7.9,上机编译、运行。
五.实验结果