zoukankan      html  css  js  c++  java
  • 构建调试Linux内核网络代码的环境MenuOS系统

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

    下载linux内核并编译

    1. 下载linux源码

    下载地址,下载之后解压即可。【本次使用的linux-5.0.1版本】

    安装编译所需的工具
     1 sudo apt install build-essential flex bison libssl-dev libelf-dev libncurses-dev 

    生成X86配置文件

    1 make i386_defconfig#生成x86的配置文件
    2 make menuconfig

    进入GUI编辑配置文件的生成

    依次选择:Kernel hacking  =====》 Compile-time checks and compiler options ====》Compile the kernel with debug info 然后保存配置文件并退出。

    之后make开始编译:

    1 make

    通过qemu来加载menuOS

    首先安装qemu工具

    1 sudo apt-get install qemu

    建立软连接,使得之后可以直接执行qemu

    1 sudo ln -s /usr/bin/qemu-system-i386  /usr/bin/qemu

    制作根文件系统:

    1 git clone https://github.com/mengning/menu.git
    2 mkdir rootfs  #创建根文件系统
    3 cd menu
    4 sudo apt-get install libc6-dev-i386 #在64位环境下编译32位安装
    5 vim Makefile  #修改git来的menu下的Makefile文件
    6 qemu -kernel /home/lmm/linux-5.0.1/arch/x86/boot/bzImage -initrd ../rootfs.img
    7  make rootfs  #初始化根目录

    得到:

    成功!

    通过gdb可以跟踪内核代码

    另外打开一个终端,输入

    gdb
    flie /home/lmm/linux-5.0.1/vmlinux
    break start_kernel #打断点,跟踪内核代码执行
    c #执行

    查看跟踪结果:

    可以看到成功跟踪到start_kernel内核函数。

    验证MenuOS的网络可以正常工作【TCP通信】

    下载老师的通信代码:

    1 git clone https://github.com/mengning/linuxnet.git

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

    1 qemu -kernel /home/lmm/linux-5.0.1/arch/x86/boot/bzImage -initrd ../rootfs.img

    然后分别在lab2和lab3执行如下代码:

    1.make rootfs

    然后使用help查看可食用命令并键入一下代码验证可使用TCP通讯:【如下】

  • 相关阅读:
    Spring_3.1
    handler发消息的形式
    css元素排列
    利用Socket远程发送文件
    jtree添加节点
    url传参中文乱码
    struts action和jsp之间的传值
    Struts 404 The requested resource is not available
    tomcat server需要重启的时刻
    c++获取系统时间(引用别人的博文)
  • 原文地址:https://www.cnblogs.com/tlxclmm/p/12029766.html
Copyright © 2011-2022 走看看