2019-2020-1 20175313 20175328 20175329 实验一 开发环境的熟悉
一、实验内容
(1)交叉编译环境
- 建立实验目录"mkdir linux_组员1学号_组员2学号_组员3学号"
在实验目录中编写“hello word”程序,另外补充几行打印所有组员的学号姓名- 参考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命令分析原因。
(2)目标机宿主机联通
- 用ifconfig在超级终端中查看实验箱IP(目标机),在Ubuntu中(宿主机)中用ifconfig在命令行查看IP
- 用网线连接实验室台式机(或自己笔记本电脑)和ARM实验箱的网口NET1(最大屏旁边的)
- 用ping命令保证目标机和宿主机能互相ping通,提交ping通的截图
(3)目标机运行程序
学习资源中第五周的“ARM实验箱实验指导书”的第二章,理解tftp和nfs的作用
- 在超级终端中用“mkdir /arm_组员1学号_组员2学号_组员3学号” 建立实验箱中程序运行目录“arm_组员1学号_组员2学号_组员3学号”
- 在超级终端中运行“mount -t nfs -o nolock 宿主机IP:/home/linux/linux_组员1学号_组员2学号 /arm_组员1学号_组员2学号__组员3学号”通过NFS把宿主机中的“linux_组员1学号_组员2学号” 映射到目标机中的“/arm_组员1学号_组员2学号_组员3学号”
- 超级终端中运行"cd /arm_组员1学号_组员2学号_组员3学号"
- 超级终端中运行"./armhello", 提交运行截图,并深入理解交叉编译。
二、实验过程中遇到的问题及其解决方法
- 问题1:一开始没有弄清楚桥接模式与NAT模式下的区别。将NAT模式下的PING通,误认为两台虚拟机之间成功PING通。其实NAT模式下,发出ping请求包的ip是宿主机的ip,所以两台虚拟机之间的ping就相当于是主机自己ping自己,当然能够ping通。
- 理解情况:NAT模式下虚拟机想访问外网,就必须通过宿主机的IP地址,所以发出的请求包也是宿主机的ip地址。NAT模式下,不需要自己来手动分配IP地址和子网掩码,它能够自动获取ip地址。因此想要超级终端能够与虚拟机成功ping通必须设置为桥接模式,否则自动获取的ip地址如果与超级终端的ip地址不在同一个网段就无法ping通。
- 解决方法1:重新设置模式为桥接模式,截图如下:
- 问题2:在虚拟机上执行
ipconfig
命令,找不到其对应的ip地址
- 解决方法2:之前虚拟机没网的时候,查看博客Ubuntu网络连接显示“设备未托管”解决办法要求NAT模式下将静态地址改为自动获取,而现在是桥接模式下,我需要重新设置静态地址。
- 问题3:电脑上找不到COM3端口,截图如下:
- 解决方法:尚未解决。
- 问题4:借用别人电脑,ping通后显示
Bad file descriptor
错误,截图如下:
- 解决方法4:参考NFS服务器搭建与配置进行文件挂载的相关配置,具体步骤如下:
- 打开Ubuntu命令行终端,配置/etc/exports
sudo vim /etc/exports
- 在/etc/exports文件末添加如下一行:
/home/bocsd *(rw,sync,no_root_squash,no_subtree_check)
- 保存并退出后重启一下服务
sudo /etc/init.d/nfs-kernel-server restart
- 后面任务3的配置同上,只要修改相应的文件名即可,截图如下:
- 问题5:进行挂载时,显示
Device or resource busy
,截图如下:
- 解决方法5:关闭超级终端,再重新打开一个超级终端进行配置即可。
三、心得体会
- 这次实验看起来内容不多,但是不用配置好的实验室的电脑,就会出现各种各样的问题,导致花费许多时间进行解决。
- 但是,与此同时也锻炼了我自己解决问题的能力,还让我更加了解NAT模式与桥接模式的区别和适用场所。顺便解决了我信息安全技术的实验上没弄懂的问题(为什么用虚拟机ping www.baidu.com,显示的源地址是主机的ip地址)。
- 对于文件共享也有了进一步的了解,这对于我接下来要做的木马植入,提供了一定的思路。
- 最后,我的小伙伴们真的是巨给力。我们一起解决面临的各种问题,最终成功完成实验,终究没能学会PS这项技能。