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

    本实验在“实验楼”的虚拟环境上完成(https://www.shiyanlou.com):

    一共3个任务:

    1、通过本地Linux系统或实验楼在线环境完成构建调试Linux内核网络代码的环境MenuOS系统

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

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

     

    一、搭建MenuOS系统

    打开桌面上的“Xface终端”:

    打开LINUX内核,然后从GitHub下载程序文件:

    使用make来编译lab2,然后make rootfs编译并生成根文件系统:

    然后运行MenuOS操作系统:

    二、验证MenuOS的网络可以正常工作

     使用命令replyhi,用hello来回复TCP服务:

     可以通信,验证成功!

     

    三、gdb跟踪内核代码

    重新打开一个终端,使用跟踪分析 LinuxKernel(内核) 的启动过程的 -s 和 -S 选项启动 MenuOS 系统。

     

     接着再重新打开一个终端,进入gdb调试阶段:

     

    (gdb)file linux-3.18.6/vmlinux   // 在targe remote 之前加载符号表
    (gdb)target remote:1234          // 建立 gdb 和 gdbserver 之间的连接

     

     start_kernel、sys_socketcall内核函数,设置断点跟踪:

     

     可以看出,函数start_kernel()在main函数的501行,函数sys_socketcall在2492行。

     实验完成!

  • 相关阅读:
    编码
    浏览器翻页
    验证码识别
    时间
    phantomjs配置
    产品
    java范型的理解
    使用JDBC连接数据库
    垃圾回收机制
    java的内存区域 && java内存模型
  • 原文地址:https://www.cnblogs.com/qyf2199/p/12030091.html
Copyright © 2011-2022 走看看