- 博客(11)
- 资源 (1)
- 收藏
- 关注
原创 openssl加密套件-学习-实例-笔记
openssl,众所周知用于对socket通信过程添加ssl支持,曾强安全性实际上还可以使用里面丰富的加解密算法,对数据进行加解密。
2024-02-28 14:06:54
517
1
原创 sqlite3 学习-实例-笔记
sqlite3,众所周知用于单个程序的轻量化数据库。可以比较方便的使用,无额外依赖、开源的特点。可以结合c、python、java等可以较为方便的使用。
2024-02-28 12:02:51
1007
1
原创 论文阅读-Black-box Concurrent Data Structures for NUMA Architectures
全局数据时常需要在不同线程或者说numa节点中进行共享。比如操作系统中的内存管理的数据,多核应用的全局数据等。这些数据都需要较好的并行性支持(Concurrent data structure)。提出了一种能够适应NUMA结构的黑箱算法,能够比较方便地实现数据结构的并行,并获得很好的性能。
2021-11-05 16:15:12
295
1
原创 匿名内存生命周期
前文再接,现在来说说,linux操作系统的内存管理部分. 当然, 这里主要是描述匿名内存部分, 他是怎么和内核交互,获取和返还内存的
2021-10-20 17:25:00
281
原创 说一次访存
内存从一次访存动作说起一次访存cpu访问一个内存地址开始,导致都经历了什么样的过程?我将尝试阐述我的理解,欢迎讨论/aboutme;流程为:cpu发出访存指令查找tlb找不到发出tlb refill例外,无效,则发出tlb invalid例外,写但只读则tlb modified例外,让操作系统处理查找cache没有则读内存,内存也没有,则发出缺页中断例外略,在操作系统方面来处理缺页中断这个部分的逻辑处理主要在do_page_fault进入。
2021-08-13 23:33:06
929
原创 内核模块与用户空间通信-linux kernel4.4
如前文所述,是在4.11验证过的版本。那么之前的版本呢?这个时候会发现很多接口都发生了变化差别经过对比,主要在于mmap的接口需要改动。// 在4.4.125struct page* mmap_nopage(struct vm_area_struct* vma, struct vm_fault* vmf);// 在4.4.0int vm_fault(struct vm_fault *vmf);经过对比,主要原因在于两个版本间vm_fault的变化,在后续的内核改动中,vm_...
2021-04-16 14:48:43
119
原创 RDMA示例
这是一个比较有趣的技术吧,可以直接访问远端内存,而不需要远端cpu相应来处理。更多的介绍可以参考其他文章。这里主要是尝试构建一个简单的示例来展示rdma的基本使用。参考官方文档, 可以比较简单的跑起来一个测试程序我拷到了一个仓库里,可以直接打开测试。下面讲述一下里面的一个操作流程。如果内容上,对名词等有不懂的话,可以期待下我的另一篇文章~初始化获取设备上下文ibv_get_device_name获取设备列表然后ibv_open_device来打开其中一个...
2021-03-31 18:46:52
450
原创 内核模块与用户空间通信
忽然发现网上很多实例都跑不了,实际上应该是因为他们都是类似参考文献那种,应该是3.x的系统接口。我这里测试是在4.11上。方法/proc这个算是比较简单大致上是在内核模块先申请一段内存,然后重写一些读写操作(在这里可以加入自己的逻辑,收到信息要怎么做之类的)进去,套用接口挂接上去就可以了。这个时候会建立出一个文件如/proc/testfile之类的用户空间只需要像读写正常文件一样操作这个文件就可以完成交互mmap共享内存应该是最快的通信方法。先建立一个设备文...
2021-03-29 11:30:22
369
4
原创 离散数学 p313 所有顶点都是偶度数的连通图有欧拉回路 证明
假设有连通图的每一个节点都是偶度数,却没有欧拉回路。选择其中边数最小的一个。显然G的顶点数大于1,否则只有一个偶度数顶点的图显然是有欧拉回路的。 我们先证明G一定有最少一个回路。假如v是G中一个固定的顶点,则由于G是连通的而且有多于一个的顶点,所以一定有一条边在v与其它顶点之间。这是长度为1的简单路径。因此简单路径存在。令π0是G中一条尽可能长的简单路径,其顶点队列为:v1 ,v2
2017-06-22 12:18:57
4644
3
用户登录登出注册实例
2018-02-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人