linux在menu创建子目录测试,构建调试Linux内核网络代码的环境MenuOS系统

实验目标

通过本地Linux系统完成构建调试Linux内核网络代码的环境MenuOS系统

截图证实已经在MenuOS上能够完成TCP客户端和服务器发送和接收hello/hi,也就是MenuOS的网络可以正常工作

截图证实通过gdb可以跟踪到内核代码,比如start_kernel、sys_socketcall等内核函数

实验环境

内核代码:Linux 5.0.1;

操作系统:Ubuntu19.04;

qemu:本次使用的模拟器,运行内核代码;

gdb:linux下的断点调试工具;

实验过程

一、构建MenuOS系统

创建一个目录kernel,下载linux-5.0.1内核,下载相关编译工具,编译。命令如下:

mkdir kernel   #创建目录

cd kernel #进入此目录

wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.0.1.tar #下载内核

xz -d linux-5.0.1.tar.xz # 解压缩

tar-xvf linux-5.0.1.tar #解压缩

cd linux-5.0.1#进入刚解压缩的内核文件夹

sudo apt install build-essential flex bison libssl-dev libelf-dev libncurses-dev #下载编译工具

接着开始配置

sudo make i386_defconfig #生成32位的配置文件

make menuconfig #开启文本菜单选项,对窗口有限制,尽量调大窗口

输入以上命令后出现如下界面:

20191212211408838302.png

找到最后一个选项Kernel hacking

20191212211408972096.png

按回车后,选则Compile-time checks and compiler options

20191212211409053154.png

按回车后选择Compile the kernel with debug info,按Y,前面的方括号中出现星号即为选中

20191212211409140071.png

选择下方Save

20191212211409220153.png

选择OK,然后一路EXIT退出。

接着漫长的编译过程。

make

编译完成后,安装模拟器qemu

sudo apt-get install qemu

构造MenuOS

cd /kernel #进入工作目录

mkdir rootfs #创建MenuOS根目录

sudo git clone https://github.com/mengning/menu.git #下载menu系统

cd menu

sudo apt-get install libc6-dev-i386 #在64位环境编译32位需要安装

sudo chmod777Makefile #将Makefile从只读修改为可读写

vim Makefile #修改Makefile中的内核版本

20191212211409301210.png

sudo make rootfs #初始化根目录

20191212211409349064.png

测试MenuOS环境#

将TCP网络通信程序的服务器端集成到MenuOS系统

cd /kernel #进入工作目录

sudo git clone https://github.com/mengning/linuxnet.git #下载实验代码

cd linuxnet/lab2 #进入服务器目录

sudo make #编译前检查一下Makefile文件中的目录是否与自己的匹配

cd ../../menu/sudo make rootfs #编译,将服务器端集成到系统中

将TCP网络通信程序的客户端集成到MenuOS系统

cd /kernel #进入工作目录

cd linuxnet/lab3 #进入客户端目录

sudo make #同样,在编译前检查一下Makefile,修改其内核版本

sudo make rootfs #编译,将客户端集成到系统中

在我们将客户端与服务器端都集成到系统之后,qemu虚拟机所显示的结果与之前构建MenuOS的相同。

但是输入命令help后会看到其中已经添加了客户端以及服务器端所对应的replyhi和hello命令。

20191212211409381292.png

20191212211409463326.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值