太原理工大学Linux实验报告.docx
《太原理工大学Linux实验报告.docx》由会员分享,可在线阅读,更多相关《太原理工大学Linux实验报告.docx(24页珍藏版)》请在冰豆网上搜索。
![太原理工大学Linux实验报告.docx](https://file1.bdocx.com/fileroot1/2023-2/2/27240a2e-3dcf-4e6f-8853-f9045f64bb02/27240a2e-3dcf-4e6f-8853-f9045f64bb021.gif)
太原理工大学Linux实验报告
本科实验报告
课程名称:
嵌入式操作系统C
实验项目:
嵌入式操作系统C上机实验
实验地点:
计算机学院实验楼308
专业班级:
学号:
学生姓名:
指导教师:
兰方鹏
2017年4月18日
实验名称
实验一Linux虚拟机的定制安装
实验地点
计算机学院实验楼308
实验时间
4月20日
一、实验目的和要求
1.通过对Linux操作系统的定制安装,建立对Linux操作系统的初步认识,为后续实验的进行提供基础平台。
2.掌握Linux操作系统的虚拟机定制安装。
熟悉Linux文件目录结构
二、实验内容和原理
实验内容:
利用虚拟机软件定制安装Linux操作系统,熟悉安装过程中各个选项的意义。
实验原理:
虚拟机可以说是一种软件,也可以说是一种技术,它允许用户在一台主机上虚拟出多台计算机,每台虚拟的计算机都可以有自己的硬件及软件配置。
三、主要仪器设备
PC机、VMwarePlayer、Redhat/Ubuntu/Fedora
四、操作方法与实验步骤
1.安装VMwareWorkstation,并汉化
2.在VMwareWorkstation当中创建一个新的虚拟机,指定安装包的路径。
3.安装定制RedhatEnterpriseLinux5.0
安装说明:
1.对软件开发和和网络服务包进行定制。
2.选择samba服务、nfs服务、tftp服务、Telnet服务和FTP服务
3.关闭系统防火墙、禁用SELinux服务。
手动设置系统分区。
五、实验数据记录和处理
1、安装Ubuntu
进入界面:
2、选择tftp服务
3、对软件开发和网络服务包进行定制,都选择老的软件开发和老的网络服务器
4、关闭系统防火网
5、禁用SELinux服务
六、实验结果与分析
七、讨论、心得
通过这次实验,在自己电脑的虚拟机上安装好了Ubuntu的镜像文件,并在Ubuntu下写了一些简单的命令,深深地感觉在虚拟机上运行Ubuntu远远要比双系统下方便得多,尤其是在两种不同系统下来回切换。
由于电脑上之前就已经安装过虚拟机,所以,实验报告中未对虚拟机的安装加以赘述。
实验名称
实验二熟悉Linux基本命令和GCC编译器
实验地点
计算机学院实验楼308
实验时间
4月20日
一、实验目的和要求
1.掌握Linux常用命令
2.学会如何获取命令帮助信息
3.熟练掌握Linux常用命令
4.掌握GCC命令的使用及其常用参数的含义
二、实验内容和原理
实验内容:
系统设置命令、文件及文件夹操作命令、压缩与解压缩命令、自动补全与历史命令、软件的安装与卸载、文件挂载、管道与重定向命令、GCC命令的使用
三、主要仪器设备
PC机、装有Linux操作系统的虚拟机
四、操作方法与实验步骤
1.练习以下常用命令的使用
shutdown、reboot、logout、exit、useradd、userdel、su、cd、ls、touch、mkdir、cp、rm、rmdir、mv、more、less、man、du、find、clear、grep、cat、history、
tar、unzip、chmod、管道命令|以及重定向命令命令练习步骤如下:
1显示当前目录
2进入到当前用户的主目录
3查看ls的手册
4查看当前目录的所有文件,并显示每个文件的详细信息
5在根目录下创建test目录
6在test目录下创建user1/user2目录结构
7在user2下创建文件myfile
8将myfile复制到user1下
9用tar命令将test打包
10将打包好的文件改名为myfile.tar.gz
11将myfile.tar.gz移动到home目录下
12查找root用户下主目录中使用名为myfile的文件
(13)删除test子目录下的所有文件
14利用rmdir删除test
15显示系统的时间日期,显示一个日历
16查看内存使用情况、显示系统进程
17运行cat,利用kill将cat进程杀死
18在/var/lib目录下查找所有大小超过1000000B的文件,并以长格式显示
19利用rpm查询是否安装了squid软件包,如果已安装则卸载该软件
20将squid-2.6.STABLE21-3.el5.i386.rpm安装
2.举例说明重定向命令<、<<、>、>>的使用
编写一个C的源程序,并用gcc进行编译,练习使用gcc的各个参数,理解每个参数的意义
五、实验数据记录和处理
rpm-aprint可以查询
rpm-ivhname.rpm可以安装,没有我就不装了
六、讨论、心得
本次实验室是熟悉Linux的基本操作命令。
在实验的过程中,我深刻体会到使用命令的方便与快捷性,不过前提是对这些基本的操作命令很熟悉。
命令的使用有严格的格式,比如有些地方一定要有空格或者要加中划线“-”等等,看似不起眼,但如果稍不细心,就会导致运行结果出错。
实验名称
实验三VI编辑器的使用
实验地点
计算机学院实验楼308
实验时间
4月20日
一、实验目的和要求
1.熟练掌握VI编辑器的三种工作模式
2.掌握Vi编辑器每种模式下的命令
二、实验内容和原理
利用Vi编辑器完成文本的编辑
三、主要仪器设备
PC机、装有Linux操作系统的虚拟机
四、操作方法与实验步骤
⑴在/root目录下建立一个名为vi的目录。
⑵进入vi目录
⑶将文件/etc/inittab复制到vi目录下
⑷使用vi打开vi目录下的inittab文件
⑸设定行号,指出id:
5:
initdefault所在行号
⑹将光标移动到该行
⑺复制该行内容
⑻将光标移动到最后一行行首
⑼粘贴复制行的内容
⑽撤销上一步的所做动作
⑾将光标移动到最后一行行尾
⑿粘贴复制行的内容
⒀光标移动到”si:
:
sysinit:
/etc/rc.d/rc.sysinit”
⒁删除该行
⒂存盘但不退出
⒃将光标移动到首行
⒄插入模式下输入“Hello,thisisviworld”
⒅返回命令行模式
⒆向下查找字符串“0:
wait”
⒇再向上查找字符串“halt”,强制退出vi,不存盘
五、实验数据记录和处理
其中没有那个si:
:
删除行是dd向下查找/name向上查找?
name
六、讨论、心得
VI编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下。
由于不需要图形界面,使它成了效率很高的文本编辑器。
尽管在Linux上也有很多图形界面的编辑器可用,但VI在系统和服务器管理中的能是那些图形编辑器所无法比拟的。
VI编辑器是Visualinterface的简称,通常称之为VI。
它在Linux上的地位就像Edit程序在DOS上一样。
它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。
本次实验是熟悉并掌握VI的三种工作模式以及各模式之间的切换命令。
实验名称
实验四Shell编程和Makefile文件
实验地点
计算机学院实验楼308
实验时间
4月20日
一、实验目的和要求
1.了解什么是脚本
2.掌握shell编程方法
3.掌握makefile的编写规则
二、实验内容和原理
1编写一个Shell脚本,要求:
显示当前目录的所有内容,并统计可执行文件
(.sh)的数量,将统计结果输入到指定的文件当中;
2编写一个Shell脚本,要求:
2.1在屏幕上显示一行提示信息
2.2读入一行命令
2.3判断此命令是否为“exit”,若是则退出
2.4如果不是,分析并执行这行命令
3.假定一个程序由以下5个文件组成,其源代码如下,请编写一个Makefile文件,并运行。
文件1:
main.c
#include"mytool1.h"#include"mytool2.h"intmain()
{mytool1_print("hellomytool1!
");mytool2_print("hellomytool2!
");return0;
}
文件2:
mytool1.c#include"mytool1.h"
#include
voidmytool1_print(char*print_str)
{
printf("Thisismytool1print:
%s",print_str);
}
文件3:
mytool1.h
#ifndef_MYTOOL_1_H#define_MYTOOL_1_H
voidmytool1_print(char*print_str);#endif
文件4:
mytool2.c#include"mytool2.h"
#include
voidmytool2_print(char*print_str){printf("Thisismytool2print:
%s",print_str);
}
文件5:
mytool2.h
#ifndef_MYTOOL_2_H#define_MYTOOL_2_H
voidmytool2_print(char*print_str);
#endif
三、主要仪器设备
PC机、装有Linux操作系统的虚拟机
四、操作方法与实验步骤
在vi编辑模式下,编写脚本。
五、实验数据和记录
(1)shell.sh文件
grep-c统计行数,即*.sh文件的个数,输出至a.txt文件中
fxcnt=0
ls -l
for file in *
do
if [ -x $file ];then
let fxcnt+=1
fi
done
echo -e "\tThere are $fxcnt executeable files in $PWD"
echo -e "\tThere are $fxcnt executeable files in $PWD">result1
2.echo "This is the 4.2"
read read_value
if [ $read_value = "exit" ] ; then
exit
else
$read_value
fi
3.
main:
mytool1.omytool2.o
gccmytool1.omytool2.omain.c-I/home/zyl/Templates/-omain
mytool1.o:
mytool1.c
gcc-cmytool1.c-I/home/zyl/Templates/
mytool2.o:
mytool2.c
gcc-cmytool2.c-I/home/zyl/Templates/
.PHONY:
clean
clean:
rm-fmainmytool1.omytool2.o
~
六、实验结果与分析
七、讨论、心得
本次实验是熟悉并掌握shell编程。
shell通过提示您输入,向操作系统解释该输入,然后处理来自操作系统的任何结果输出来管理您与操作系统之间的交互。
shell提供了与操作系统通信的方式。
此通信以交互的方式(来自键盘的输入立即操作)或作为一个shell脚本执行。
shell脚本是shell和操作系统命令的序列,它存储在文件中。
命令行是输入所在的行。
它包含shell提示符。
实验名称
实验五网络编程—设计并发服务器
实验地点
计算机学院实验楼308
实验时间
4月20日
一、实验目的和要求
1.了解TCP/IP协议
2.掌握Socket编程,熟悉基于TCP和UDP的传输模型
3.掌握多线程编程
掌握基于TCP的并发服务器设计
二、实验内容和原理
实验内容:
编写C程序,利用多线程构建TCP并发服务器,并实现客户端和服务器的传输(多个并发用户同时访问服务器)实验原理:
TCP的传输模型和线程的并发执行
三、主要仪器设备
PC机、装有Linux操作系统的虚拟机
四、操作方法与实验步骤
客户端代码:
服务器端程序:
五、实验数据和记录
客户端连接:
服务端接收:
六、实验结果与分析
连接结果:
七、讨论、心得
本次实验室掌握Linux的网络编程。
该实验的理解对于我来说有一定的难度。
所以做本次实验时也分了很大的劲儿,花费了较多的时间。
网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端。
网络程序是先有服务器程序启动,等待客户端的程序运行并建立连接.一般的来说是服务端的程序在一个端口上监听,直到有一个客户端的程序发来了请求。
实验名称
实验六搭建嵌入式交叉编译开发环境
实验地点
计算机学院实验楼308
实验时间
4月20日
一、实验目的和要求
1.掌握VMwaretools工具的安装,利用Samba服务器实现Linux和Windows的文件共享。
2.掌握TFTP服务器的配置和使用
3.掌握NFS服务器的配置和使用
掌握Linux交叉工具链的安装和使用
二、实验内容和原理
1.安装VMwaretools工具,实现Linux虚拟机和Windows共享
2.搭建Samba服务器
3.搭建TFTP服务器
4.搭建NFS服务器
5.连接宿主机和实验箱,检测服务器配置是否成功
6.安装Linux交叉编译工具链
7.编写一个C程序,用交叉编译工具链编译,将目标程序拷贝到开发板,在开发板上运行程序。
三、主要仪器设备
PC机、装有Linux操作系统的虚拟机、物联网实验箱及相关软件工具和硬件配件
四、操作方法与实验步骤
Windows操作系统中有超级终端(HyperTerminal)工具
tftp是一个传输文件的简单协议,它基于UDP协议而实现。
Linux
下TFTP服务配置:
vim/etc/xinetd.d/tftp
/etc/init.d/xinetdstart
/etc/init.d/xinetdstop
/etc/init.d/xinetdrestart
netstat–a|greptftp
显示结果为:
udp00*:
tftp*:
*
配置文件:
/etc/exports配置文件每一行格式:
[共享的目录][客户端主机名称或IP]([参数1,参数2…])
NFS配置文件举例:
cat/etc/exports/home/david/project*(rw,sync,no_root_squash)
设置NFS服务在每次系统引导时自动开启:
#/sbin/chkconfignfson(在Ubuntu中应该输入/sbin/chkconfignfs-kernel-serveron)
#tarxvzfarm-linux-xxxx.tgz-C/
#exprotPATH=/usr/local/arm//xxxx/bin:
$PATH
#arm-linux-gcchello.c–ohello
12、把hello通过tftp下载到开发板上
五、实验数据和记录
Hello.c程序
六、实验结果与分析
生成hello文件
把hello通过tftp下载到开发板上
七、讨论、心得
在做本次实验的时候我觉得首先应该弄明白为什么要搭建交叉编译环境。
还有什么是交叉编译环境。
在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。
这个编译过程就叫交叉编译。
简单地说,就是在一个平台上生成另一个平台上的可执行代码,而这种工具就是交叉编译器。
弄明白这个之后我们就不能理解搭建交叉编译环境的原因了。
搭建Linux交叉编译环境我认为是一个很复杂的过程。
因为要设置的东西很多,还要配置环境变量。
所以做本次实验需要足够的耐心与细心。