自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 资源 (30)
  • 收藏
  • 关注

原创 内核pktgen使用

pktgen 是一款 Linux 发包工具,可在内核高速发包。由于pktgen是内核内置的,使用内核空间,所以它可以达到高带宽、高发包速率,以此更好地测试路由器、交换机和其他网络设备。

2023-10-24 09:33:40 533

原创 网络链路聚合

链路聚合是一种网络技术,它将多个物理链路(如以太网、无线电连接或其他类型的连接)捆绑在一起形成一个逻辑链路,从而增加网络带宽和容错性。

2023-06-29 19:47:27 1669

原创 Linux内核的编译、安装、调试

Linux内核的编译、安装与调试。

2023-06-29 16:21:37 2195

原创 正则表达式基础

正则表达式基础

2023-06-29 15:57:16 469

原创 Windows Terminal添加至鼠标右键

Windows Terminal添加至鼠标右键

2023-06-19 13:59:56 3734

原创 virtio-net收包流程

函数把数据拷贝到虚拟机的 virtio 网卡接收队列,然后向虚拟机注入一个中断,虚拟机便感知到有网络数据报文。NAPI 是一种用于网络设备驱动的软件架构,其目的是减少网络中断对系统性能的影响。函数负责将报文拷贝到 buffer 中,实现向 Guest OS 物理地址写入数据。用于将 NAPI 设备的 napi 结构体加入到系统中轮询执行的链表中。函数用于将从网络中接收的数据填充到接收队列的输入缓冲区中。进行合并处理,根据处理的结果,决定。函数用于填充虚拟队列的元素。接收数据包回调函数。

2023-05-01 15:16:36 1755 1

原创 Perf工具统计CPU性能

Perf 是 Linux 下的一款性能分析工具,能够进行函数级与指令级的热点查找。

2023-05-01 11:32:06 3300

原创 Soft-RoCE部署及通信测试

Soft-RoCE是一种基于软件的RoCE(RDMA over Converged Ethernet)实现。

2023-05-01 11:24:24 2613

原创 qperf测试

qperf 可以用来测试两个节点之间的带宽(bandwidth)和延迟(latency),不仅仅可以用来测试 TCP/IP 协议的性能指标,还可以用来测试 RDMA 传输的指标。

2023-05-01 11:15:12 1465

原创 perftest测试

Perftest 是一组基于uverbs编写的测试程序,是RDMA性能相关的micro-benchmark。可用于软硬件调优以及功能测试。

2023-05-01 11:12:18 1203

原创 netperf测试

Netperf 是一个网络性能测试工具,它可以测试网络协议栈的性能,例如TCP和UDP协议。

2023-05-01 10:57:33 1791

原创 Iperf网络测试工具

Iperf是一款基于TCP/IP和UDP/IP的网络性能测试工具,可以用来测量网络带宽和网络质量,提供网络延迟抖动、数据包丢失率、最大传输单元等统计信息。

2023-05-01 10:43:43 1978

原创 无损以太网与网络拥塞管理(PFC、ECN)

无损以太网(Lossless Ethernet)是一种专门用于数据中心网络的网络技术,旨在提供低延迟、高吞吐量和可靠性的传输服务。网络拥塞管理 是指在网络通信中,通过一系列机制来控制网络拥塞的发生和影响,以保证网络的稳定性和服务质量

2023-05-01 10:24:33 6584

原创 以太网卡TSO、GSO、LRO、GRO描述及相关配置

以太网卡的 TSO、GSO、LRO、GRO 是一些传输协议中用于提高网络性能的技术。

2023-04-27 20:04:57 3019

原创 内核常用PCI相关配置结构体、函数&PCI设备驱动

用于存放本驱动所支持的所有PCI设备。通常使用PCI_DEVICE宏来完成前两个参数vendordevice的填充。当对结构体数组填充完毕后需要调用宏导出到用户空间,使热插拔或模块装载系统知道什么模块针对什么硬件设备。

2023-03-28 18:51:49 1202 3

原创 PCIe基础

PCI Express,简称PCI-E,官方简称PCIe,是计算机总线的一个重要分支,它沿用既有的PCI编程概念及信号标准,并且构建了更加高速的串行通信系统标准。目前这一标准由PCI-SIG组织制定和维护。

2023-03-28 18:47:04 1014

原创 qemu virtio设备模拟与初始化流程

virtio则是属于一种半虚拟化解决方案,它是一种前后端架构,虚拟机内部需要安装特定的virtio设备驱动作为前端,模拟的设备作为后端,后端可以放在用户空间模拟,也可以放在内核空间模拟。放在内核空间模拟就是vhost的实现,如DPDK,SPDK等。

2023-01-03 19:45:36 1938

原创 Ubuntu20.04部署KVM并安装Ubuntu Server 20.04

KVM是Linux开源社区大力支持的虚拟化技术,基于Intel和AMD的硬件虚拟化技术。KVM(Kernel-bashdVirtual Machine,即基于内核的虚拟机),它是用于Linux内核中的虚拟化环境设施,是Linux内核中的一个功能模块,在Linux内核中默认被安装,可以将Linux内核转化为一个 Hypervisor。

2022-12-27 11:33:47 2791 1

原创 virtio前端驱动通知机制分析

virtio 前后端主要通过PCI配置空间的寄存器来完成通信,I/O 请求的数据地址存放于 vring 中,并通过共享vring这个区域来实现 I/O 请求数据的共享。

2022-12-26 13:35:31 1034

原创 virtio虚拟化框架

系统虚拟化技术是云计算最重要的核心技术之一。云计算平台的资源池化,资源统一管理以及后续的动态分配都是基于系统虚拟化技术才得以实现的。在计算机系统中,主要有计算资源,存储资源和网络资源。所以,系统虚拟化技术又可以细分为计算虚拟化,存储虚拟化和网络虚拟化。其中存储设备和网络设备一般都是以外设的形式和CPU通过I/O总线连接起来的,所以存储虚拟化和网络虚拟化又可以统一归类为I/O虚拟化技术。

2022-12-26 11:24:06 1404

原创 virtio vring原理

在 virtio 设备上进行批量数据传输的机制被称为 virtqueue 。每个设备可以拥有零个或多个 virtqueue ,当 Driver 想要向设备发送数据时,它会填充 Descriptor Table 中的一项(或将几项链接在一起),并将描述符索引写入 Available Ring 中,然后它通知 Device ,当 Device 完成后,它将描述符索引写入 Used Ring 中并发送中断。Virtio 在 Guest 中实现了前端驱动,在 Host (qemu)中实现了后端驱动,前后端之间通

2022-12-25 19:38:57 2187

原创 virtio-net发包流程分析

virtio-net发包流程大致为:虚拟机中的进程发送网络包时,仍然通过文件系统和socket调用网络协议栈到达网络设备层。此时的网络设备为virtio虚拟网络设备,virtio-net前端驱动作为网卡设备驱动层,接收IP层传输下来的二层网络数据包,最终调用start_xmit函数完成内核的前端发包流程,后端收到数据后在根据具体的操作将数据通过实体网卡发送出去。

2022-12-25 19:15:50 1618

原创 RDMA测试集:preftest安装与使用

perftest是一组基于uverbs编写的测试程序,是RDMA性能相关的benchmark。可用于软硬件调优以及功能测试。

2022-12-06 11:21:56 5708

原创 netcat安装使用

netcat可用于测试两台主机之间TCP建立链接的时间。

2022-12-02 16:50:28 456

原创 pathload安装使用

pathload用于确定两点之间网络的理论可用带宽

2022-12-02 16:37:52 222

原创 Ubuntu20.04出现只显示本地环回,无法打开网卡解决方法

Ubuntu20.04出现只显示本地环回,无法打开网卡解决方法

2022-11-15 21:02:48 1557

原创 Linux下提取文件夹下的所有文件名称

Linux下提取文件夹下的所有文件名称

2022-11-15 21:00:35 6815 4

原创 Linux设备驱动的并发控制(中断屏蔽、原子操作、自旋锁、信号量)

并发指的是多“用户”单元访问同一片共享资源(硬件资源和软件资源的全局变量、静态变量、共享存储区等),并不一定指的是时间上的并发执行。竞态指的是多个执行路径可能对同一资源进行操作时可能导致的资源数据紊乱的行为。竞态一般需要两个条件:[1] 存在共享资源、[2] 对共享资源存在竞争访问关系。...

2022-07-08 14:36:50 857 1

原创 Linux源码&文件系统目录结构

Linux源码&文件系统目录结构

2022-07-05 14:57:41 629

原创 Linux platform总线驱动基础知识

在Linux2.6版本以后的设备驱动编写时,一般需关心三部分内容,即 总线(bus)、设备(device) 和 驱动(driver) 三个实体。总线是设备和驱动之间的桥梁,Linux通过总线将设备与驱动两部分绑定起来。当向系统注册一个驱动时,总线会寻找与之匹配的设备,如果有的话会将两者联系起来;相反的,当向系统注册一个设备时,总线会在驱动中查找有没有与之匹配的设备,如果有的话也将两者联系起来。...

2022-07-01 10:03:44 437

原创 Linux字符设备驱动基础知识

  在Linux设备驱动中,字符设备驱动较为基础,字符设备即一个一个的字节,按照字节流进行读写操作的设备,读写数据具有一定的先后顺序,例如I2C、SPI、LCD等都属于字符设备。

2022-06-23 10:24:25 499

原创 Linux源码&文件系统目录结构

Linux源码&文件系统目录结构

2022-06-21 16:33:01 218

原创 Linux设备树(Device Tree)

在Linux3.x版本下,Linux内核中ARM架构的板级信息大量放置在 arch/arm/mach-xxx 和 arch/arm/plat-xxx 文件夹下,例如platform设备、resource、spi_board_info以及各种硬件的platform_data,这些信息对Linux内核来说无关紧要,会造成大量的冗余编码,导致ARM的merge工作量较大。当采用设备树(device tree)之后,许多硬件的细节可以直接透过设备树传递给Linux内核,大大减少了Linux内核的冗余代码量。....

2022-06-16 11:45:07 3965

原创 GCC C内联汇编

GCC C内联汇编

2022-05-28 08:56:04 369

原创 SD3.0笔记

SD3.0笔记

2022-05-26 19:45:22 1047

原创 ARM 异常(Exception)

ARM异常(Exception)什么是异常?  异常 是处理器核在顺序执行程序指令流的过程中突然遇到了异常的事情,这些事件包括硬件错误、指令执行错误、用户程序请求服务、内存访问异常、取指令异常等,几乎每种处理器都支持特定的异常处理,中断也是异常的一种。

2022-03-28 20:03:58 3296

原创 Cache的组织形式(VIVT、VIPT、PIPT)

Cache组织形式

2022-01-10 17:21:22 3658

原创 Cache的基本原理(直接映射、组相联、全相联)

Cache的基本原理

2022-01-08 20:50:17 29244 6

原创 玄铁C910异常与中断处理

玄铁C910异常与中断处理

2022-01-01 22:34:41 1276 3

原创 玄铁RISC-V处理器软件生态

玄铁RISC-V处理器软件生态

2022-01-01 22:31:59 1504

《Linux设备驱动开发详解-基于最新的Linux4.0内核》源码

《Linux设备驱动开发详解-基于最新的Linux4.0内核》相关源码

2022-06-21

处理器外围内存压力测试工具源码

一款在用户空间下,用于测试内存正确性的实用工具,适用于大多数平台。可以在32位或64位的类Unix操作系统编译和运行(当然也包括MacOs)。这款工具主要面向硬件开发人员,从4.1.0版本开始,memtester可以指定起始物理内存地址进行测试。

2022-04-01

处理器内存带宽测试工具

内存带宽测试工具mbw

2022-04-01

Understanding_ELF.zip

ELF格式解析说明文档

2021-11-20

VS Code_reg.zip

Windows下鼠标右键菜单添加“以VSCode打开”选项相关文件,使用方式见(https://blog.csdn.net/qq_41596356/article/details/121063073)

2021-11-07

libdrm-2.4.74.tar.gz

libdrm-2.4.74源代码

2021-09-09

64786-Vulkan学习指南_图.zip

Vulkan学习指南对应图

2021-09-09

64786-Vulkan学习指南_源码.zip

Vulkan学习指南对应源代码

2021-09-09

OpenGL API 中文说明.7z

OpenGL API函数说明

2021-04-05

OpenGL配置包.tar

OpenGL+Visual Studio 2019配置文件,配置过程见博客https://blog.csdn.net/qq_41596356/article/details/111053949

2021-04-05

IAR for ARM系列教程.zip

包括IAR的下载、安装、注册等,另外还有IAR常用菜单的介绍,工程的创建等。

2021-01-24

Visual Studio Code 键盘快捷方式

适用于Windows下的Visual Studio Code 的快捷键总结

2021-01-10

OpenGL环境配置库

OpenGL开发环境配置库,主要包含gl、glu、glut、glut32、freeglut、freeglutd、GLTools、glew、GLfrustum等头文件以及LIB和DLL库。

2020-12-13

ARM面试题(26章).zip

这份资源《ARM面试题(26章)》包含ARM面试知识26章。面试嵌入式软件相关工作岗位可以考虑看一看。

2019-12-15

蓝桥杯单片机第七届决赛_电压频率采集设备.zip

蓝桥杯全国软件和信息技术专业人才大赛单片机设计与开发大学组第七届决赛(电压频率采集设备)参考程序,希望能帮助到你

2019-06-08

蓝桥杯单片机第六届决赛_智能物料传送系统.zip

蓝桥杯全国软件和信息技术专业人才大赛单片机设计与开发大学组第六届决赛(智能物料传送系统)参考程序,希望能帮助到你。

2019-06-08

蓝桥杯单片机第五届决赛_多功能事件记录器.zip

蓝桥杯全国软件和信息技术专业人才大赛单片机设计与开发大学组第五届决赛(多功能事件记录器)参考程序,希望能帮到你。

2019-06-08

蓝桥杯单片机第四届决赛_超声波测距报警实时时钟电路.zip

蓝桥杯全国软件和信息技术专业人才大赛单片机设计与开发大学组第四届决赛_ (超声波测距报警实时时钟电路)参考程序,希望能帮到你。

2019-06-08

蓝桥杯单片机第三届决赛_门禁系统

蓝桥杯全国软件和信息技术专业人才大赛单片机设计与开发大学组第三届决赛_ (门禁系统)参考程序,希望能帮到你。

2019-06-08

蓝桥杯单片机第二届初赛-模拟智能传送装置

蓝桥杯全国软件和信息技术专业人才大赛单片机设计与开发大学组第二届初赛试题(第三届模拟题)-模拟智能传送装置,希望能帮到你。

2019-06-08

蓝桥杯单片机第三届初赛-自动售水机

蓝桥杯全国软件和信息技术专业人才大赛单片机设计与开发大学组第三届初赛试题(第四届模拟题)-自动售水机参考程序,希望能帮到你。

2019-06-08

蓝桥杯单片机第四届初赛-模拟智能灌溉系统

蓝桥杯全国软件和信息技术专业人才大赛单片机设计与开发大学组第四届初赛试题(第五届模拟题)-模拟智能灌溉系统,希望能帮助到你。

2019-06-08

蓝桥杯单片机第五届初赛-简易温度采集与控制装置.zip

蓝桥杯全国软件和信息技术专业人才大赛单片机设计与开发大学组第五届初赛试题(第六届模拟题)-简易温度采集与控制装置参考程序,希望能帮到你。

2019-06-08

蓝桥杯单片机第六届初赛-温度记录器.zip

蓝桥杯全国软件和信息技术专业人才大赛单片机设计与开发大学组第六届初赛试题(第七届模拟题)-温度记录器参考程序,希望能帮到你。

2019-06-08

蓝桥杯第七届省赛试题程序

蓝桥杯全国软件和信息技术专业人才大赛单片机设计与开发大学组第七届初赛试题(模拟风扇系统)参考程序,希望能帮到你。

2019-03-22

蓝桥杯第八届省赛试题程序

蓝桥杯全国软件和信息技术专业人才大赛单片机设计与开发大学组第八届初赛试题(电子钟)及程序,可参考,希望能帮到你。

2019-03-22

蓝桥杯第九届省赛试题程序

蓝桥杯全国软件和信息技术专业人才大赛单片机设计与开发大学组2018年初赛试题(彩灯控制器)参考程序,希望能帮到你。

2019-03-22

飞思卡尔Keaz128编码器测速例程

详细的飞思卡尔Kea128 ,512线增量式编码器例程,可直接使用。

2018-03-27

Kea128核心板排针库

Kea128核心板排针库,包含最小系统的排针及必要的排针说明。

2018-03-23

计算机二级历年选择题

计算机历年选择题包含三大部分,轻松搞定计算机二级考试。

2018-03-23

空空如也

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

TA关注的人

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