关于内核编程的一些笔记

一 引言

在进行linux内核编程时,有一些心得,记录一下。

二 内核编程遇到的问题

  • 内存管理复杂。
  • 调试麻烦,不能很好的定位到错误。
  • 不同的内核,类型定义不同,如指针的长度是4字节还是8字节。
  • 跨平台移植,需要在不同平台下实现内容,如文件、库载入等。

三 相关技巧

1 内核中查看符号表是否存在

复制代码
cat /proc/kallsyms | grep filp_open

filp_open,是具体的函数名,根据需要替换。

2 内核函数符号表导出

复制代码
EXPORT_SYMBOL(AddFunction);

3 设置串口主动输出

复制代码
echo 8 > /proc/sys/kernel/printk

但是,该命令写到/root/rc.local中不好用,不知为何。

4 使用objdump反汇编

使用如下命令:

复制代码
aarch64-linux-gnu-objdump -S XXX.ko > XXX

可以将ko文件反汇编,其中-S是包含源代码。

三 错误解决

1 丢失modinfo

现象如下:

复制代码
missing .modinfo section): module has no symbols (stripped?)

可以通过modinfo命令查看模块信息。

四 小结

以上为笔记,并不成体系。但是通常我会及时记录,慢慢的就成体系了。

相关推荐
一米阳光866114 小时前
软考(中级)软件设计师核心笔记(3)数据库系统——概念、数据库设计
数据库·笔记·职场发展·软考·软件设计师
乌萨奇也要立志学C++15 小时前
【Linux】网络基础 从零理解网络通信:局域网、跨网传输与 Socket 预备知识
linux·服务器·网络
漏刻有时15 小时前
PHP GeoJSON转PNG地图渲染程序开发笔记、源码解读、问题复盘与整改方案
android·笔记·php
暗影凋落16 小时前
CMake构建学习笔记-SQLite库的构建
笔记·学习·sqlite
RisunJan17 小时前
Linux命令-slabtop(实时显示内核 slab 缓存信息)
linux
zzm62818 小时前
精读KDD 2017最佳论文:通过类比挖掘加速创新 | 阅读笔记
笔记
你有哈莫吗18 小时前
CMake构建学习笔记-iconv库的构建
笔记·学习
蚰蜒螟19 小时前
从内核源码看Linux启动:chroot、execve与MS_MOVE的协奏曲
linux·服务器·网络
酷可达拉斯19 小时前
自动化运维-ansible配置文件与主机清单
linux·运维·自动化·ansible
影视飓风TIM20 小时前
Linux下C语言缓冲区原理 + Git版本控制
linux·c语言·git