理工大学Linux实验报告

发布时间:

实验名称 实验地点
实验一 Linux操作系统定制安装
博学楼 网络实验室
实验时间 416
一、实验目的和要求

通过对Linux 操作系统的定制安装,建立对Linux操作系统的初步认识,为后续实验的进行提供基础平台。
掌握Linux操作系统的虚拟机定制安装。 熟悉Linux文件目录结构
二、实验内容和原理

实验内容:利用虚拟机软件定制安装Linux操作系统,熟悉安装过程中各个选项的意义。
实验原理:虚拟机可以说是一种软件,也可以说是一种技术,它允许用户在一台主机上虚拟出多台计算机,每台虚拟的计算机都可以有自己的硬件及软件配置。
三、主要仪器设备 PC机、VMware PlayerRedhat/Ubuntu/Fedora 四、操作方法与实验步骤
安装VMware Player VMware Player当中创建一个新的虚拟机,指定安装包的路径。 安装定制Redhat Enterprise Linux 5.0 说明:
对软件开发和和网络服务包进行定制。
选择samba服务、nfs服务、tftp服务、Telnet服务和FTP服务 关闭系统防火墙、禁用SELinux服务。 手动设置系统分区。

五、实验数据记录和处理
1、安装Ubuntu

进入界面:

2、选择tftp服务

3、对软件开发和网络服务包进行定制,都选择老的软件开发和老的网络服务器




4、关闭系统防火网

5、禁用SELinux服务

六、实验结果与分析




七、讨论、心得
通过这次实验,在自己电脑的虚拟机上安装好了Ubuntu的镜像文件,并在Ubuntu下写了一些简单的命令,深深地感觉在虚拟机上运行Ubuntu远远要比双系统下方便得多,尤其是在两种不同系统下来回切换。由于电脑上之前就已经安装过虚拟机,所以,实验报告中未对虚拟机的安装加以赘述。


实验名称 实验地点
实验二 熟悉Linux系统的基本命令
博学楼
网络实验室
实验时间 418
一、实验目的和要求
熟悉Linux命令格式 学会如何获取命令帮助信息 熟练掌握Linux常用命令
掌握GCC命令的使用及其常用参数的含义

二、实验内容和原理

实验内容:系统设置命令、文件及文件夹操作命令、压缩与解压缩命令、自动补全与历史命令、管道与重定向命令 GCC命令的使用
三、主要仪器设备 PC机、装有Linux操作系统的虚拟机
四、操作方法与实验步骤
练习以下常用命令的使用
shutdownrebootlogoutexituseradduserdelsucdlstouchmkdir cprmrmdirmvmorelessmandufindcleargrepcathistory tarunzipchmod、管道命令|以及重定向命令 举例说明管道命令 | 的使用
举例说明重定向命令 <<<>>>的使用
编写一个C的源程序,并用 gcc进行编译,练习使用 gcc的各个参数,理解 参数的意义
五、实验数据记录和处理

1.cdls mkdir 新建hello文件夹

2.cp 复制ahello文件夹

3.rm移除hello 中的a文件

4.rmdir移除hello文件夹


5.mv更改文件名字、移动文件

6.du -b 以字节为单位显示cache目录的大小
7.find / -name lolo搜索当前目录下名为lolo的文件

8.grep lan/b.txt文件里查找字符3,并输出行号-n;输出b.txt内容

9.grep重定向 追加>>

六、讨论、心得


本次实验室是熟悉Linux的基本操作命令。在实验的过程中,我深刻体会到使用命令的方便与快捷性,不过前提是对这些基本的操作命令很熟悉。命令的使用有严格的格式,比如有些地方一定要有空格或者要加中划线“-”等等,看似不起眼,但如果稍不细心,就会导致运行结果出错。


实验名称 实验地点
实验三 VI编辑器的使用
博学楼
网络实验室
实验时间 426
一、实验目的和要求
熟练掌握VI编辑器的三种工作模式 掌握Vi编辑器每种模式下的命令
二、实验内容和原理
利用Vi编辑器完成文本的编辑
三、主要仪器设备 PC机、装有Linux操作系统的虚拟机
四、操作方法与实验步骤
/root目录下建立一个名为vi的目录。

进入vi目录
将文件/etc/inittab复制到vi目录下 使用vi打开vi目录下的inittab文件 设定行号,指出 id:5:initdefault 所在行号 将光标移动到该行 复制该行内容
将光标移动到最后一行行首 粘贴复制行的内容 撤销上一步的所做动作 将光标移动到最后一行行尾 粘贴复制行的内容
光标移动到”si::sysinit:/etc/rc.d/rc.sysinit 删除该行 存盘但不退出 将光标移动到首行
插入模式下输入“Hello, this is vi world 返回命令行模式
向下查找字符串“0wait
再向上查找字符串“halt,强制退出 vi,不存盘
五、实验数据记录和处理
1、在Desktop/lan下建立文件夹vi 2、进入vi目录
3、将Desktop/init/atd.conf复制到vi目录下 4、使用vi打开vi/atd.conf
Atd.conf内容

5、复制第8行到最后一行yyp

6、删除第11:expect fork
7、存盘但不退出:w

8、将光标移动到首行,插入模式下输入“Hello, this is vi world,返回命令行模
式,向下查找字符串“start

/start 结果:光标从首行移动到“start”这个字符串前面 9、再向上查找字符串“at at 结果:光标从当前位置移动到“at”这个字符串前面 10、强制退出 vi,不存盘 q

六、讨论、心得
VI 编辑器是LinuxUnix上最基本的文本编辑器,工作在字符模式下。由于不需要图形界面,使它成了效率很高的文本编辑器。尽管在Linux上也有很多图形界面的编辑器可用,但VI在系统和服务器管理中的能是那些图形编辑器所无法比拟的。
VI 编辑器是Visual interface的简称,通常称之为VI。它在Linux上的地位就像Edit程序在DOS上一样。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。

本次实验是熟悉并掌握VI的三种工作模式以及各模式之间的切换命令。


实验名称 实验地点
实验四 Shell编程
博学楼
网络实验室
实验时间 426
一、实验目的和要求
了解什么是脚本 掌握shell编程方法
二、实验内容和原理
编写一个Shell脚本,要求:
显示当前目录的所有内容,并统计可执行文件(.sh的数量,将统计结果输入到指定的文件当中;
自己定义格式显示当前系统时间,并判断当前时间属于上午、下午或晚上。
三、主要仪器设备 四、操作方法与实验步骤
PC机、装有Linux操作系统的虚拟机
vi编辑模式下,编写脚本,完成以下两个要求:
显示当前目录的所有内容,并统计可执行文件(.sh的数量,将统计结果输入到指定的文件当中;
自己定义格式显示当前系统时间,并判断当前时间属于上午、下午或晚上。
五、实验数据和记录 1shell.sh文件
grep -c 统计行数,即*.sh文件的个数,输出至a.txt文件中


2date.sh文件

六、实验结果与分析
显示当前目录的所有内容,并将.sh文件的数量输入到指定的文件a.txt当中

显示当前系统时间,并判断出当前时间属于下午



七、讨论、心得
本次实验是熟悉并掌握shell编程。shell 通过提示您输入,向操作系统解释该输入,然后处理来自操作系统的任何结果输出来管理您与操作系统之间的交互。
shell 提供了与操作系统通信的方式。此通信以交互的方式(来自键盘的输入立即操作)或作为一个 shell 脚本执行。shell 脚本是 shell 和操作系统命令的序列,它存储在文件中。命令行是输入所在的行。它包含 shell 提示符。

实验名称 实验地点
实验五 网络编程—设计并发服务器
博学楼
网络实验室
实验时间 428
一、实验目的和要求
了解TCP/IP协议
掌握Socket编程,熟悉基于TCPUDP的传输模型 掌握多线程编程
掌握基于TCP的并发服务器设计
二、实验内容和原理
实验内容:编写C程序,利用多线程实现TCP并发服务器 实验原理:TCP的传输模型和线程的并发执行
三、主要仪器设备 PC机、装有Linux操作系统的虚拟机
四、操作方法与实验步骤 客户端代码:



服务器端程序:







五、实验数据和记录

客户端连接


服务端接收:


六、实验结果与分析

连接结果:




七、讨论、心得
本次实验室掌握Linux的网络编程。该实验的理解对于我来说有一定的难度。所以做本次实验时也分了很大的劲儿,花费了较多的时间。
网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端。网络程序是先有服务器程序启动,等待客户端的程序运行并建立连接.一般的来说是服务端的程序在一个端口上监听,直到有一个客户端的程序发来了请求。
实验名称 实验地点
实验六 搭建Linux交叉开发环境
博学楼
网络实验室
实验时间 429
一、实验目的和要求
掌握VMware tools工具和Samba服务器实现LinuxWindows的共享方式 掌握TFTP服务器的配置和使用 掌握NFS服务器的配置和使用
掌握Linux交叉工具链的安装和使用
二、实验内容和原理
安装VMware tools工具,实现Linux虚拟机和Windows共享 搭建Samba服务器 搭建TFTP服务器 搭建NFS服务器
连接宿主机和实验箱,检测服务器配置是否成功 安装Linux交叉编译工具链
编写一个C程序,用交叉编译工具链编译,将目标程序拷贝到开发板,在开
发板上运行程序。
三、主要仪器设备
PC机、装有Linux操作系统的虚拟机、物联网实验箱及相关软件工具和硬件配件
四、操作方法与实验步骤

1、配置控制台程序
Windows操作系统中有超级终端(HyperTerminal)工具


2、配置TFTP服务
tftp是一个传输文件的简单协议,它基于UDP协议而实现。Linux TFTP服务配置:
vim /etc/xinetd.d/tftp

3、启动TFTP服务
/etc/init.d/xinetd start

4、关闭TFTP服务
/etc/init.d/xinetd stop 5、重启TFTP服务
/etc/init.d/xinetd restart 6、查看TFTP状态
netstat a | grep tftp 显示结果为: udp 0 0 *:tftp *:* 7NFS配置
配置文件:/etc/exports 配置文件每一行格式:
[共享的目录] [客户端主机名称或IP]([参数1,参数2] NFS cat /etc/exports /home/david/project *(rw,sync,no_root_squash 8NFS服务启动
设置NFS服务在每次系统引导时自动开启: # /sbin/chkconfig nfs on (在Ubuntu中应该输入 /sbin/chkconfig nfs-kernel-server on

9 tar命令解压交叉编译工具
# tar xvzf arm-linux-xxxx.tgz -C / 10、环境变量的配置
# exprot PATH=/usr/local/arm//xxxx/bin:PATH 11、在linux中编写源程序,然后编译程序:
# arm-linux-gcc hello.c o hello 12hello 通过tftp下载到开发板上

五、实验数据和记录 Hello.c程序



六、实验结果与分析 生成hello文件

hello 通过tftp下载到开发板上

七、讨论、心得
在做本次实验的时候我觉得首先应该弄明白为什么要搭建交叉编译环境。有什么是交叉编译环境。在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫
交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码,而这种工具就是交叉编译器。弄明白这个之后我们就不能理解搭建交叉编译环境的原因了。
搭建Linux交叉编译环境我认为是一个很复杂的过程。因为要设置的东西很多,还要配置环境变量。所以做本次实验需要足够的耐心与细心。


实验名称 实验地点
实验七 Linux内核的配置、裁剪和烧写
博学楼
网络实验室
实验时间 53
一、实验目的和要求
了解Linux内核目录结构 掌握Linux内核的配置与编译 掌握Linux内核的定制步骤 掌握Linux操作系统的烧写
二、实验内容和原理
www.kenerl.org网站下载一个内核源代码 定制一个基于ARM6410开发板的内核 清除临时文件、中间文件和配置文件 确定目标系统的软硬件配置情况 配置ARM平台的内核 编译内核
参照物联网实验箱手册,烧写Linux操作系统
三、主要仪器设备
PC机、装有Linux操作系统的虚拟机、物联网实验箱及相关软件工具和硬件配件
四、操作方法与实验步骤 1、下载内核源代码
先查询原Linux系统内核版本,使用命令 uname a

下载linux-3.13.6.tar.xz 2下载xz-5.0.3.tar.bz2解压工具,然后编译安装
# tar xvf xz-5.0.3.tar # cd xz-5.0.3 # ./configure
# make
# make install 3、解压linux-3.13.6.tar.xz文件
# xz -d linux-3.13.6.tar.xz # tar xvf
linux-3.13.6.tar 4、内核定制步骤
1)清除临时文件、中间文件和配置文件make clean 2)确定目标系统的软硬件配置情况:CPU的类型、网卡型号、所需支持的协议等。
5、配置内核
make menuconfig:
基于文本模式的菜单型配置
6、编译内核 make zImage
make bzImage make uImage ARCH=arm CROSS_COMPILE=XXXarm-linux- 7、编译内核模块 make modules 8、安装内核模块


make modules_install 9、制作init ramdisk mkinitrd initrd - $version $version mkinitrd initrd-2.6.29
2.6.29 $version 可以通过查询/lib/modules下的目录得到

五、实验结果与分析
出现的问题:
当插入内核模块时,提示模块需要unloading属性。原因:内核配置时未选Module Unloading 解决方法:
Make menuconfig时选上Module Unloading,然后make zImage
六、讨论、心得
Linux内核的裁剪主要是根据嵌入式系统的功能与能耗限制把Linux内核中嵌入式不需要的那部分内核程序进行裁剪,从而实现内核程序的精简。对内核程序的裁剪要很熟悉内核程序有哪些部分组成以及各部分的功能。
本次实验只是简单地熟悉了Linux内核裁剪的一般步骤,所以要真正理解并掌握这门技术还有很多的东西要学。


实验名称 实验地点
实验八 内核模块的开发
博学楼
网络实验室
实验时间 53

一、实验目的和要求
掌握Linux内核模块的编写模式 了解makemakefileMakefile编程 掌握内核模块的运行原理 掌握内核模块的加载与卸载
二、实验内容和原理
参照教学课件(ppt 9-Linux驱动程序开发当中“内核模块设计”这一小节内容编写一个简单的内核模块程序。 参照教学实例代码内容编写Makefile 编写内核模块测试程序 编译内核模块 加载内核模块
运行内核模块测试程序,检验内核模块运行结果。
三、主要仪器设备 PC机、装有Linux操作系统的虚拟机
四、操作方法与实验步骤
1、编写内核模块文件,命名为hello.c
vi hello.c

3.编写Makefile文件
vi Makefile,文件代码如下:

4.删除先前编译产生的文件
make clean 5.编译内核模块
make 6.编译内核模块成功后,插入内核模块

insmod hello.ko 7.不需要再使用该内核模块时,删除该内核模块
rmmod hello
五、实验结果与分析
出现的问题:
在编译内核模块遇到提示:insmod...invalid module format,通过上网查找资料找到解决方案:
借助选项--force-vermagic强行插入
六、讨论、心得
本次实验需要掌握Linux内核模块的编写模式,了解makemakefileMakefile编程,掌握内核模块的运行原理,掌握内核模块的加载与卸载。通过这次实验让我更加了解了Linux的内核,对嵌入式Linux产生了比较浓厚的兴趣,达到了预期的实验目的。



理工大学Linux实验报告

相关推荐