2018-2019-1 《信息安全系统设计基础》实验一:开发环境的熟悉--实验报告
2018-2019-1 《信息安全系统设计基础》实验一:开发环境的熟悉--实验报告
小组成员:20165221 谭笑 20165225 王高源
模块一:交叉编译环境
- 可以使用自己的笔记本,也可以使用实验室台式机,*
- 如附图,开机时按
F12
,进入系统BIOS中,开启虚拟化功能 - 用VMWare打开Ubuntu,建立实验目录"mkdir linux_20165225_20165221"
- 在实验目录中编写“helloword”程序,另外补充几行打印所有组员的学号姓名
#include<stdio.h>
int main()
{
printf(Hello,World!\n");
printf("Hello,5225王高源\n");
printf("Hello,5221谭笑\n");
return 0;
}
![image]
)
- 参考bocsd目录中的脚本
armc.sh
, 分别用gcc和交叉编译器arm-none-linux-gnuenbi-gcc
编译hello.c
,用gcc编译的可执行文件命名linuxhello:gcc hello.c -o linuxhello
; 用arm-none-linux-gnuenbi-gcc
编译的命名为armhello: /usr/local/toolchain/toolchain4.3.2/bin/arm-none-linux-gnuenbi-gcc hello.c -o armhello
- 分别运行
linuxhello
,armhello
,有什么结果,提交截图并用file命令分析原因。
模块二:目标宿主机连通
- 连接
arm
试验箱的电源,串口线和并口线与实验室的台式机相连 - 运行
hypetrm
,进行波特频率设置 - 打开终端,看到arm机的信息显示在终端中
- 用ifconfig在超级终端中查看实验箱IP(目标机),在Ubuntu中(宿主机)中用ifconfig在命令行查看IP地址:IP地址
- 使用ping命令查看测试目标机与宿主机是否能连通
模块三:目标机运行程序
- 打开命令行终端,配置
/etc/exports
sudo vim /etc/exports
- 共享目录操作:在/etc/exports文件末添加:
/home/linux_20165225_20165221 *(rw,sync,no_root_squash,no_subtree_check)
,下一步进行重启操作:sudo /etc/init.d/nfs-kernel-server restart
- 在试验箱中建立运行目录:arm_20165225_20165221,键入
/arm_20165225_20165221
- 终端中运行
mount-t nfs -o nolock
宿主机IP地址,通过NFS将宿主机中的linux_20165225_20165221
映射到目标机的/arm_20165225_20165221
- 进入目标机的相关目录下:
cd /arm_20165225_20165221
- 键入
./armhello
查看运行结果
交叉编译:
- 因为目的平台上不允许或不能够安装我们所需要的编译器,而我们又需要这个编译器的某些特征;有时是因为目的平台上的资源贫乏,无法运行我们所需要编译器;有时又是因为目的平台还没有建立,连操作系统都没有,根本谈不上运行什么编译器。
基础知识:
- 宿主机(host) :编辑和编译程序的平台,一般是基于X86的PC机,通常也被称为主机。
- 目标机(target):用户开发的系统,通常都是非X86平台。host编译得到的可执行代码在target上运行。
tftp与nfs:
- NFS:NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
- TFTP:TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。
虚拟化时遇到的问题
- 解决方式:重新开机,进入BIOS后,修改
Intel(R) Virtualization Tech
,改为Enabled
后,按F10保存设置,在进入win7