本文介绍下qemu tcg下跟踪CPU指令执行的逻辑,并用一个小例子观察qemu跟踪指令 执行的效率。可以看到qemu跟踪指令执行的效率还是比较低的,在实际调试时,我们 更多采用不断缩小问题范围+指令执行跟踪来定位和调试问题。
无锁队列实现分析
本文分析无锁队列的实现逻辑,并给出一个简易无锁队列的C实现。
Linux内核memory barrier文档学习
有开发者翻译了Linux内核文档里memory-barrier.txt这篇文章(https://lkml.org/lkml/2023/8/11/83), 我们这里以这篇文章作为基础,逐段学习下相关内容。我们直接把翻译内容拷贝过来, 自己的学习内容会以注释的方式插入正文中,注释以comment:开头,注释为红色字体。
glib事件处理框架分析
本文分析glib中事件处理框架的基本逻辑,知乎上的这篇文章简单demo了下glib事件 处理的使用https://zhuanlan.zhihu.com/p/512939620,这篇文章写的不错,本文在 次基础上,具体看看glib是如何实现相关功能的。本文分析的glib库的版本是2.76.1, 分析基于ARM64机器,使用的系统是ubuntu20.04。
Linux动态链接模块间函数调用逻辑分析
文本整理Linux动态链接时模块间函数调用的逻辑,分析基于RISCV构架。
Inkscape基本概念
inkscape是一个开源的矢量图绘制软件,在windows和linux下都有对应的版本,inkscape和viso这样的矢量图工具相比灵活性太大, 这导致inkscape的功能强大,但是也不好掌握。本文是对inkscape里一些基本概念的介绍, 具体操作细节可以参考inkscape的官方指导文档或者网上的介绍视屏。本文用于持续收集整理inkscape的各种使用方法。
qemu tcg中helper函数的使用和实现分析
之前已经在各种qemu的分析中提到了helper函数,本文把这些信息总结整理到一起, 方便随后查看。helper函数中使用的各种技术也总结在这篇文档之中。分析基于qemu v7.1.50版本。
汇编代码里直接嵌入二进制
本文demo下在汇编中直接嵌入二进制的方法,使用qemu-aarch64调试。
riscv浮点指令整理
本文整理riscv上的浮点指令。整理依赖的spec版本是20191213,以来的qemu版本是v8.1.0-rc3。
RCU的原理和使用
本文描述RCU锁的基本原始和使用。详细代码分析需要合适的时机再补进来,太复杂了。