自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(566)
  • 资源 (10)
  • 收藏
  • 关注

转载 动态规划(DP)的原理、实现及应用

文章目录1. 由一个例子说开: 斐波那契(fibonacci)数列 性能测试 原因分析 2. 记忆化搜索 3. 动态规划(Dynamic Programming,DP) 最优子结构 总结一下这几个解法: 几个例题 LeetCode 70 Climbing Stairs 4. 动态规划的核心:状态与状态转移方程 LeetCode 343 Integer Break LeetCode 198 House Ro

2021-02-24 14:11:10 29

转载 DPDK收发包流程分析(一)

一、 前言】 DPDK是intel工程师开发的一款用来快速处理数据包的框架,最初的目的是为了证明传统网络数据包处理性能低不是intel处理器导致的,而是传统数据的处理流程导致,后来随着dpdk的开源及其生态的快速发展,dpdk成为了高性能网络数据处理的优秀框架。本篇文章主要介绍DPDK接收与发送报文的流程,包括CPU与网卡DMA协同工作的整个交互流程、数据包在内存、CPU、网卡之间游走的过程。 ...

2021-02-24 09:27:30 26

转载 几个非常实用性的在线学习Ethical Hacking的网站

写在前面:英文水平不太好的朋友,记得下载一个Google Chrome,右键 转化为中文,不要被语言的障碍浇灭了学习的信心 ;其次,有的网站可能打不开,那是因为网络问题,需要站高一点才能打开。至于如何站得高,用梯子吧。另外,hacking 学习站 - kngxscn - 博客园这里有前辈也总结了一些站点。1.hackthissite.org一个完全免费的,安全的和道德的黑客培训平台,用于测试黑客技能,且有大量的技术性的文章。它还有一个巨大的,非常活跃的论坛,用户可以讨论黑客行为和安全问题。ste

2021-02-14 08:56:46 58

转载 dpdk大页内存实现

上一篇文件介绍了linux内存管理以及大页内存的原理,有了原理的支撑,接下里分析dpdk大页内存源码就轻松了,才不会云里雾里不知道在说啥。所谓的dpdk大页内存的实现,说白了就是dpdk自己实现了一套大页内存的使用库,这个和libhugetlbfs.so是类似的,就是自己实现了大页内存的申请,释放操作, 替代了传统的malloc, free系统调用。先从整体上看下dpdk大页内存有哪些内容。 当应用层需要申请内存时,直接调用rte_malloc接口进行内存申请; 而rte_malloc...

2021-02-07 10:05:45 20

转载 C语言指针-从底层原理到花式技巧,用图文和代码帮你讲解透彻

一、前言 二、变量与指针的本质 三、指针的几个相关概念 四、指向不同数据类型的指针 五、总结 一、前言如果问C语言中最重要、威力最大的概念是什么,答案必将是指针!威力大,意味着使用方便、高效,同时也意味着语法复杂、容易出错。指针用的好,可以极大的提高代码执行效率、节约系统资源;如果用的不好,程序中将会充满陷阱、漏洞。这篇文章,我们就来聊聊指针。从最底层的内存存储空间开始,一直到应用层的各种指针使用技巧,循序渐进、抽丝剥茧,以最直白的语言进行讲解,让你一..

2021-02-04 10:23:26 34

转载 彻底理解Cisco NAT内部的一些事

为了配一条NAT,发生了很多事。一.Inside和Outside很多在Cisco配置过NAT的人都有过一个疑问,那就是inside和outside的区别!以下是Cisco官方文档上关于NAT执行顺序的说明:注意红色和蓝色圈住的部分,对于inside-outside而言,NAT发生在路由之后,而对于outside-inside而言,NAT发生在路由之前。这是目前为止,我们唯一需要记住的。1.问题迷惑的原因不在别的,就在inside,outside这个名字不好,实际上如果将inside-out

2021-02-02 10:32:41 47

转载 一个复杂的nf_conntrack实例全景解析

本文关注两点,一点是细节,另外一点是概览:细节:一个完整的关于nf_conntrack和NAT互动的例子 概览:关于人云亦云的讽刺近期搜集了一些关于iptables,NAT相关的问题,其中最令人觉得麻烦的还是nf_conntrack相关的东西,比如它和NAT的关系,它和state match的关系,它的Helper机制怎么使用等等。  因此决定写一篇随笔来一个情景分析,也是方便自己终有一天遗忘了细节知识后复查。拓扑说明本文全文将围绕Netfilter主题的一片小的领地nf_conntra

2021-02-02 10:31:25 37

转载 说出来你可能不信,内核这家伙在内存的使用上给自己开了个小灶!

现在你可能还觉得node、zone、伙伴系统、slab这些东东还有那么一点点陌生。别怕,接下来我们结合动手观察,把它们逐个来展开细说。(下面的讨论都基于Linux 3.10.0版本)一、NODE 划分在现代的服务器上,内存和CPU都是所谓的NUMA架构CPU往往不止是一颗。通过dmidecode命令看到你主板上插着的CPU的详细信息ProcessorInformation//第一颗CPUSocketDesignation:CPU1Versi...

2021-02-02 10:27:21 20

转载 深度报告:CPU研究框架(115页PPT)

来源:半导体风向标转载自:架构师技术联盟CPU是IT系统最基础的核心硬件,又是最复杂的芯片。CPU因研发门槛高、生态构建难,被称作IC半导体的“珠峰”。报告主要从以下四个方面建立国产CPU的框架:1、从指令集架构看CPU市场格局:精简指令集ARM通过构筑与Android的生态合作,占据了全球95%的移动芯片授权市场,CPU国产化率极低。2、CPU产业链:先进制程数字芯片产业链。3、当前国产CPU发展的三大路线:X86内核授权的厂商,Arm指令集授权厂商和自研架构厂...

2021-02-01 19:07:37 87

转载 Linux 进程热升级 共享库的动态替换

背景用户总是希望服务进程能保持稳定。如果可以 7*24 小时的工作,那就永远不要重启它。但是,软件产品的功能总是在不断的丰富。当用户发现一些新的功能正是他所需要的,他也许会主动要求进行一次升级。而当严重的安全问题出现时,用户就不得不接受强制的升级了。不停机升级,也被称为热升级。通常实现热升级,需要用户部署两套业务系统。至少,被升级的关键模块是两块以上的。这一般是通过硬件方式支持的。由此而产生的成本压力,不是每个用户都可以接受的。对于小型业务系统,频繁的升级总是不可避免的。如果升级过程中,业务进程

2021-01-27 09:56:46 33

转载 libco协程库上下文切换原理详解

缘起libco 协程库在单个线程中实现了多个协程的创建和切换。按照我们通常的编程思路,单个线程中的程序执行流程通常是顺序的,调用函数同样也是 “调用——返回”,每次都是从函数的入口处开始执行。而libco 中的协程却实现了函数执行到一半时,切出此协程,之后可以回到函数切出的位置继续执行,即函数的执行可以被“拦腰斩断”,这种在函数任意位置 “切出——恢复” 的功能是如何实现的呢? 本文从libco 代码层面对协程的切换进行了剖析,希望能让初次接触 libco 的同学能快速了解其背后的运行机理。函数调用

2021-01-27 09:55:05 14

转载 x86-64 下函数调用及栈帧原理

缘起在 C/C++ 程序中,函数调用是十分常见的操作。那么,这一操作的底层原理是怎样的?编译器帮我们做了哪些操作?CPU 中各寄存器及内存堆栈在函数调用时是如何被使用的?栈帧的创建和恢复是如何完成的?针对上述问题,本本文进行了探索和研究。通用寄存器使用惯例函数调用时,在硬件层面我们需要关注的通常是cpu 的通用寄存器。在所有 cpu 体系架构中,每个寄存器通常都是有建议的使用方法的,而编译器也通常依照CPU架构的建议来使用这些寄存器,因而我们可以认为这些建议是强制性的。对于 x86-64 架

2021-01-27 09:53:36 31

转载 应用程序热补丁(三):完整的设计与实现

前言在前两篇文章介绍了应用程序热补丁的关键技术:修复运行时进程的函数 加载热补丁到进程中 自动生成热补丁等等这些是组成应用程序热补丁技术框架的关键部分,但是在生产环境中使用热补丁技术还需要考虑适应现代软件的属性、热补丁的安全性、以及在运营中对热补丁的管理等等。通过介绍UCloud应用程序热补丁框架的设计理念和框架中各个组件,我们会解决以下实践中遇到的问题:热补丁的管理(加载、卸载、激活、回滚热补丁等) 打入热补丁时的安全检查(简单说是什么时候打入热补丁是安全的) 热补丁对.

2021-01-27 00:26:05 18

转载 应用程序热补丁(二):自动生成热补丁

前言在《如何用几行代码打造应用程序热补丁?(一)》中,我们介绍了应用程序热补丁技术的基本原理,同时实现了一个简单的热补丁。但是无法对本地函数打热补丁,同时手动编写热补丁比较麻烦、可能非常复杂容易出错。为了解决这些问题,本文将会介绍一种自动生成应用程序热补丁技术,可以生成应用程序和动态链接库中任意函数的热补丁。自动生成热补丁综述自动生成热补丁是利用热补丁生成工具,对现有的源代码和补丁文件进行处理,自动输出热补丁的技术。我们知道,热补丁的基本原理是新函数替换旧函数,也就是完整的函数.

2021-01-27 00:24:06 12

转载 应用程序热补丁(一):如何用几行代码打造应用程序热补丁

引言千呼万唤始出来,从今天起,《UCloud技术大观园》系列正式开张,撒花╭(●`∀´●)╯!UCloud生而为云,一直专注在云计算的泥潭里摸爬滚打,踩过数不清的坑,写过数不清的BUG。所幸,在不断的试错中,也锤炼出一些能在江湖傍身的大杀器。这些经过千锤百炼的大杀器和宝贵的踩坑经验,一起成为今天UCloud的核心科技。现在,我们将在《UCloud技术大观园》系列里,把这些核心科技全部开放出来,毫无保留,逐一为大家讲解,哪些坑是我们已经踩过的,引以为诫,哪些是优质的技术实践经验,值得借...

2021-01-27 00:22:08 27

转载 Linux 进程热升级

http://www.ibm.com/developerworks/cn/linux/l-cn-prcss-hotupgrd/为了实现 Linux 系统进程热升级,本文提供了一种底层的实现方法,即在不重启进程的条件下,升级进程的共享库模块。背景用户总是希望服务进程能保持稳定。如果可以 7*24 小时的工作,那就永远不要重启它。但是,软件产品的功能总是在不断的丰富。当用户发现一些新的功能正是他所需要的,他也许会主动要求进行一次升级。而当严重的安全问题出现时,用户就不得不接受强制的升级了。.

2021-01-27 00:20:41 41 1

转载 深入Linux内核网络堆栈

前一段时间看到这篇帖子,确实很经典,于是翻出了英文原版再读,顺便再翻译出来供大家学习,这篇文章的中文版也早都有了,不过出于完全理解的目的,我还是将它翻译了出来,加进了自己的代码,虽然在上一周的翻译过程中,我尽量保留文章的原汁原味,但错误肯定在所难免,在末尾附上原文和我自己调试通过的代码,已经够构运行,大家可以参考一下!(有错误之处请指出)深入Linux内核网络堆栈作者:bioforgealkerr@yifan.net原名: <<Hacking the Linux Kernel Network.

2021-01-22 15:21:42 61

转载 Linux内核IP Queue机制的分析

序 笔者将会通过包括本文在内的三篇文章,对IP Queue机制从用户态的应用到内核态的模块程序设计进行分析。三篇文章的题目分别是:Linux内核IP Queue机制的分析(一)——用户态接收数据包Linux内核IP Queue机制的分析(二)——用户态处理并回传数据包Linux内核IP Queue机制的分析(三)——内核态ip_queue代码分析 --待续 笔者希望通过这三篇文章,能够给不熟悉或者对IP Queue使用有问题的朋友一些帮助。文章中分析不妥或错误之处,希望各位...

2021-01-22 14:24:40 28

转载 Netfilter实现机制分析 原作者:Minit

1. 前言Netfilter作为目前进行包过滤,连接跟踪,地址转换等的主要实现框架,了解其内部机制对于我们更好的利用Netfilter进行设计至关重要,因此本文通过阅读内核源码2.6.21.2,根据自身的分析总结出Netfilter的大致实现机制,由于自身水平有限,且相关的参考资料较少,因此其中的结论不能保证完全正确,如果在阅读本文的过程中发现了问题欢迎及时与作者联系。2. 规则的存储与遍历机制 规则的存储机制在Netfilter中规则是顺序存储的,一条规则主要包...

2021-01-22 14:21:43 23

转载 布隆过滤器(Bloom Filter)详解

布隆过滤器[1](Bloom Filter)是由布隆(Burton Howard Bloom)在1970年提出的。它实际上是由一个很长的二进制向量和一系列随机映射函数组成,布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率(假正例False positives,即Bloom Filter报告某一元素存在于某集合中,但是实际上该元素并不在集合中)和删除困难,但是没有识别错误的情形(即假反例False negatives,如果...

2021-01-13 10:11:57 45

转载 Linux内核那些事之连接跟踪

“本文分析了Linux内核连接跟踪的关键实现”连接跟踪(也叫会话管理)是状态防火墙关键核心,也是很多网元设备必不可少的一部分。各厂商的实现原理基本雷同,只是根据各自的业务进行修改和优化。其中,还有不少厂商干脆是基于Linux内核实现的。下面,我们就来看看Linux内核中连接跟踪的几个要点。注:本文对应的Linux源码为最新的5.9.1200基础知识 一个连接由两个tuple组成,分别代表两个方向的报文信息。 一个tuple一般由报文的五元组构成,分别是源地址、目的地址,源端.

2021-01-12 09:34:58 20

转载 自己动手实现一个malloc内存分配器 | 30图

对内存分配器透彻理解是编程高手的标志之一。如果你不能理解malloc之类内存分配器实现原理的话,那你可能写不出高性能程序,写不出高性能程序就很难参与核心项目,参与不了核心项目那么很难升职加薪,很难升级加薪就无法走向人生巅峰,没想到内存分配竟如此关键,为了走上人生巅峰你也要势必读完本文现在我们知道了,对内存分配器透彻的理解是写出高性能程序的关键所在,那么我们该怎样透彻理解内存分配器呢?还有什么能比你自己动手实现一个理解的更透彻吗?接下来,我们就自己实现一个malloc内存分配器。读完本文.

2021-01-12 09:31:57 32

转载 基于连接跟踪机制的状态防火墙的设计与实现

基于连接跟踪机制的状态防火墙的设计与实现连接跟踪本身并没有实现什么具体功能,它为状态防火墙和NAT提供了基础框架。前面几章节我们也看到:从连接跟踪的职责来看,它只是完成了数据包从“个性”到“共性”抽象的约定,即它的核心工作是如何针对不同协议报文而定义一个通用的“连接”的概念出来,具体的实现由不同协议自身根据其报文特殊性的实际情况来提供。那么连接跟踪的主要工作其实可以总结为:入口处,收到一个数据包后,计算其hash值,然后根据hash值查找连接跟踪表,如果没找到连接跟踪记录,就为其创建一个连接跟踪项;如果

2020-12-29 17:52:29 20

转载 (十)洞悉linux下的Netfilter&iptables:网络地址转换原理之SNAT

源地址转换:SNAT SNAT主要应用于下列场景: 这种情况下,我们只有一个公网地址A,而又有三台主机需要同时上网,这时就需要SNAT了。它的主要作用是将那些由私网发来的数据包skb的源地址改成防火墙的公网地址A,这是因为目的主机在响应源地址为私网地址的数据包时,私网地址不能在网络上路由的缘故。SNAT仅可以在LOCAL_OUT和POSTROUTING点生效,这也说明了为什么用户空间的iptables命令在配置SNAT规则时只能配置到nat表的OUTPUT和POSTR...

2020-12-29 16:57:26 15

转载 Linux网络报文捕获/抓包技术对比:napi、libpcap、afpacket、PF_RING、PACKET_MMAP、DPDK、XDP(eXpress Data Path)

Table of Contents1.传统linux网络协议栈流程和性能分析协议栈的主要问题针对单个数据包级别的资源分配和释放流量的串行访问从驱动到用户态的数据拷贝内核到用户空间的上下文切换跨内存访问2. 提高捕获效率的技术预分配和重用内存资源数据包采用并行直接通道传递.内存映射.数据包的批处理.亲和性与预取.3. 典型收包引擎3.1 libpcap3.2 libpcap-mmap3.3 PF_RING3.4 PACKET_MMAP

2020-12-29 16:38:28 278

转载 Linux NAT基本流程与实现技巧

基于matches的NATLinux的NAT是基于match的,即在满足一系列条件的前提下执行SNAT或者DNAT,因此要求也就比较宽松,唯一的约束就是路由,即路由动作发生的时候,必须是基于最终的目标IP地址,因此DNAT必须发生在路由之前(对于本机发出的数据包,则在路由之后,然后重新路由),如下图所示附:Netfilter与ip_conntrackNetfilterLinux的协议栈仅仅实现了基本的协议操作,对应TCP/IP标准,Linux的协议栈仅仅实现了一个最小集。其余的所有扩展几乎(

2020-12-29 16:37:40 26

转载 linux 下的带宽、延时、吞吐率、PPS

Linux 网络协议栈是根据 TCP/IP 模型来实现的,TCP/IP 模型由应用层、传输层、网络层和网络接口层,共四层组成,每一层都有各自的职责。应用程序要发送数据包时,通常是通过 socket 接口,于是就会发生系统调用,把应用层的数据拷贝到内核里的 socket 层,接着由网络协议栈从上到下逐层处理后,最后才会送到网卡发送出去。而对于接收网络包时,同样也要经过网络协议逐层处理,不过处理的方向与发送数据时是相反的,也就是从下到上的逐层处理,最后才送到应用程序。网络的速度往往跟用户体验是挂

2020-12-15 12:56:04 177

转载 如何写出让 CPU 跑得更快的代码?

前言代码都是由 CPU 跑起来的,我们代码写的好与坏就决定了 CPU 的执行效率,特别是在编写计算密集型的程序,更要注重 CPU 的执行效率,否则将会大大影响系统性能。CPU 内部嵌入了 CPU Cache(高速缓存),它的存储容量很小,但是离 CPU 核心很近,所以缓存的读写速度是极快的,那么如果 CPU 运算时,直接从 CPU Cache 读取数据,而不是从内存的话,运算速度就会很快。但是,大多数人不知道 CPU Cache 的运行机制,以至于不知道如何才能够写出能够配合 CPU Cache

2020-12-10 10:07:08 32

转载 桃李春风一杯酒,江湖夜雨十年灯 - 老兵夜话DPDK

20年弹指一挥间。技术在飞速的发展,从最初接触ixp1200 的耳目一新,到如今DPDK, smart NIC的 如火如荼。我也已经从昔日的青葱少年,变成了两鬓微霜的打工人。午夜梦回, 在感慨人生有如逆旅之余,心中也有很多想法不吐不快。前传2000年是网络处理器的黄金时代,Intel在那个时候也有一个Network Processor产品,名为IXP1200,主要是通过可编程的专用引擎来加速网络报文处理。IXP1200/2400/2800本身带有N个微引擎,可供编程。但是编程的难度很大,尤其是在高并

2020-12-10 10:02:40 41

转载 EBPF学习计划

“Super powers have finally come to Linux” — Brendan Gregg目录学习计划 实验环境和相关代码 博文目录 第一阶段学习总结学习计划自从知道了eBPF这项技术后,一直对它十分感兴趣,这几天静下心来作了一个学习计划,准备逐步深入学习,最后希望能有输出,能够给大家讲讲这项“黑科技”。实验环境和相关代码https://github.com/nevermosby/linux-bpf-learning博文目录3篇经典文章翻译.

2020-12-09 14:33:21 34

转载 raw socket 使用 BPF 过滤报文

抓包使用 raw socket 进行网络底层抓包,想必大家都清楚(仔细想想tcpdump原理)。这里不赘述,网上许多资料。注意,网卡需要开启混杂模式、其次程序运行需要root权限。#include <stdlib.h>#include <stdio.h>#include <sys/socket.h>#include <net/if_arp.h>#include <net/if.h>#include <netinet...

2020-12-04 13:39:50 73

转载 图解Linux网络包接收过程

以下文章来源于开发内功修炼,作者张彦飞allen开发内功修炼作者有互联网大厂9年多的后端开发工作经验。在本公众号中,逐步把这些年工作中对于底层的一些思考总结出来分享给大家,希望我们每一位开发同学都能够做到:了解每一比特,用好每一纳秒。因为要对百万、千万、甚至是过亿的用户提供各种网络服务,所以在一线互联网企业里面试和晋升后端开发同学的其中一个重点要求就是要能支撑高并发,要理解性能开销,会进行性能优化。而很多时候,如果你对Linux底层的理解不深的话,遇到很多线上性能瓶颈你会觉得狗拿刺猬,无..

2020-12-03 19:11:45 145

转载 ARM64体系结构与编程之cache必修课(下)

自从2019年3月Linus宣布Linux 5.0正式发布那天开始,笨叔就致力于把蓝色奔跑吧Linux内核这本书重新更新到Linux 5.0。大家也许无法想象更新一本快1000页的书,要付出多少精力。这是一次全面和全新的修订,90%的内容和第一版不一样,90%的内容重新编写和编排,各中的汗水只有笨叔自己知道。和Linux相关的工程师,不要吝啬你的钱包,可以买一本看看,最新Linux 5.x内核全新、全面、深刻的解读。预计2020年双十二出版!想提前看奔跑吧第二版目录的,可以点这里。奔2修订版 目录!爱在

2020-11-27 13:11:46 113

转载 要搞懂 volatile 关键字,就靠这 26 张图

小故事小艾吃饭路上碰上小牛,忙问:你昨天面大厂面的咋样了?听说他们最喜欢问多线程相关知识。小牛说:对啊,第一个问题我就讲了20分钟,直接把面试官讲服了。小艾忙问:什么问题能讲这么久?是不是问你情感经历了?小牛说:…问的volatile关键字。小艾说:volatile关键词的作用一般有如下两个: 可见性:当一个线程修改了由volatile关键字修饰的变量的值时,其它线程能够立即得知这个修改。 有序性:禁止编译器关于操作volatile关键词修饰的变量的指令重排序。 你说

2020-11-27 13:10:48 35

转载 ARM64体系结构与编程之cache必修课(中)

第三季视频课程ARM64体系结构与编程之cache基础知识(1)为什么系统软件人员要深入了解cache?在一个系统中,cache无处不在,对于一个系统编程人员来说,你无法躲藏。下图是一个经典的ARM64系统的架构图,由Corte-A72和Cortex-53组成了大小核架构,每个CPU核心都有L1 cache,每个cluster里共享一个L2 cache,另外还有Mali GPU和DMA外设。对于系统软件人员,下面几个常常疑惑的问题: cache的内部组织架构是怎么样的?能否画出一个.

2020-11-27 13:07:45 147 1

转载 ARM64体系结构与编程之cache必修课(上)

第三季视频课程ARM64体系结构与编程之cache基础知识(1)为什么系统软件人员要深入了解cache?在一个系统中,cache无处不在,对于一个系统编程人员来说,你无法躲藏。下图是一个经典的ARM64系统的架构图,由Corte-A72和Cortex-53组成了大小核架构,每个CPU核心都有L1 cache,每个cluster里共享一个L2 cache,另外还有Mali GPU和DMA外设。对于系统软件人员,下面几个常常疑惑的问题: cache的内部组织架构是怎么样的?能否画出一个.

2020-11-27 13:06:24 115

转载 10 张图打开 CPU 缓存一致性的大门

前言直接上,不多 BB 了。正文CPU Cache 的数据写入随着时间的推移,CPU 和内存的访问性能相差越来越大,于是就在 CPU 内部嵌入了 CPU Cache(高速缓存),CPU Cache 离 CPU 核心相当近,因此它的访问速度是很快的,于是它充当了 CPU 与内存之间的缓存角色。CPU Cache 通常分为三级缓存:L1 Cache、L2 Cache、L3 Cache,级别越低的离 CPU 核心越近,访问速度也快,但是存储容量相对就会越小。其中,在多核心的 CPU 里,每

2020-11-27 13:02:37 35

转载 linux 进程内核栈

概念在每一个进程的生命周期中,经常会通过系统调用(SYSCALL)陷入内核。在执行系统调用陷入内核之后,这些内核代码所使用的栈并不是原先用户空间中的栈,而是一个内核空间的栈,这个称作进程的“内核栈”。每个task的栈分成用户栈和内核栈两部分,进程内核栈在kernel中的定义是:union thread_union { struct thread_info thread_info; unsigned long stack[THREAD_SIZE/sizeof(long)];};每个ta

2020-11-26 12:50:19 75

转载 VPP 20.09版本正式发布

FD.io是一些项目和库的集合,基于DPDK并逐渐演化,支持在通用硬件平台上部署灵活可变的业务。FD.io为软件定义基础设施的开发者提供了一个通用平台,可以开发基于软件的报文处理创新方案,便于设计高吞吐量、低延时、高效利用资源的应用程序,并且能够运行于多个平台上和部署在不同的环境中。由于VPP里有众多的加密引擎和插件,导致很多人不知如何入手。这里做一个简单介绍:VPP 20.01开始引入VPP加密引擎,类似于DPDK Cryptodev。VPP加密引擎提供了一个标准接口访问加密业务,并被VPP.

2020-11-21 21:05:34 117

转载 VPP 的异步Crypto框架

VPP的crypto框架是VPP原生的一套数据加解密框架,其目的是为VPP框架中所有Graph node提供数据加密服务。VPP的Crypto框架包含一套为Graph node准备的用户API,包括创建、更新和删除密钥,以及处理加密工作等;该框架还包括一条逻辑简单且巧妙的crypto engine API,用于作为VPP Plugin的crypto engine来注册和上载回调函数,并根据每个crypto engine根据预设的优先级来决定某个算法的缺省engine回调函数。目前可用的VPP crypto

2020-11-21 20:59:33 52

ADS集成开发环境的使用

学习ARM架构的,编写程序的ADS集成开发环境的使用简介

2013-07-30

汇编语言 王爽

汇编语言 王爽写的好书,学习汇编不错的入门书籍

2013-07-30

linux 下的DEBUG调试书籍,写的不错

linux 下的DEBUG调试书籍,写的不错,值得学习

2017-02-26

ARM体系结构

ARM体系结构介绍,用于学习ARM体系结构

2013-07-30

ARM硬件结构

学习ARM的硬件体系结构,可以入门看看,或者给别人讲解使用

2013-07-30

程序员的自我修养—链接、装载与库

程序员的自我修养—链接、装载与库,不错的好书

2013-07-01

基于ARM的嵌入式程序设计

学习ARM体系、学习基于ARM的嵌入式程序设计方法,入门

2013-07-30

ARM指令系统

ARM汇编指令系统,学习ARM汇编指令,也可以复习下RISC架构的汇编

2013-07-30

18B20温度传感器

18B20温度传感器,搞这个的可以看看,介绍了温度传感器的应用

2010-08-21

攻克U-BOOT资料汇总---找了好多关于U-BOOt的移植资料

攻克U-BOOT资料汇总---找了好多关于U-BOOt的移植资料,大家可以参考下

2011-03-15

空空如也

空空如也

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

TA关注的人 TA的粉丝

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