自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (1)
  • 收藏
  • 关注

原创 linux网络协议栈2--网络包接收发送流程

大家有兴趣的话可以细看文字段落,不感兴趣的话看看两张图片,想想其中的流程即可。

2024-01-18 15:03:29 406 1

原创 linux网络协议栈1--基础报文格式

*IP头定义,共20个字节*///版本信息(前4位),头长度(后4位)// 服务类型8位//数据包长度//数据包标识//分片使用//存活时间//协议类型//校验和//源ip//目的ip注意:ip报文头20个字节,但是在实际的数据包中可能长度大于20(有一些选项)/*TCP头定义,共20个字节*/// 源端口号16bit// 目的端口号16bit// 序列号32bit// 确认号32bit// 前4位:TCP头长度;中6位:保留;后6位:标志位// 窗口大小16bit。

2024-01-18 14:38:27 492

原创 linux内存管理4

伙伴系统会将它所属物理内存区 zone 里的空闲内存划分成不同尺寸的物理内存块,这里的尺寸必须是 2 的次幂,物理内存块可以是由 1 个 page 组成,也可以是 2 个 page,4 个 page … 1024 个 page 组成。内核将这些相同尺寸的内存块用一个内核数据结构 struct free_area 中的双向链表 free_list 串联组织起来。

2024-01-17 19:25:21 901

原创 linux内存管理3

如上图所示,内核会为 NUMA 节点中的每个物理内存区域 zone 分配一个伙伴系统用于管理该物理内存区域 zone 里的空闲内存页。而伙伴系统的核心数据结构就封装在 struct zone 里.在本小节中,我们聚焦于伙伴系统相关的数据结构介绍~~struct zone 结构中的 managed_pages 用于表示该内存区域内被伙伴系统所管理的物理内存页数量。伙伴系统的真正核心数据结构就是这个 struct free_area 类型的数组 free_area[MAX_ORDER]。

2024-01-17 19:03:42 766

原创 linux内存管理2

首先 CPU 将物理内存地址作为地址信号放到系统总线上传输。随后 IO bridge 将系统总线上的地址信号转换为存储总线上的电子信号。主存感受到存储总线上的地址信号并通过存储控制器将存储总线上的物理内存地址 A 读取出来。存储控制器通过物理内存地址定位到具体的存储器模块,从 DRAM 芯片中取出物理内存地址对应的数据。存储控制器将读取到的数据放到存储总线上,随后 IO bridge 将存储总线上的数据信号转换为系统总线上的数据信号,然后继续沿着系统总线传递。

2024-01-17 15:52:13 653

原创 linux内存管理1

内核态的虚拟地址空间中,有一段直接映射区,在这段虚拟内存区域中虚拟地址与物理地址是直接映射的关系,虚拟内存地址直接减去一个固定的偏移量(0xC000 0000 ) 就得到了物理内存地址。直接映射区中的物理页的虚拟地址会随着物理内存地址变动而变动, 因此这部分物理页是无法轻易迁移的,然而不可迁移的页会导致内存无法被拔除,因为无法妥善安置被拔出内存中已经为进程分配的物理页。那么内核是如何解决这个头疼的问题呢?

2024-01-17 15:06:07 431

原创 dpdk

DPDK全称为Date planedevelopment kit,是一个用来进行包数据处理加速的软件库。绕过内核方式通过mmap将pcie设备的bar空间映射到用户空间,之后对其进行操作即可技术点1)UIO2)HugePage内核收数据包处理流程:网卡收到报文后,通过DMA机制将报文放到内存;网卡触发中断通知系统有报文到达,系统分配sk_buff,将报文copy到sk_buff;经过协议栈处理,将报文传送到用户态应用程序处理。

2024-01-17 11:31:49 320

原创 elf文件格式

ELF的英文全称是The Executable and Linking Format,最初是由UNIX系统实验室开发、发布的ABI(Application Binary Interface)接口的一部分,也是Linux的主要可执行文件格式。本文主要从elf文件的组成构造的角度来进行分析,将elf文件的解析通过一步一步的分析得到里面的信息,同时通过python脚本解析,可以直观的看到文件的信息,通过本文的阅读,将对elf文件格式有着更加深刻的理解。

2024-01-17 11:27:18 841

原创 红黑树 (c实现)

我们这里直接实现C语言的红黑树,为了方便后序的旋转操作,将红黑树的结点定义为三叉链结构,除此之外还新加入了一个成员变量,用于表示结点的颜色。int _data;

2024-01-16 14:39:11 1022

原创 mqtt client从tcp开始实现

1:下载服务器连接代码,编译运行2:使用mqtt客户端进行连接3:使用下面的自己编译的客户端进行连接,测试。

2023-12-15 17:48:13 447

原创 【http-server工作流程demo

makefile如下。

2023-12-14 23:41:54 28

原创 http-client源码解析

代码路径,使用example/http-server, 选择tag7.7 版本的,直接make,如果有问题在makefile中添加-std=gnu99。以上为http-client是如何运行的详解。编译后直接运行./a.out即可。

2023-12-14 17:48:35 49

原创 rocksdb

ColumnFamilyHandle:CF描述符,类似文件描述符,可简单理解为Map的指针DBImpl类关系IteratorDBIter。

2023-06-05 15:32:15 178

原创 udp协议栈

下一步,对网卡驱动进行分析,研究网卡是如何进行数据的发送和接收的。使用netmap接收网卡数据,对接收的数据进行解析。

2023-05-25 20:01:27 78

原创 设计模式理论系列2

解决问题:一个复杂对象的创建工作,各个部分剧烈变化,组合起来在一起的算法相对稳定和模板模式的区别主要是,构建模式主要复杂对象的创建。

2023-05-18 21:22:38 58

原创 设计模式理论系列1

本质上就是多态的应用,虚函数。

2023-05-17 23:56:40 39

原创 bluestore到rocksdb流程

【代码】bluestore到rocksdb流程。

2023-04-25 14:19:58 202

原创 Pool写数据流程

1)调用rados_create()创建一个RadosClient对象。2) 调用rados_config_read(),现在函数名为rados_conf_read_file,读取配置文件。3)调用rados_connect()函数,最终他会调用RadosClient::connect()来完成初始化4)调用rados_ioctx_create(),它最终调用RadosClient::create_ioctx()穿件pool相关的IoCtxImpl类。

2023-04-16 15:20:29 124

原创 librados::IoCtxImpl::write写流程分析

librados::IoCtxImpl::write写流程分析

2023-04-16 15:08:24 183

原创 CLIENT数据流向OSD

【代码】CLIENT数据流向OSD。

2023-04-14 15:56:47 99

原创 Ceph数据流分析

Ceph数据流分析

2023-04-13 23:26:53 351

原创 bluestore

bluestore

2023-04-13 10:47:59 201

原创 ceph加速

ceph加速

2023-04-12 23:24:36 444

原创 ceph压缩和加密

ceph压缩和加密

2023-04-12 16:39:25 960

原创 unmatch boot from qspi

unmatch boot from qspi

2023-04-07 09:30:08 73

原创 ceph手动部署全流程

ceph手动部署

2023-04-07 09:16:04 732

RDMA&& nvme of fabrics

RDMA&& nvme of fabrics

2023-06-01

DPDK & SPDK内容介绍,代码解析

DPDK & SPDK内容介绍,代码解析

2023-05-30

ceph部署一件化脚本

ceph部署一件化脚本

2023-04-19

ceph数据流分析知识

ceph数据流分析知识

2023-04-17

ceph压缩和加密以及加速

ceph压缩和加密以及加速

2023-04-17

地图染色代码

可用于python对地图着色,以每一个点进行扩散,扩散方向可以加以限制

2018-09-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除