【FZU】2023Linux操作系统设计实践(上)

发布时间:2024年01月24日

一、软件安装

安装包老师会发(也可以私信我要)

安装vs2022

1.首先安装vs2022,如果电脑中已经装了其它版本的vs比如vs2019或者vs2013那就不需要装了。
在这里插入图片描述
下载在线安装包,双击VisualStudioSetup.exe。这个是在线安装包,确保你的电脑链接网络,出现下面对话框。(安装会比较久)
在这里插入图片描述
2.进去后出现主界面,在勾选这栏,当然你可以考虑一下安装的位置,系统一般默认安装到C盘,但有时C盘负荷太大你可以调到别的地方(建议还是默认安装):如果仅仅是写c++或c的代码什么的,按照下面就应该够用了
在这里插入图片描述
3.由于我们是要开发linux平台的程序,所以还要勾选下面这个
在这里插入图片描述
4.你可以根据自己硬盘情况选择安装路径
在这里插入图片描述

安装虚拟机

1.虚拟机软件,如果之前已经装了VMWare,可以不用装了。本次使用VirualBox这款虚拟机。如果没有安装虚拟机软件的的同学可以下载安装。
在这里插入图片描述
5.Linux系统使用ubuntu18.04.大家如果安装过ubuntu其它版本也是可以的。
6.安装SSH工具,具体安装方法如下:
在这里插入图片描述

VirtualBox设置桥接模式

1.打开VirutalBox界面,点击设置
在这里插入图片描述
在这里插入图片描述
2.设置完桥接模式后,要让Linux的ip地址和windows的ip地址在同一网段。所谓同一网段就是ip地址前面三个一样,最后一个不一样。 比如 192.168.20.11和192.168.20.99 就是同一网段。
在这里插入图片描述
在这里插入图片描述这个就是同一网段。
Linux下修改网卡ip命令:ifconfig enp0s3 192.168.20.21(根据具体需要)
互相ping通就可以
在这里插入图片描述

二、我的报告

实验环境

1、我所采用的是Linux内核版本5.4.0-84-generic,该内核版本是基于x86 64架构构建的。
2、Ubuntu版本号为18.04.01 LTS。
3、使用的虚拟机软件是Oracle VM VirtualBox。
4、通过在虚拟机终端中执行指令“sudo apt-get install build-essential”使apt 包管理器在 Ubuntu 系统中安装 “build-essential” 软件包。该软件包包含了在构建软件时常用的一些工具和库,包括编译器(如 gcc)、构建工具(如 make)、标准库和头文件等。
5、设置了网卡1与网卡2来保证连通Linux和windows。
将网卡1设置为NAT模式来保证虚拟机能够正常上网。
将网卡2设置为桥接模式来保证Linux能够与windows相互连通。
互ping结果如下:
图1 虚拟机ping主机
图2 主机ping虚拟机
6、在主机端安装VScode用于开发Linux平台的程序。

报告内容

步骤:

  • 打开VS
    • 创建一个新的C++项目
    • 在项目中包含必要的头文件
    • 编写代码
    • 编译并运行代码。

第一次课程内容:
配置相关实验环境并且编写一个简单的基于TCP通讯协议的程序。程序代码如下:
请添加图片描述
在这里插入图片描述
图3 第一次课程代码
上述代码运行结果如下:
图4 第一次课程结果
第二次课程内容:
第一次课程所写的服务器程序存在一个很大的问题就是只能接受一个客户端的连接。因此在本次课程中,我们对服务器程序进行改进,采用多线程方式解决问题,在这其中会遇到一个编译问题:“对“pthread_create”未定义的引用”,对于这个问题需要在调试->属性->链接器->命令行中输入“-pthread”即可解决,如图12。还需要编写一个TCP网盘客户端,该客户端具有1.查询文件、2.下载文件、3.上传文件、4.退出文件等四个功能,而在这次课程,我们只完成了1.查询文件的功能。具体实现代码如下:
服务器:
请添加图片描述
请添加图片描述
请添加图片描述
图5 服务器代码
客户端:
请添加图片描述
请添加图片描述
图6 客户端代码
编写程序过程中的相关运行结果截图如下:

  1. 未使用多线程时的客户端与服务器连接结果:
    图7 结果1
  2. 未使用多线程时的客户端与服务器通讯结果:
    请添加图片描述图8 结果2
  3. 使用多线程时的多客户端与服务器连接结果:
    图9 结果3
  4. 在服务器上输出家目录/home/xxwu下的文件名信息:
    图10 结果4
  5. 服务器成功将家目录/home/xxwu下的文件名信息发送至客户端:
    图11 结果5
    图12 问题解决

实验总结

经过这两次课程的学习,学到了很多非常宝贵的知识。从最开始的配置虚拟机环境,到最后的服务器与客户端相互通讯,过程虽然艰难,但好在结局是美好的。
都说万事开头难,在这个课程我又一次的体会到了这句话的真谛。在最开始的配置虚拟机中,我就遇到了众多困难,由于之前从未接触过虚拟机,导致我对这一概念非常模糊,在配置时只能跟着文档摸索,但是文档似乎也没有非常齐全,例如没有明确说明NAT模式的设置以及在互ping时的细节问题,这使得我在Linux和windows互ping时就花费了很多时间。但好在最后经过同学和老师的指导实现成功互ping。
之后,在课堂中认真跟随老师的讲解,逐步编写这次实验的程序,在跟随老师的步伐中我也收货颇多,了解了很多之前所不知道的库和函数,在课后也对这些库和函数的用法进行了深入的理解。此外,还学会了cd、cd ~、clear等等的指令用法。
最后,想说的是感觉这个实验还是有一定的问题,问题在于每次换wifi时,ip地址会改变,导致需要更改虚拟机的ip地址。虽然这个过程很繁琐,但是也确实很有用,能够帮助我们熟练掌握互ping的操作。总之,在这两次课程之中,我的收货很多。

文章来源:https://blog.csdn.net/wxx0912_yjs/article/details/135773635
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。