码迷,mamicode.com
首页 > 系统相关 > 详细

构建调试Linux内核网络代码的环境MenuOS系统

时间:2019-12-13 00:08:12      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:font   efi   ini   bre   lib   图片   org   通信   安装包   

本实验是在虚拟机中的Ubuntu 18.04系统下进行的。

一、安装编译Linux内核

mkdir LinuxKernel  
cd ~/LinuxKernel/
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.0.1.tar.xz #下载安装包

下载结果如下:

技术图片

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

技术图片

解压结果如图

安装所需依赖:

sudo apt install build-essential flex bison libssl-dev libelf-dev libncurses-dev

 

然后直接编译:

make

编译结果如图:

技术图片

 

 

二、制作根文件目录

sudo apt install qemu #安装qemu命令
mkdir rootfs
git clone https://github.com/mengning/menu.git
cd menu
sudo apt-get install libc6-dev-i386
vim Makefile

修改Makefile的内容为如图所示:

技术图片

然后启动MenuOS系统

make rootfs

如图所示:

技术图片

 

三、在MenuOS上完成TCP客户端和服务器发送和接收hello/hi

下载测试通信代码:

cd ~/LinuxKernel/ 
git clone https://github.com/mengning/linuxnet.git
cd linuxnet/lab2
make
cd ../../menu/
make rootfs

修改lab3下的Makefile的qemu为自己电脑的绝对路径:

cd ~/LinuxKernel/
cd linuxnet/lab3
vim Makefile

然后运行

make rootfs

最后在qemu中输入:

replyhi

hello

结果如图:

技术图片

 

 

 

四、证实通过gdb可以跟踪到内核代码

在qemu中启动gdb server:

qemu -kernel ../linux-5.0.1/arch/x86/boot/bzImage -initrd ../rootfs.img -append  nokaslr -s -S

重新打开一个终端:

gdb
file ~/LinuxKernel/linux-5.0.1/vmlinux
target remote:1234
break start_kernel
c   
list

结果如图所示:

技术图片

结果显示gdb可以追踪到内核代码

构建调试Linux内核网络代码的环境MenuOS系统

标签:font   efi   ini   bre   lib   图片   org   通信   安装包   

原文地址:https://www.cnblogs.com/qianzhusong/p/12032100.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!