这篇文章是《图解密码技术》的读书笔记。希望没有密码技术背景的人或是没有读过这本 书的人通过这篇文章迅速建立起密码技术的基本概念。 各种密码技术就是用来保密,我们从具体的场景看起, 然后引出各种应对的手段。
一种硬件队列的驱动设计
本文是一个硬件队列的软件设计,从中可以看出我们的设计中到底应该写些什么。
SMMU的BBML语意
本文整理SMMU和ARM里BBML相关的逻辑。
Linux IO DMA地址映射流程分析
本文分析Linux内核中IO DMA地址映射的流程,其中涉及到的具体iommu硬件以及驱动, 我们分析ARM SMMUv3的相关的实现。分析内容基于Linux主线5.13-rc4。
用mprotect定位踩内存问题
本文以一个实际的例子介绍如何使用mprotect定位踩内存的问题
linux O_CLOEXEC标志位笔记
本文介绍Linux O_CLOEXEC标志位的语意
Linux信号笔记
Linux中可以用信号来做通信,本文是对linux信号的一个使用总结。也会总结下APUE第10 章中关于信号的内容。
perf flame graph笔记
本文记录使用Linux下使用perf生成火焰图的方法
锁使用的一些笔记
在Linux系统下编程的时候,当需要保护特性数据结构的时候会用到各种锁。本文记录作者在实际使用时候的一些心得。
Linux SVA特性分析
最近Linux社区在上传SVA特性(share virtual memory), 简单讲这个特性可以达到 这样的功能,就是可以是设备直接使用进程里的虚拟地址。如果把设备操作映射到用户态, 就可以在用户态叫设备直接使用进程虚拟地址。设备可以使用进程虚拟地址做DMA,如果 设备功能强大,比如可以执行一段指令,设备甚至可以直接执行相应进程虚拟地址上的 指令。目前SVA特性正处于上传阶段,这个特性的补丁涉及到IOMMU, PCI, 内存管理(MM), SMMU, VFIO, 虚拟化,DT, ACPI等方面的修改,所以补丁比较分散,不过好在这个特性的 上传者把相关补丁收集在了一个分支上,即https://jpbrucker.net/sva/ 的sva/current 分支上。想要了解SVA的整体,可以直接查看这个分支上的各个提交。需要说明是,这个 分支的base是5.2-rc7, 在5.3中这个分支上的少量补丁已经合入Linux主线,如果想用最 新内核测试SVA需要做一定的适配工作。本文的分析以base是5.2-rc7的sva/current分支 上的补丁为基础。