- 博客(4)
- 资源 (4)
- 收藏
- 关注
原创 x86-64平台栈帧结构与ARM64栈帧结构对比
x86-64ARM64差异点ARM64平台上的栈帧寄存器是FP,它记录的是一个函数执行过程中的栈顶(FP=SP),并且把父函数的FP保存在堆栈的栈顶,以便于回溯X86-64平台上的栈帧寄存器是RBP,它记录的是一个函数执行过程中的栈底,并且把父函数的RBP位置保存到本函数的栈底,以便于回溯...
2020-08-24 11:49:53 2164 3
原创 centos内核编译安装与grub2启动配置
内核编译与安装makemake modulesmake modules_installmake install注意一定要先安装module,再安装kernel,因为安装kernel涉及到initramfs的安装,所以如果没有编译module就安装内核,可能会导致系统起不来。grub2配置配置文件:/boot/grub2/grub.cfg/boot/grub2/grubenv 有些人会访问修改/etc/grub2.cfg,实际上它也是上面文件的链接:ls -l /etc/grub2.
2020-08-31 16:12:22 2676
原创 如何检测内核模块的内存泄露
本文简单介绍两种调试内核ko时检测内存泄露的方法。slub debug需要依赖如下内核配置:CONFIG_SLUB=yCONFIG_SLUB_DEBUG=yCONFIG_SLUB_DEBUG_ON=yCONFIG_SLUB_STATS=y编译一下应用层的工具用于查看slab信息,工具代码在tools/vm目录中make slabinfo CFLAGS=-static完成之后,就可以加载自己开发的module了,场景测试后执行slabinfo查看是否存在内存泄露行为:查看slab信息:
2020-08-21 12:28:40 1335
原创 systemd启动流程分析
systemd启动过程systemd启动时会默认启动default.target配置,并且递归的处理它的依赖关系,一般这个配置为graphical.target 或者 multi-user.target。第一种会启动图形界面,第二种会启动多用户字符模式。下图是关键服务配置的启动依赖:下面将简单介绍启动中的4个关键步骤:第一步systemd 执行默认target 配置,配置文件/etc/systemd/system/default.target,它一般是一个软链接,指向multi-user.targ
2020-08-19 12:22:08 8583
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人