• 2017-2018-1 《信息安全系统设计基础》实验一报告


    2017-2018-1 《信息安全系统设计基础》实验一报告

    本小组成员:2015530320155213

    ————————CONTENTS————————


    任务一 交叉编译环境

    实验步骤:

    • Step 1:如下图所示,开机时按F12,进入系统BIOS中,开启虚拟化功能。

    • Step 2:启动计算机进入Win7。用VMWare打开Ubuntu,用户名:linux,口令:1。

    • Step 3:建立实验目录“mkdir linux_20155213_20155303”。

    • Step 4:在实验目录中编写“helloworld”程序,另外补充几行打印所有组员的学号姓名。

    • Step 5:分别用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

    需要注意的是,执行arm.sh脚本时,首先需要使用chmod +x arm.sh命令赋予权限

    • Step 6:分别运行linuxhello,armhello,结果如下图:

    可以看出,在Linux中只能运行使用gcc编译的linuxhello,而无法运行使用gcc和交叉编译器arm-none-linux-gnuenbi-gcc编译的armhello。这是什么原因呢?

    我们使用file <文件名>来检测并显示文件类型:

    可以看出,linuxhello和armhello都为ELF文件,且目前均为“not stripped”,但不同的是,使用gcc编译的linuxhello适用于x86-64机器,而使用gcc和交叉编译器arm-none-linux-gnuenbi-gcc编译的armhello只能在arm实验箱上运行。

    返回目录


    任务二 目标机宿主机连通

    实验步骤:

    • Step 1:连接好arm实验箱的电源线,并将串口线、并口线与实验室的台式机相连。

    • Step 2:运行hypertrm软件,新建一个终端。并在属性中,将波特率设置为115200,其他值均为默认。

    • Step 3:打开超级终端,打开arm机电源开关,等待arm机的信息在超级终端的窗口显示。

    • Step 4:用ifconfig在超级终端中查看实验箱IP(目标机),在Ubuntu中(宿主机)中用ifconfig在命令行查看IP。记录下arm机的ip为:192.168.0.232。

    • Step 5:使用ping命令测试目标机与宿主机是否能连通。测试结果如下:

    返回目录


    任务三 目标机运行程序

    学习资源中第五周的“ARM实验箱实验指导书”的第二章,理解tftp和nfs的作用。

    【基础知识】:NFS方式是开发板通过NFS挂载放在主机(PC)上的根文件系统。此时在主机的文件系统中进行的操作同步反映在开发板上;反之,在开发板上进行的操作同步反映在主机中的根文件系统上。实际工作中,我们经常使用NFS方式挂载系统,这种方式对于系统的调试非常方便。

    • Step 1:打开虚拟机命令行终端,配置/etc/exports(需要sudo获取权限)

    sudo vim /etc/exports

    NFS允许挂载的目录及权限在文件/etc/exports中进行了定义。例如,我们要将/home/linux_20155213_20155303目录共享出来,那么我们只需要在/etc/exports文件末添加如下一行:

    /home/linux_20155213_20155303 *(rw,sync,no_root_squash,no_subtree_check)

    重启服务:

    sudo /etc/init.d/nfs-kernel-server restart

    • Step 2:在超级终端中用“mkdir /arm_20155213_20155303” 建立实验箱中程序运行目录“arm_20155213_20155303”

    • Step 3:在超级终端中运行“mount -t nfs -o nolock 192.168.0.230(宿主机IP):/home/linux/linux_20155213_20155303 /arm_20155213_20155303”。通过NFS把宿主机中的“linux_20155213_20155303” 映射到目标机中的“/arm_20155213_20155303”

    • Step 4:超级终端中运行"cd /arm_20155213_20155303"

    • Step 5:超级终端中运行"./armhello", 运行结果如下:

    返回目录


    任务四 目标机模块分解

    • Step 1:将上周编写的“系统调用版myod”拷到目标机与宿主机共享的文件夹中

    • Step 2:仿照“任务三”,编写编译脚本,生成可执行文件并在目标机上运行。运行结果如下:

    返回目录


    实验过程中遇到的问题及解决

    『问题一』:arm开发板、主机与虚拟机三者互ping无法连通

    『问题一解决』:按照以下步骤进行设置:

    • Step 1:确保本地连接属性里的VMware Bridge Protocol 前已勾选。

    • Step 2:打开cmd,输入net start vmnetbridge,以管理员身份开启服务。

    • Step 3:桥接到本地连接上,注意不要选Automaic,因为我们是将开发板与主机用网线直连。

    • Step 4:将主机、虚拟机、开发板的IP地址设为同一网段。

    • Step 5:再次尝试,即可ping通。

    『问题二』:如何改变虚拟串口COM?

    『问题二解决』:打开设备管理器,在端口(com和lpt)右键点击需要修改的串口,选属性。再切换到端口设置-高级,com端口号下拉列表里面选择需要的端口号,即可完成修改。

    返回目录


    实验感想与体会

    • 本次实验着重让我们进一步熟悉Linux开发环境的配置和使用,同时了解TFTP和NFS的作用,并使用NFS方式挂载文件系统,在Linux中编译程序,并将生成的可执行文件挂载到arm开发板上,从而完成程序在开发板上的运行。
    • 本次实验重点在任务三,任务一和任务二都是在为后面的编译和运行做铺垫。我们小组在做准备工作时也遇到了很多问题,比如arm开发板、主机与虚拟机三者互ping无法连通;由于未配置/etc/exports而导致无法挂载等等。但是在小组成员慢慢摸索的过程中,问题逐一被解决,接下来的任务得以高效完成。
    • 在接下来的实验中,希望小组成员继续默契配合,遇到问题共同商讨,在解决问题的过程中不断培养自学能力,继续努力提升自我。

    返回目录


    参考资料

    返回目录

  • 相关阅读:
    逆序对
    归并排序
    快速排序
    利用WPF InkCanvas水墨控件圈选移动笔画
    Vue使用websocket进行心跳连接
    socket + vue + canvas实践,你画我猜(一)
    Vue+WebSocket+ES6+Canvas 制作【你画我猜】小游戏
    HTML5 canvas实现画板功能
    Canvas手工作图并实时同步复现(利用websocket)
    什么是SoC?
  • 原文地址:https://www.cnblogs.com/Vivian517/p/7695219.html
Copyright © 2020-2023  润新知