logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【代码模板】-Linux内核获取时间的接口和KO例子和一些接口

本文提供了一个Linux内核模块示例,用于演示常见的时间戳API使用方式。主要内容包括:1) jiffies相关操作,包括获取当前值、转换毫秒/微秒与jiffies之间的转换、时间比较等;2) 内核时间API,如获取单调时间、启动时间、纳秒级时间戳和实时时间;3) 定时器功能演示,包括初始化和回调处理;4) 时间转换工具函数。该模块还通过proc文件系统提供简单的用户接口,方便测试和查看当前时间信

#linux
代码模板-Linux内核模块添加参数的方法、原理与内部细节?(smod x.ko param1=xxx;MODULE_PARM_DESC;module_param)

可见定义了一个module_param_cb的函数,将名字以及比如param_ops_int的处理函数传入(包括地址和权限),然后进行处理。比如自定义module_param_cb替换module_param来定义一个struct kernel_param,以及他自己的处理函数。的这个变量,而这个变量的实际值是:“param1”,也就是module_param的第一个参数,然后THIS_MODUL

文章图片
#linux
微知-Linux内核中.data..percpu代码段什么?怎么定义的?(DEFINE_PER_CPU/DECLARE_PER_CPU/this_cpu_inc/this_cpu_dec)

在定位linux crash问题过程中,在使用rd读取堆栈(比如rd -s 0xffffabcd 64)这种的时候经常会看到.data…percpu的字段,是什么?怎么定义的?有什么问题?如何获取实际地址?

文章图片
#linux#服务器
微知-Linux内核自带的模块被压缩为ko.xz后如何恢复成不压缩版本?(xz -d xxx.ko.xz)

在使用crash定位问题的时候需要使用ko使用对应的符号信息。直接用ko.xz无法正确加载。需要恢复成ko文件。本文介绍如何解压缩。

文章图片
#linux#服务器
Linux内核驱动代码中Mellanox网卡的拥塞控制参数查看位置与作用?(mlx5_ifc_xxx_bits, np_cnp_dscp)

网卡上的拥塞控制参数,通过Linux debug fs灵活的提供给用户,比使用mlxreg命令更加方便和直接以及操作面更广泛。把握住主线,就能不被命令困惑。提交这些参数的patch: https://patchwork.kernel.org/project/linux-rdma/patch/20170530070515.6836-1-leon@kernel.org/Mellanox在Linux内核

文章图片
#linux
【1000个GDB技巧之】如何在远端服务器打开通过vscode动态观测Linux内核实战篇?

(也可以直接在vscode中配置,忽略)主要步骤:在~/.ssh/config中添加服务端的host,以便vscode的remote中能够登录。

文章图片
#服务器#vscode#linux
Linux内核中KASLR功能是什么?有什么作用?怎么破除?以及如何实操?(地址空间、layout random、kallsyms)

KASLR是一个什么技术点其实不重要,但重要的是有了KASLR这个功能后,造成内核中某个符号(函数 or 变量)在System.map中的地址和实际不一样了(实际: cat /proc/kallsyms),进一步带来了分析类似crash问题中的打印地址不准确问题。所以必须得知道这是什么?

文章图片
#linux
手撕烂笔头-Linux内核开发中常见的五类主要问题总结

看到一种总结五类问题,梳理方向还不错。

    共 77 条
  • 1
  • 2
  • 3
  • 8
  • 请选择