自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

犀牛卫士

Linux/dpdk/驱动/系统编程/算法相关分享

  • 博客(29)
  • 资源 (1)
  • 收藏
  • 关注

原创 C++系列第九篇 数据类型下篇 - 复合类型(指针高级应用)

这一章节进行复合类型最后一部分的介绍,主要是指针的一些高级应用,包括指针和数组的的关系,指针和字符串的关系,指针和结构的关系, 变量基于内存位置进行的分类。 还会简单介绍下C++特有的动态数组,vector 和 array。

2023-12-23 12:13:08 909

原创 《爱的五种语言》读书笔记

这本书的核心理念是,每个人都有让自己感到幸福、安全的被爱方式,而配偶间理解并运用这些方式可以帮助彼此建立更加健康和持久关系。通过了解自己和他人的爱的语言,人们可以更好地满足对方的需求,增进彼此之间的情感连接。

2023-12-16 11:27:47 400

原创 C++系列第八篇 数据类型下篇 - 复合类型(指针及动态内存申请)

指针是一个变量,其存储的是值的地址,而不是值本身。常规变量的地址,只需对变量应用地址运算符(&),就可以获得它的位置;例如,如果 home 是一个变量,则&home 是它的地址。使用常规变量时,值是指定的量,而地址为派生量。而指针将地址视为指定的量,而将值视为派生量。

2023-12-13 22:16:11 905

原创 C++系列第七篇 数据类型下篇 - 复合类型(结构体、共用体及枚举)

如果针对编程有规范的话,或者说公司不止要求你实现功能即可,还要代码可读、可维护、节省空间,那这三类结构的使用频率应该比单独的数组或者字符串高,为什么呢,因为结构起了一个整理的作用,C++的类从个人理解其实是结构的延伸,而枚举则是程序可读,可维护必不可少的一个数据类型, 共用体则可以在一定条件下起到节省内存的效果。

2023-12-09 15:04:43 825

原创 C++系列第六篇 数据类型下篇 - 复合类型(数组及字符串)

数组(array)是一种数据格式,能够存储多个同类型的值。每个值都存储在一个独立的数组元素中,计算机在内存中依次存储数组的各个元素,数组元素在内存中是连续的,这一点很重要,很多性能优化和算法都会用到这个特性。

2023-12-07 07:57:04 831

原创 《漫长的等待》—— 读后感

洋洋洒洒的写了一堆,其实我还是不知道我想下什么结论,有珍惜身边人的感悟,有需要善待老人的体悟,也有对普通人普通生活的体悟,每天不必那么焦虑,好好体验生活的每一个细节,好也吧,坏也吧,用心经历过才算不白来人世间走一圈。

2023-12-05 22:56:53 710

原创 C++ 系列 第五篇 C++ 算术运算符及类型转换

这一篇我们总结下C++的算术运算,最主要的是不同类型 的整形或浮点型进行算术运算时候的一些隐式类型转换,虽然是一些基本得知识,但真的是容易被遗忘或者编程时被忽视的点,相信有足够编程经历的程序猿们多少都被类型隐式转换坑过

2023-12-03 00:10:05 1405 1

原创 C++ 系列 第四篇 C++ 数据类型上篇—基本类型

内置的 C++类型分两组:基本类型和复合类型。本章将介绍基本类型,即整数和浮点数。基础类型只有两种类型,但 C++知道,没有任何一种整型和浮点型能够满足所有的编程要求,因此对于这两种数据,它提供了多种变体,本章会分别进行介绍

2023-11-30 21:50:43 1957 1

原创 C++ 系列 第三篇 C++程序的基本结构

就像要建造房屋,首先要打地基、搭框架一样,学习计算机语言时,应从程序的基本结构开始学起。只有这样,才能一步一步了解其具体细节。

2023-11-28 07:30:00 805

原创 C++ 系列 第二篇 你真的了解C++吗?本篇带你走进C++的世界

本篇从宏观的概念上介绍C++的特性,大家先从整体框架、概念上了解C++ 能干啥,是怎么用的,再去学习具体的语言技术点,这样学习的过程中会始终有指导方针,而不至于懵逼,这和我们平常学习其他知识的套路是一样的,比如学习操作系统,如果一头扎进代码里,是搞不下去的,只有通篇了解了操作系统的组成,及各模块的协作机制再去详细研究具体的点才能有所收获,循序渐进。

2023-11-27 08:00:00 863 1

原创 C++ 系列 第一篇 开发环境搭建(WSL 方向)

平常项目基本运行在linux 平台, 习惯了 windows 下代码开发, linux 下编译及 运行的组合。所以本次c++的学习,会基于Visual Studio Code WSL 扩展(适用于linux 的windows子系统),使用特定于 linux的工具链,在基于 Linux 的环境中进行开发,实现在 Windows 中舒适地运行和调试基于 Linux 的应用程序。

2023-11-25 17:12:15 1036

原创 C++ 系列 前篇 为什么学习C++ 及学习计划

随着工作年限的增长,编写的代码及接触的项目越来越多,出于负责任的态度,在项目开发过程中,总会思考如何使系统更稳定,后期更容易维护,多方开发怎么更容易同步进行,这很大一部分会用到面向对象编程的思想, 比如良好的封装会使得依赖减少,后期更容易单组件内修改,多态性的支持更是会时后期以增加而不是修改的方式实现功能的扩展。

2023-11-24 23:23:50 371 1

原创 DPDK系列第九篇 SRVIO VF网卡RESET 问题 彻底解决 及 DPDK中断流程整理

​dpdk 官方手册也有 reset 测试讲解 (stop、reset、start 流程 184. VF PF Reset Tests — DPDK Test Plans documentation),但是实际测试下来,并不能生效。本文提供了一种更彻底的解决方案,直接从总线上 remove 并重新probe,多种场景测试,使用无误。

2023-11-22 11:23:55 169

原创 DPDK系列第八篇:深入剖析DPDK中 IGB_UIO的使用

​上一节IOVA的讲解中,我们引入了IGB_UIO和 VFIO两个PCI内核态驱动,这两个驱动是DPDK实现用户态PMD的基石,我们将分两节进行介绍,本节将针对IGB_UIO进行深入剖析。​

2023-11-16 23:13:06 314 1

原创 DPDK系列第七篇:IOVA介绍及实际使用

DPDK 确实区分了将物理地址用作 IOVA 的情况和 IOVA 与用户空间虚拟地址匹配的情况。这些情况在 DPDK API 中称为 IOVA 模式,其中有两种:IOVA 作为 PA,IOVA 作为 VA

2023-11-13 12:32:50 195

原创 DPDK系列第六篇:IOVA前期知识 DMA、IOMMU概念及关联

随着虚拟化技术在数据中心大规模地使用,iommu的主要作用也由原来单方面的转换功能变成了转换加隔离。在sriov场景iommu的隔离作用主要体现在避免直通给不同虚拟机外设DMA错误物理内存

2023-11-11 00:13:48 460 1

原创 架构整洁之道笔记 第三篇 软件架构的目的及方法

软件架构的终极目标就是最大化程序员的生产力,同时最小化系统的总运营成本。

2023-11-08 22:48:12 74 1

原创 架构整洁之道笔记 第二篇 组件构建原则

组件是软件的部署单元,是整个软件系统在部署过程中可以独立完成部署的最小实体。

2023-11-08 21:26:33 61 1

原创 postfix/cleanup[1961]: warning: 88A4F2220524: write queue file: No space left on device 问题定位解决及扩展思考

No space left on device 问题解决

2023-11-08 11:28:48 58 1

原创 架构整洁之道笔记 第一篇 编程范式及单体模块设计原则

软件架构的终极目标是,用最小的人力成本来满足构建和维护该系统的需求。

2023-11-07 21:53:14 69

原创 计算机网络学习笔记 第一节 网络的组成

端系统(PC、智能手机、Web服务器、电子邮件服务器等)经过 一个接入ISP与因特网相连。接入ISP之间必须互联。通过创建网络的网络可以做到这一点,理解这个短语是理解因特网的关键

2023-11-06 22:52:59 42 1

原创 DPDK 系列第五篇:基于大页的内存管理 (内附整理的全内存数据结构关联图,全网无第二份)

整体分析总结了DPDK的内存管理机制,从最底层的大页信息识别,到大页映射并与Memseg关联,再到heap 创建都有详细的介绍。文章最后还附了整理好的及其详细的DPDK各内存结构关联图,对内存框架的理解很有帮助

2023-11-06 00:22:03 443 2

原创 NUMA、NODE、SOCKET、CPU关系深度探索

假如系统有 A、B、C、D 四个numa,进程运行在A numa 所属core 上, 那你是否知道A numa core 上的进程访问B、C、D哪个numa 的内存性能会更高?或者浅一层的问题,你认为 NUMA 和 SOCKET是一对一的关系吗?

2023-11-02 23:45:38 1057 1

原创 DPDK 系列第四篇:TLB和大页

在现代计算机系统中,程序使用的是虚拟地址,而不是直接访问物理内存地址。当程序访问虚拟地址时,CPU需要将其转换为对应的物理地址,以便正确地访问内存。这个转换过程涉及到页表的查询,而TLB可以缓存部分页表的映射结果,从而加快地址转换的速度。

2023-11-02 12:29:16 223 1

原创 DPDK 系列第三篇:CPU 亲和性及实际应用

就是一个特定的任务要在某个给定的CPU上尽量长时间地运行而不被迁移到其他处理器上的倾向性。亲和性一词是从affinity翻译来的,实际可以称为CPU绑定。

2023-11-01 12:07:41 1164 12

原创 DPDK 系列第二篇:CPU Cache详解及DPDK在Cache方面的性能应用

处理器速度越来越来,但是内存吞吐量较处理器还是很慢,一般来讲,处理器要从内存中直接读取数据都要花大概几百个时钟周期,在这几百个时钟周期内,处理器除了等待什么也不能做。在这种环境下,才提出了Cache的概念,其目的就是为了匹配处理器和内存之间存在的巨大的速度鸿沟。

2023-10-30 22:02:25 321

原创 DPDK 系列第一篇: DPDK架构阐述

从DPDK的组成及最佳实践衍生出一些性能方面的思考,性能在软件开发方面达到一定瓶颈以后,可以尝试是否可以有硬件方面的突破,比如不同速率规格的磁盘存储,核亲和性、处理器硬件加速等,对于可固化的处理(例如,流分类,QoS)交由加速单元完成,而对于灵活的业务逻辑则由众多的通用处理器完成,这种方式会有效的融合软硬件各自的优势。

2023-10-28 22:02:25 278

原创 srvio直通网卡不收包问题定位——整洁架构的反面用例

srvio直通网卡不收包问题定位 及背后架构思考

2023-10-28 11:23:32 125

原创 GNU gettext 不可用深度定位

GNU gettext 深度定位方式,适合各种gettext 问题定位

2023-10-26 22:21:19 67 1

cc1110 测试程序

cc1110测试程序,包括射频模块的配置,定时器的使用,串口的使用。

2014-02-25

空空如也

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

TA关注的人

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