Fork me on GitHub

Coding Poineer

Coding Poineer

Coding Poineer

Coding Poineer

Coding Poineer

Coding Poineer

Coding Poineer

Coding Poineer

Coding Poineer

Coding Poineer

Coding Poineer

构建调试Linux内核网络的环境Menuos系统

一.Linux内核源码下载

下载网址为:https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.0.1.tar.xz
下载完成后放入home/MenuOS中

然后解压缩包:
tar -xvf linux-5.0.1.tar

二.安装内核编译工具


	sudo apt install build-essential flex bison libssl-dev libelf-dev libncurses dev 
	make x86_64_defconfig  #生成64位x86的配置文件  
	make menuconfig #配置编译内核

三.准备qemu模拟器加载内核

**1.下载安装QEMU **


	cd ..
	sudo apt install qemu
	qemu-system-x86_64 -kernel linux-5.0.1/arch/x86_64/boot/bzImage
	#构建MenuOS的根文件目录rootfs 
	mkdir rootfs
	#git clone所给的munuOS文件
	git clone https://github.com/mengning/menu.git
	cd menu
	sudo apt-get install libc6-dev-i386

2.构造MenuOS

需要编辑一下menu目录下Makefile文件的如下内容
然后在~/MenuOS/menu路径下执行make rootfs命令,
成功在能看到如下界面

四.MenuOS上能够完成TCP客户端和服务器发送和接收hello/hi

1.把程序集成至MenuOS中测试

'''

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

'''

在QEMU下测试输入如下命令:

	
	Replyhi
	Hello

五.GDB进行内核代码跟踪

首先,修改menu目录下的Makefie文件
此时在~/MenuOS/menu路径下输入 make rootfs

出现下图所示情况。此时不需要关闭终端以及QEMU界面


	gdb
	file ./linux-5.0.1/vmlinux
	target remote:1234
	break start_kernel
	list

gdb跟踪到内核代码start_kernel

posted @   365/24/60  阅读(251)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示