![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习记录
文章平均质量分 90
学习记录
最佳损友1020
xdu 计科毕业
xjtu 计科在读
种一棵树的最好时机是十年前,其次是现在
展开
-
CSDN图库
原创 2023-09-25 18:24:58 · 146 阅读 · 0 评论 -
spdk记录
在调用栈需要特别关注的就是bdev_write_blocks_with_md函数,在这个函数中创建了spdk_bdev_io结构体,当一个IO请求完成,都会调用spdk_bdev_free_io释放对应空间。简要看json的解析过程,全局查询json_config_file,找到spdk_subsystem_init_from_json_config函数。猜测rpc_bdev_malloc_create函数与spdk_subsystem_init_from_json_config中的。原创 2023-05-30 23:10:34 · 1176 阅读 · 0 评论 -
零碎笔记/博客推荐
这也是一本深入浅出的书,讲述概念的来龙去脉而不是卖弄定义,介绍事物发展演化历程而不是事实堆砌,将复杂的概念讲述的浅显易懂,但又直击本质不失深度。本书为数据系统的设计、实现、与评价提供了很好的概念框架。这个项目整合了大家对于高质量公开课程的评价、总结、与建议等等,期望这些评价能对后来的同学在选择、学习课程的时候能有一些帮助。C++: 深度探索C++对象模型,C++沉思录,C++语言的设计与演化。linux内核:linux内核设计与实现,深入理解linux内核。C:C和指针 ,C陷阱与缺陷,C专家编程。原创 2023-05-29 09:58:44 · 644 阅读 · 0 评论 -
femu使用记录
自己制作镜像,但失败了,故选择第一种方法,下载femu提供的镜像,下载完成后直接运行run_zns.sh脚本,不需要第二种方法的安装操作系统,修改grub等操作。可使用ssh连接虚拟机,端口号即为hostfwd定义的端口号(8080),vscode连接更方便。以root权限运行nvme list能看到zns ssd,则表示搭建环境成功。这篇博客用于记录femu搭建与使用过程中遇到的问题。首先是搭建环境,刚开始按照博客。原创 2023-05-09 10:25:13 · 1714 阅读 · 0 评论 -
《高性能MySQL》读书笔记
服务层用于处理核心服务,如标准的SQL接口、查询解析、SQL优化和统计、全局的和引擎依赖的缓存与缓冲器等等。在该层上,服务器会解析查询并创建相应的内部解析树,并对其完成优化,如确定查询表的顺序,是否利用索引等,最后生成相关的执行操作。MySQL最重要、最与众不同的特性就是它的存储引擎架构,这种架构将:查询处理、其他系统任务、数据的存储与提取 三部分分离。存储引擎层,存储引擎负责实际的MySQL数据的存储与提取,服务器通过API 与 存储引擎进行通信。存储引擎架构分为三层,自上而下,分为第一层:连接层;原创 2023-04-30 22:39:34 · 485 阅读 · 0 评论 -
博客重载记录
有时候看了一些比较好的文章,过几天就忘了,想想不如自己实现一遍博客代码或按博客结构自己写一遍,加深印象,但把别人的内容改个名字变成自己的博客,有点不太好,故全写在这个博客中,权当个人记录。原创 2023-03-26 13:49:25 · 349 阅读 · 0 评论 -
踩坑经验分享/安装配置指南
我参照博客Windows 搭建 opengrok安装opengrok。步骤:1 安装JDK并配置Java环境变量2 安装tomcat3 安装opengrok4 安装ctags5 配置opengrok6 配置Tomcat7 运行问题:在配置opengrok时运行。原创 2021-02-06 11:23:00 · 1562 阅读 · 0 评论 -
NVMe驱动注释(持续更新)
整合了之前文章的一些内容。原创 2023-03-06 10:26:57 · 2960 阅读 · 0 评论 -
《C++沉思录》读书笔记
本书中多次强调,C++最基本的设计理念就是用类来表示概念,C++解决复杂性的基本原则是抽象,面向对象思想是C++的手段之一,而不是全部。本书并不是教C++语言本身,而是想告诉你用C++时怎样进行思考,以及如何思考问题并用C++表述解决方案。知识可以通过系统学习获得,智慧则不能。什么事情是C++可以做好而C做不好的。例子:需求1:实现打印消息的功能CC++显然,C语言更加简洁需求2:增加开启关闭输出功能CC++现在C与C++的复杂度类似,但C实现中对同一份状态open进行操作,而C++则可原创 2023-02-04 16:17:55 · 747 阅读 · 1 评论 -
《Go语言并发之道》读书笔记
令人尴尬的并行问题:cpu并行算法和gpu并行_令人尴尬的并行算法介绍Web-Scale IT 我之见!竞争条件当两个或多个操作必须按正确的顺序执行,而程序并未保证这个顺序,就会发生竞争条件。// 循环执行示例程序,记录各个结果出现次数 func main() {i ++ {原创 2022-12-19 23:37:11 · 492 阅读 · 0 评论 -
《c专家编程》读书笔记
C语言。原创 2022-12-19 23:33:15 · 662 阅读 · 0 评论 -
数组与指针实验
看完汇编代码,可以很容易猜到:p与&p结果不一样,array与&array结果一致。fs:0x28与linux的堆栈保护机制有关,为简化问题,将该机制关掉。再次反汇编,并加上一些注释。生成目标文件并进行反汇编。先简单看一下以下c代码。使用gdb显示相关数据。原创 2022-11-16 19:16:07 · 314 阅读 · 0 评论 -
计算机读书笔记
应该在表达式中使用强制类型转换,使操作数均为有符号数或者无符号数,这样就不必由编译器来选择结果的类型。当表达式中存在有符号数和无符号数类型时,所有的操作都自动转换为无符号类型。可见无符号数的运算优先级高于有符号数。无符号数转换为有符号数时,对于小的数将保持原值,对于大的数将转换为负数,相当于原值减去2的n次方。有符号数转换为无符号数时,负数转换为大的正数,相当于在原值上加上2的n次方,而正数保持不变。无符号整数和有符号整数之间进行强制类型转换时,位模式不改变。相邻的字符串常量将会自动合并成一个字符串。原创 2022-11-11 09:02:30 · 1640 阅读 · 0 评论 -
天池比赛记录
阶段1. 每个线程分别写入约 12 M个Key大小为 16 Bytes,Value大小为 80-1024 Bytes 的 KV对象,并选择性读取验证;阶段3. 每个线程分别再次写入约 10 M个Key大小为 16 Bytes,Value大小为 80-256 Bytes 的 KV对象;其中75%的读访问具有热点的特征,大部分的读访问集中在少量的Key上面。数据安排如下:本阶段保证任意时刻数据的value部分长度和不超过30G。验证KV操作的正确性(包括加密/解密过程),这部分的耗时不计入运行时间的统计。原创 2022-11-09 09:03:39 · 709 阅读 · 0 评论 -
驱动虚拟环境搭建记录
在华为镜像站中下载Ubuntu镜像,第一次我下载的是Ubuntu22,其版本太高,使得我安装deb包时就出现错误,linux-headers-4.19.100-0419100-genericDependslibssl1.1(>=1.1.0)butitisnotinstallable,而系统安装的应该是openssl。由于要求的内核版本是4.19,故基本的思路是使用deb包先将内核版本降到4,而后使用源码编译将内核切换成4.19。安装fish,敲命令更方便。.........原创 2022-07-16 11:09:54 · 326 阅读 · 0 评论 -
r8169驱动源码阅读记录
源码地址:linux-4.19.90\drivers\net\ethernet\realtek\r8169.c源码阅读环境:Windows 搭建 opengrok|极客教程阅读网卡驱动源码第一步,简要看一下发送描述符,接收描述符,发送缓存区,接收缓冲区定义与初始化// 发送描述符596 struct TxDesc {597 __le32 opts1;598 __le32 opts2;599 __le64 addr;600 };// 接收描述符602 struct RxD原创 2022-05-30 20:51:57 · 2003 阅读 · 0 评论 -
NVMe驱动 请求路径学习记录
NVMe驱动 DMA学习记录由深入浅出SSD 6.5节trace分析可知,主机读请求的执行流程如下:主机准备好命令放在SQ主机通过写SQ的Tail DB,通知SSD来取命令(Memory Write TLP)SSD收到通知,去主机端的SQ取指令(Memory Read TLP)SSD执行命令,把数据传给主机(Memory Write TLP)SSD往主机的CQ中返回状态SSD采用中断的方式告诉主机去处理CQ主机处理相应CQ,更新CQ Head DB(Memory Write TLP)可原创 2022-05-25 21:05:52 · 1676 阅读 · 1 评论 -
NVMe驱动学习记录-2
NVMe驱动学习记录-2参考源代码变量函数结构体参考源码地址:https://mirrors.tuna.tsinghua.edu.cn/kernel/v4.x/linux-4.19.90.tar.gzlinux-4.19.90\drivers\nvme\host源码阅读环境:Windows 搭建 opengrok|极客教程 (geek-docs.com)书籍:《LINUX设备驱动程序》初始化参考链接:linux里的nvme驱动代码分析(加载初始化) nvme_reset_work()函数后原创 2022-05-12 16:34:08 · 4275 阅读 · 1 评论 -
NVMe驱动学习记录-1
NVMe驱动学习记录-1初始化nvme-core模块解释nvme模块解释初始化nvme-core模块创建工作队列分配设备号创建class类型的对象解释工作队列workqueue是对内核线程封装的用于处理各种工作项的一种处理方法, 由于处理对象是用链表拼接一个个工作项, 依次取出来处理, 然后从链表删除,就像一个队列排好队依次处理一样, 所以也称工作队列所谓封装可以简单理解一个中转站, 一边指向“合适”的内核线程, 一边接受你丢过来的工作项, 用结构体 workqueue_srtuc原创 2022-05-12 16:30:45 · 1275 阅读 · 0 评论 -
内核页表学习记录
内核页表学习原创 2022-05-03 19:16:41 · 552 阅读 · 13 评论