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命令分析原因。
    2019-2020-1 20175313 20175328 20175329 实验一 开发环境的熟悉_第1张图片

(2)目标机宿主机联通

  • 用ifconfig在超级终端中查看实验箱IP(目标机),在Ubuntu中(宿主机)中用ifconfig在命令行查看IP
  • 用网线连接实验室台式机(或自己笔记本电脑)和ARM实验箱的网口NET1(最大屏旁边的)
  • 用ping命令保证目标机和宿主机能互相ping通,提交ping通的截图
    2019-2020-1 20175313 20175328 20175329 实验一 开发环境的熟悉_第2张图片
    2019-2020-1 20175313 20175328 20175329 实验一 开发环境的熟悉_第3张图片
    2019-2020-1 20175313 20175328 20175329 实验一 开发环境的熟悉_第4张图片

(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", 提交运行截图,并深入理解交叉编译。
    2019-2020-1 20175313 20175328 20175329 实验一 开发环境的熟悉_第5张图片

二、实验过程中遇到的问题及其解决方法

  • 问题1:一开始没有弄清楚桥接模式与NAT模式下的区别。将NAT模式下的PING通,误认为两台虚拟机之间成功PING通。其实NAT模式下,发出ping请求包的ip是宿主机的ip,所以两台虚拟机之间的ping就相当于是主机自己ping自己,当然能够ping通。
  • 理解情况:NAT模式下虚拟机想访问外网,就必须通过宿主机的IP地址,所以发出的请求包也是宿主机的ip地址。NAT模式下,不需要自己来手动分配IP地址和子网掩码,它能够自动获取ip地址。因此想要超级终端能够与虚拟机成功ping通必须设置为桥接模式,否则自动获取的ip地址如果与超级终端的ip地址不在同一个网段就无法ping通。

    2019-2020-1 20175313 20175328 20175329 实验一 开发环境的熟悉_第6张图片

  • 解决方法1:重新设置模式为桥接模式,截图如下:

    2019-2020-1 20175313 20175328 20175329 实验一 开发环境的熟悉_第7张图片
    2019-2020-1 20175313 20175328 20175329 实验一 开发环境的熟悉_第8张图片

  • 问题2:在虚拟机上执行ipconfig命令,找不到其对应的ip地址

    2019-2020-1 20175313 20175328 20175329 实验一 开发环境的熟悉_第9张图片

  • 解决方法2:之前虚拟机没网的时候,查看博客Ubuntu网络连接显示“设备未托管”解决办法要求NAT模式下将静态地址改为自动获取,而现在是桥接模式下,我需要重新设置静态地址。

    2019-2020-1 20175313 20175328 20175329 实验一 开发环境的熟悉_第10张图片
    2019-2020-1 20175313 20175328 20175329 实验一 开发环境的熟悉_第11张图片

  • 问题3:电脑上找不到COM3端口,截图如下:

    2019-2020-1 20175313 20175328 20175329 实验一 开发环境的熟悉_第12张图片
    2019-2020-1 20175313 20175328 20175329 实验一 开发环境的熟悉_第13张图片

  • 解决方法:尚未解决。
  • 问题4:借用别人电脑,ping通后显示Bad file descriptor错误,截图如下:

  • 解决方法4:参考NFS服务器搭建与配置进行文件挂载的相关配置,具体步骤如下:

    1. 打开Ubuntu命令行终端,配置/etc/exports
      sudo vim /etc/exports
    2. 在/etc/exports文件末添加如下一行:
      /home/bocsd *(rw,sync,no_root_squash,no_subtree_check)
    3. 保存并退出后重启一下服务
      sudo /etc/init.d/nfs-kernel-server restart
  • 后面任务3的配置同上,只要修改相应的文件名即可,截图如下:

    2019-2020-1 20175313 20175328 20175329 实验一 开发环境的熟悉_第14张图片
    2019-2020-1 20175313 20175328 20175329 实验一 开发环境的熟悉_第15张图片

  • 问题5:进行挂载时,显示Device or resource busy,截图如下:

    2019-2020-1 20175313 20175328 20175329 实验一 开发环境的熟悉_第16张图片

  • 解决方法5:关闭超级终端,再重新打开一个超级终端进行配置即可。

    2019-2020-1 20175313 20175328 20175329 实验一 开发环境的熟悉_第17张图片

三、心得体会

  • 这次实验看起来内容不多,但是不用配置好的实验室的电脑,就会出现各种各样的问题,导致花费许多时间进行解决。
  • 但是,与此同时也锻炼了我自己解决问题的能力,还让我更加了解NAT模式与桥接模式的区别和适用场所。顺便解决了我信息安全技术的实验上没弄懂的问题(为什么用虚拟机ping www.baidu.com,显示的源地址是主机的ip地址)。
  • 对于文件共享也有了进一步的了解,这对于我接下来要做的木马植入,提供了一定的思路。
  • 最后,我的小伙伴们真的是巨给力。我们一起解决面临的各种问题,最终成功完成实验,终究没能学会PS这项技能。

四、参考资料

  • 关于Linux安装中NAT模式和桥接模式的区别详解
  • NFS服务器搭建与配置
  • Ubuntu 网络连接显示“设备未托管”解决办法
  • 2018-2019-1 20165318 20165322 20165326 实验一 开发环境的熟悉

你可能感兴趣的:(2019-2020-1 20175313 20175328 20175329 实验一 开发环境的熟悉)