2017-2018-1 20155203 20155204 《信息安全系统设计基础》实验一:开发环境的熟悉

  • 实验目的

  • 熟悉开发环境

  • 实验步骤

  • 实验一-1-交叉编译环境

  1. 实验两人一组,最多三人一组
  2. 可以使用自己的笔记本,也可以使用实验室台式机,使用实验室机器的不用做本题
  3. 安装老师提供的software目录中的“VMware-workstation-full-10.0.1-1379776.exe”
  4. 解压老师提供的software目录中的“Ubuntu1204.rar”
  5. 用VMWare打开Ubuntu,用户名:linux,口令:1
  6. 建立实验目录"mkdir linux_组员1学号_组员2学号"
  7. 在实验目录中编写“hello word”程序,另外补充几行打印所有组员的学号姓名
  8. 参考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
  • 实验一 开发化境的熟悉-2-目标机宿主机联通

  1. 使用实验室机器不用安装软件,桌面上有相应图标
  2. 使用自己笔记本电脑的,解压超级终端软件“windows7st(Windows).rar”,并在桌面上建立快捷方式(这个不用在实验室做)
  3. 使用自己笔记本电脑的,到实验室把“USB转串口线”的USB口插入自己的电脑,把串口连到实验箱的COM0
  4. 参考视频配置超级终端,用超级终端作为实验箱的显示终端
  5. 用ifconfig在超级终端中查看实验箱IP(目标机),在Ubuntu中(宿主机)中用ifconfig在命令行查看IP
  6. 用网线连接实验室台式机(或自己笔记本电脑)和ARM实验箱的网口NET1(最大屏旁边的)
  7. 用ping命令保证目标机和宿主机能互相ping通,提交ping通的截图
  • 实验一 开发化境的熟悉-3-目标机运行程序

  1. 学习资源中第五周的“ARM实验箱实验指导书”的第二章,理解tftp和nfs的作用
  2. 在超级终端中用“mkdir /arm_组员1学号_组员2学号” 建立实验箱中程序运行目录“arm_组员1学号_组员2学号”
  3. 在超级终端中运行“mount -t nfs -o nolock 宿主机IP:/home/linux/linux_组员1学号_组员2学号 /arm_组员1学号_组员2学号”通过NFS把宿主机中的“linux_组员1学号_组员2学号” 映射到目标机中的“/arm_组员1学号_组员2学号”
  4. 超级终端中运行"cd /arm_组员1学号_组员2学号"
  5. 超级终端中运行"./armhello", 提交运行截图,并深入理解交叉编译
  • 实验一 开发化境的熟悉-4-目标机模块分解

  1. 在目标机上重现上周“系统调用版的myod”
  2. 以静态库或共享库的方式在目标机上重现上周“系统调用版的myod”
  3. 提交超级终端中的运行截图
  • 实验一 开发化境的熟悉-5-清理工作(只有用实验室机器的小组做)

实验结束后,把实验室原来的网线插回,否则以后做实验的同学无法开机,提交插好网线的照片。

  • 实验中的问题及解决过程

  • 问题一:armlinux无法在虚拟机中编译后运行,运行出错原因是:无法执行二进制文件

  • 问题一解决方案:armhello运行显示无法运行二进制文件,是因为编译器是64位而用file命令查看交叉编译器arm-none-linux-gnuenbi-gcc 是32位所以不能成功 因为没有32位库 可以在arm所在的文件中下载32位库,但是后来做实验意识到老师好像就是想要运行不出来的结果?

  • 问题二:超级终端配置的时侯显示没有除TCP/IP以外的选项

  • 问题二解决方案:应该在连接数据线后再进行这一操作,因为这个配置就是根据已连接设备进行配置的,而且不要太着急实验室的电脑超级慢的。

  • 问题三:映射文件夹时显示Permission denied

  • 问题三解决方案:更改路径文件。

  • 问题四:虚拟机无法安装打开。

  • 问题四解决方案:这其实是不应该出现的错误,毕竟以前安装过好几次了,就是没有打开虚拟化。

  • 新学到的知识点

    - 交叉编译
    就是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。
    
    - 宿主机与目标机
    在嵌入式开发过程中,有宿主机和目标机的角色之分:宿主机是执行编译、链接嵌入式软件的计算机;目标机是运行嵌入式软件的硬件平台。通常我们用的PC机就是宿主机,而我们用的开发板则是目标机
    - NFS
    NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
    
    - 超级终端
    
    终端,即计算机显示终端,是计算机系统的输入、输出设备。计算机显示终端伴随主机时代的集中处理模式而产生,并随着计算技术的发展而不断发展。迄今为止,计算技术经历了主机时代、PC时代和网络计算时代这三个发展时期,终端与计算技术发展的三个阶段相适应,应用也经历了字符哑终端、图形终端和网络终端这三个形态。超级终端是一个通用的串行交互软件,很多嵌入式应用的系统有与之交换的相应程序,通过这些程序,可以通过超级终端与嵌入式系统交互,使超级终端成为嵌入式系统的“显示器”。
    
    - file命令
    file命令用来探测给定文件的类型。file命令对文件的检查分为文件系统、魔法幻数检查和语言检查3个过程。
    
    [file命令](http://man.linuxde.net/file)
    
    
    
    - ...
    
posted @ 2017-10-20 11:16  20155204王昊  阅读(227)  评论(1编辑  收藏  举报