自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 vscode:前进后退快捷键

1)后退:alt + ←2)前进:alt + →

2021-11-17 08:48:33 167

转载 Linux: gdb调试coredump(使用篇)

什么是coredumpCoredump叫做核心转储,它是进程运行时在突然崩溃的那一刻的一个内存快照。操作系统在程序发生异常而异常在进程内部又没有被捕获的情况下,会把进程此刻内存、寄存器状态、运行堆栈等信息转储保存在一个文件里。 该文件也是二进制文件,可以使用gdb、elfdump、objdump或者windows下的windebug、solaris下的mdb进行打开分析里面的具体内容。 注:core是在半导体作为内存材料前的线圈,当时用线圈当做内存材料,线圈叫做core。用线圈做的内...

2021-11-13 10:46:27 17

原创 C :执行shell命令

1.system函数 函数说明:system()会调用fork()产生子进程,由子进程来调用/bin/sh-cstring来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程。 在调用system()期间SIGCHLD 信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被忽略。 返回值:如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-1。 若参数s...

2021-11-06 10:23:39 15

原创 dpdk 20.02 igb_uio.ko 编译

dpdk从20.02版本以后默认不编译igb_uio.ko更改config/common_base的 CONFIG_RTE_EAL_IGB_UIO=y 可以实现编译。

2021-10-31 22:59:50 20

原创 Linux:hexdump浅见

hexdump主要用来查看“二进制”文件的十六进制编码。

2021-10-29 14:03:24 14

原创 Linux:lspci命令介绍

lspci,是一个用来显示系统中所有PCI总线设备或连接到该总线上的所有设备的工具。

2021-10-16 13:36:41 58

原创 Linux:pingpong机制的理解

Ping-pong实质是一种数据缓冲的手段(是一种数据传输技术),能够同时利用两个数据缓冲区达到数据连续传输的目的,从而提高数据传输速率。由于单个缓冲区得到的数据在传输和处理中很容易被覆盖,而Ping-pong 缓冲区的方式能够总是保持一个缓冲区的数据被利用,另一个缓冲去用于存储数据。即两个相同的对象作为缓冲区交替地被读和被写。普通数据交换机制项目中两个模块间交换数据时,第一个模块(上级)向另一个模块发送数据,接受模块(下级)不能马上处理完成并返回,这样上级必须等...

2021-10-15 09:31:07 77

转载 5G:三大场景--- eMBB、URLLC、mMTC

背景:很多人认为 5G 确实是未来的发展方向,但具体到哪些落地,又说不清楚,甚至于认为 5G 只比 4G 多了一个G 而已,但笔者认为:5G 在移动通信领域绝对是革命性的,如果说以前的移动通信只是改变了人们的通信方式、 社交方式,5G 则是改变了网络社会。 先看 5G 的三大场景:(1)eMBB即为“增强移动宽带”,就是以人为中心的应用场景,集中表现为超高的传输数据速率,广覆盖下的移动性保证等,这是最直观改善移动网速,未来更多的应用对移动网速的需求都将得到满足,从 eMBB 层面上来说, 它是原来移动

2021-10-08 18:45:23 263

转载 Qt :(多种下载通道+所有版本)

Qt体积很大,有 1GB~3GB,官方下载通道非常慢,相信很多读者会崩溃,所以建议大家使用国内的镜像网站(较快),或者使用迅雷下载(很快)。作为 Qt 下载教程,本文会同时讲解以上三种下载方式。Qt 官方下载(非常慢)Qt 官网有一个专门的资源下载网站,所有的开发环境和相关工具都可以从这里下载,具体地址是:Index of /图1:Qt 官方下载网站截图对目录结构的说明 目录 说明 archive 各种 Qt 开发工具安装包,新旧都有(可以下载 Qt 开发..

2021-09-18 15:40:23 61

转载 Ping经过路由器的运行过程解析

闲来无事,就用Packet Tracer 5.0搭建网络环境模拟一下Ping的运行过程,以此来捋顺ARP、ICMP等协议在TCP/IP网络体系各层上的详细流程。 用Packet Tracer 5.0搭建如下图所示的简化网络环境:PS:以上模拟环境搭建后,arp –a 查看主机A、B都无ARP记录。A和B都配置正确的网关。然后PCA执行ping PCB动作,PCA:>ping 192.168.1.2 –n 1一、在主机PCA端:  1. Ping处理进程产生一个 ICMP回应请...

2021-08-25 17:22:23 141 1

转载 常见的软件架构模式

什么是架构模式?根据维基百科中的定义:架构模式是一个通用的、可重用的解决方案,用于在给定上下文中的软件体系结构中经常出现的问题。架构模式与软件设计模式类似,但具有更广泛的范围。在本文中,将简要地解释以下10种常见的体系架构模式,以及它们的用法、优缺点。分层模式 客户端-服务器模式 主从设备模式 管道-过滤器模式 代理模式 点对点模式 事件总线模式 模型-视图-控制器模式 黑板模式 解释器模式一. 分层模式这种模式也称为多层体系架构模式。它可以用来构造可以分解为子任务

2021-08-21 17:45:56 32

转载 基于DPDK+VPP实现高性能防火墙

0. 数据平面和用户态协议栈传统基于linux netfilter实现防火墙,虽然方便,但是性能很差。于是pfring/netmap/dpdk等机制,都要bypass掉内核协议栈。多年来,各大操作系统(Linux/Windows/Freebsd)的网络协议栈一直都在内核中实现。其实网络协议栈只是一个应用,而不是操作系统的范畴,没有人规定网络协议栈一定是要早内核实现的。这些操作系统的开发者们将一切和具体业务无关的东西都塞进了操作系统内核。其实通信行业的,早就有了数据面,控制面,管理面分离的理念,

2021-08-21 12:31:13 119

转载 网络入侵检测系统之Suricata(七)--DDOS流量检测模型

Suricata支持DDOS流量检测模型What分布式拒绝服务(Distributed Denial of Service,简称DDoS)将多台计算机联合起来作为攻击平台,通过远程连接利用恶意程序,对一个或多个目标发起DDoS攻击,消耗目标服务器性能或网络带宽,从而造成服务器无法正常地提供服务。How通常,攻击者使用一个非法账号将DDoS主控程序安装在一台计算机上,并在网络上的多台计算机上安装代理程序。在所设定的时间内,主控程序与大量代理程序进行通讯,代理程序收到指令时对目标发动攻击,主

2021-08-19 16:19:50 233 1

原创 SVN:回滚到旧版本(TortoiseSVN)

1. 签出(CheckOut)最新版本的代码到电脑中(不能做任何修改)2. 执行TortoiseSVN的Show log操作, 在新签出的文件夹上右键,TortoiseSVN->Show log, 如下图: 3. 回滚,这里有2种类型的回滚 3.1. 直接回滚到某个旧的版本,这个版本后的变更都会被删除, 操作如下:选中某个旧的版本,执行“Revert to this revision”操作: ...

2021-08-11 10:24:17 37

原创 Linux :ldconfig的使用介绍

ldconfig是一个动态链接库管理命令,其目的为了让动态链接库为系统所共享。ldconfig的主要用途:默认搜寻/lilb和/usr/lib,以及配置文件/etc/ld.so.conf内所列的目录下的库文件。搜索出可共享的动态链接库,库文件的格式为:lib***.so.**,进而创建出动态装入程序(ld.so)所需的连接和缓存文件。缓存文件默认为/etc/ld.so.cache,该文件保存已排好序的动态链接库名字列表。ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接

2021-08-10 16:49:48 25

原创 svn:commit后报错:is scheduled for addition, but is missing

一、背景删除文件夹后点commit提交,但是报错,报错内容如下:提示 "svn: Commit failed (details follow): svn: '/***/xxx.c' is scheduled for addition, but is missing "二、原因分析之前用SVN提交过的文件,被标记为"add"状态,等待被加入到仓库。若此时你把这个文件删除了,SVN提交的时候还是会尝试提交这个文件,虽然它的状态已经是 "missing"了。三、解决方法解决:在命令行下用

2021-08-10 15:11:12 42

转载 C语言新标准C11

2011年12月8号,ISO 发布了新的 C 语言的新标准——C11,之前被称为C1X,官方名称 ISO/IEC 9899:2011。相比C99的变化1. 对齐处理操作符 alignof,函数 aligned_alloc(),以及 头文件 <stdalign.h>。见 7.15 节。2. _Noreturn 函数标记,类似于 gcc 的 __attribute__((noreturn))。例子:_Noreturn void thrd_exit(int res);3. _Gen

2021-08-06 10:26:31 46

转载 Linux :epoll ET 模式下文件描述符出现饥饿的情况

背景(饥饿问题)使用epoll ET模式时, epoll_wait返回就绪文件描述符集合, 然后我们循环处理, 但这时如果有一个文件描述符上有大量输入(不间断的输入流), 因为我们ET模式需要一直读到返回EAGIN / EWOULDBLOCK, 那我们就会一直在处理这个文件描述符, 而导致其他文件描述符得不到处理,这就是采用边缘触发时有可能出现的文件描述符饥饿情况处理方法参考Linux/Unix系统编程手册 63.4.6 节(第1123页)应用层维护一个list, 存...

2021-07-21 18:45:32 36

转载 DPDK :原理概述

1、DPDK特点DPDK全称为Date planedevelopment kit,是一个用来进行包数据处理加速的软件库。与传统的数据包处理相比,DPDK具有以下特点:1) 轮询:在包处理时避免中断上下文切换的开销,2) 用户态驱动:规避不必要的内存拷贝和系统调用,便于快速迭代优化3) 亲和性与独占:特定任务可以被指定只在某个核上工作,避免线程在不同核间频繁切换,保证更多的cache命中4) 降低访存开销:利用内存大页HUGEPAGE...

2021-07-17 20:41:06 108

转载 数据结构 :二叉树的详解与实现

简介二叉树的相关概念,如,树高度,节点层数,节点度数,路径,叶节点,分支节点,根节点,父节点,左节点,右节点,兄弟节点,祖先节点,子孙节点,左子树,右子树等基本概念,不再赘述。二叉树分类1、完全二叉树若设二叉树的高度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第h层有叶子结点,并且叶子结点都是从左到右依次排布,这就是完全二叉树。 一维数组可以作为完全二叉树的存储结构,堆排序使用的数据结构就是完全二叉树。2、满二叉树国际标准定...

2021-07-09 17:02:53 66

原创 C++ :dynamic_cast 深入浅出

C++ :dynamic_cast

2021-07-05 11:43:28 57 2

原创 linux :查看so文件的函数列表

nm -D XXX.so objdump -tT XXX.so

2021-07-02 16:09:49 97

原创 linux :shutdown() 与 close()函数详解

shutdown() 与 close()详解

2021-06-29 16:32:34 27

转载 C++ :标准转换运算符const_cast

C++继承并扩展C语言的传统类型转换方式,最后留下了一些关于指针和引用上的转换问题,没有做详细地讲述。C++相比于C是一门面向对象的语言,面向对象最大的特点之一就是具有“多态性(Polymorphism)”。要想很好的使用多态性,就免不了要使用指针和引用,也免不了会碰到转换的问题,所以在这一篇,就把导师讲的以及在网上反复查阅了解的知识总结一下。C++提供了四个转换运算符:const_cast <new_type> (expression) static_cast <new_t

2021-06-29 14:48:25 31

原创 C++ : 深拷贝和浅拷贝的区别

浅拷贝只是对指针的拷贝,浅拷贝后两个指针指向同一个内存空间;深拷贝不仅对指针进行拷贝,而且对指针指向的内容进行拷贝,经深拷贝后的指针是指向两个不同地址的指针。当对一个已知对象进行拷贝时,编译系统会自动调用一种构造函数——拷贝构造函数,如果用户未定义拷贝构造函数,则会调用默认拷贝构造函数。当拷贝一个基类指针到派生类时,如果调用系统默认的拷贝构造函数,这时只是对指针进行拷贝,两个指针指向同一个地址,这就会导致指针被分配了一次内存,但内存被释放了两次(两次调用析构函数),造成程序崩溃。所以在对含有

2021-06-25 16:09:42 42

原创 c++ : 不能被继承的成员函数

C++中,有三类成员函数不能被子类继承,分别是:构造函数(包括拷贝构造)、析构函数和赋值运算符重载函数。

2021-06-23 14:51:06 186

转载 STL中list,vector,deque,map,set区别、联系和使用场景原理

一、Vector:动态数组 vector和built-in数组类似,它拥有一段连续的内存空间,并且起始地址不变,因此它能非常好的支持随机存取,即[]操作符,但由于它的内存空间是连续的,所以在中间进行插入和删除会造成内存块的拷贝,另外,当该数组后的内存空间不够时,需要重新申请一块足够大的内存并进行内存的拷贝。这些都大大影响了vector的效率。(中间插入和删除效率低)vector的基本原理如下:它采用线性空间存储数据。如果空间不够,则另外分配新的两倍大小的空间,然后把旧空...

2021-06-23 11:26:41 29

原创 C++ : operator bool () 和bool operator ==()

operator bool () 提供一个本类型到bool的隐式转换,不允许使用参数。bool operator ==()可以分为bool operator ==( const bool& other),bool operator ==( const T& other),T代表类型。即与bool类型的比较,和与本类的比较。

2021-06-17 15:05:18 304

原创 Linux 下性能分析工具 之 Sprof

Sprof主要用于Gprof的补充,分析程序的共享库(需要-g编译)。1.export LD_PROFILE_OUTPUT=${PWD}2.export LD_PROFILE=abc.so3.export LD_LIBRARY_PATH=/usr/lib/4.执行使用该so的主程序5.执行sprof so文件名 so文件名.profile

2021-06-15 17:23:35 53

转载 Linux性能优化gprof使用

gprof用于分析函数调用耗时,可用之抓出最耗时的函数,以便优化程序。 gcc链接时也一定要加-pg参数,以使程序运行结束后生成gmon.out文件,供gprof分析。 gprof默认不支持多线程程序,默认不支持共享库程序。gcc -pg 编译程序 运行程序,程序退出时生成 gmon.out gprof ./prog gmon.out -b 查看输出...

2021-06-15 16:27:09 40

转载 C++ : 多态机制

什么是多态 顾名思义就是同一个事物在不同场景下的多种形态。静态多态函数重载就是一个简单的静态多态int Add(int left, int right){ return left + right;}double Add(double left, int right){ return left + right;}int main(){ Add(10, 20); //Add(10.0, 20.0); //这是一个问题代码 Ad..

2021-05-08 15:20:43 28

转载 C++ :ofstream 和 ifstream 用法详解

[导读] ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间 在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O. stream这个类有两个重要的运算符:  1、插入器(<<)  向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout<<"Write Stdout"<<'\n';就表示把字...

2021-04-30 17:09:51 304 1

转载 入侵防御(IPS)技术

入侵防御简介IPS定义:IPS(Intrusion Prevention System)入侵防御系统,是一种安全机制,通过分析网络流量,检测入侵(包括缓冲区溢出攻击、木马、蠕虫等),并通过一定的响应方式,实时地中止入侵行为,保护企业信息系统和网络架构免受侵害。入侵防御的优势: 入侵防御是种既能发现又能阻止入侵行为的新安全防御技术。通过检测发现网络入侵后,能自动丢弃入侵报文或者阻断攻击源,从而从根本上避免攻击行为。入侵防御的主要优势有如下几点:实时阻断攻击:设备采用直路...

2021-04-29 15:24:08 712

转载 VMP 虚拟机(加壳原理)

获取途径http://www.drmsoft.cn/reseller/vmp.asp技术剖析虚拟机保护技术就是将基于x86汇编系统的可执行代码转换为字节码指令系统的代码,以达到保护原有指令不被轻易逆向和修改的目的,这种指令也可以叫伪指令,和VB的pcode有点类似。从本质上讲,虚拟指令系统就是对原本的x86汇编指令系统进行一次封装,将原本的汇编指令转换为另一种表现形式。push uTypepush lpCaptionpush lpTextpush hWnd,call Message

2021-04-29 14:36:20 589

转载 Linux/Centos: select、poll、epoll之间的区别

(1)select==>时间复杂度O(n)它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差别轮询复杂度,同时处理的流越多,无差别轮询时间就越长。(2)poll==>时间复杂度O(n)poll本质上和select没有区别,它将用户传入的数组拷贝到内核空间,然后查询每个fd对应的设备状态,但是它没有最大连接数的限制,原因是它是基于链表来存.

2021-04-22 15:59:22 45

转载 Linux/Centos: 服务器TIME_WAIT和CLOSE_WAIT区别及解决方案

问题背景统上线之后,通过如下语句查看服务器时,发现有不少TIME_WAIT和CLOSE_WAIT。netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'打印显示如下:TIME_WAIT 297ESTABLISHED 53CLOSE_WAIT 5TIME_WAIT:表示主动关闭,通过优化系统内核参数可容易解决。 CLOSE_WAIT:表示被动关闭,需要从程序本身出发。 ES...

2021-04-22 10:00:12 56

转载 Linux/Centos: LVS负载均衡(LVS简介、三种工作模式、十种调度算法)

一、LVS简介LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案,其体系结构如图1所示,终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端的某台Web服务器,比如,轮询算法可以将外部的请求平均分发给后端的所有服务器,终端用户访问LVS调...

2021-04-16 11:04:38 71

转载 JAVA: BIO与NIO、AIO的区别

IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。一、BIO在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待请求,而客户端发送请求后,先咨询服务端是否有线程相应,如果没有则会一直等待或者遭到拒绝请求,如果有的话,客户端会线程会等待请求结束后才继续执行。二、NIONIO本身是基于事件驱动思...

2021-04-15 09:52:47 55

转载 C++ 11 之 auto和decltype的区别

通过《C++ auto》和《C++ decltype》两节的学习,相信大家已经掌握了 auto 和 decltype 的语法规则以及使用场景,这节我们将 auto 和 decltype 放在一起,综合对比一下它们的区别,并告诉大家该如何选择。语法格式的区别auto 和 decltype 都是C++11 新增的关键字,都用于自动类型推导,但是它们的语法格式是有区别的,如下所示:auto varname = value; //auto的语法格式decltype(exp) varname [=.

2021-03-29 16:05:57 70

转载 C++函数后面加“:”的含义

1、c++成员函数后面跟“:”表示的是赋值,这是c++的特性如下:A( int aa, int bb ):a(aa),b(bb){}相当于A( int aa, int bb ){a=aa;b=bb;}2、c++构造函数后面跟“:”也表示赋值1)对含有对象成员的对象进行初始化类line有两个私有对象成员startpoint、endpoint,line的构造函数写成:line(int sx,int sy,int ex,int ey):startpoint(sx,sy),en.

2021-03-26 11:47:20 172

JSP+Servlet+Javabean+Mysql 网上书店管理系统

本系统以MVC架构搭建在线书店管理系统,采用JSP+Servlet+JavaBean技术实现,采用Mysql数据库为数据支持。本资源包含数据库.sql脚本,可方便导入使用。

2011-03-18

JSP+Servlet+Javabean+Mysql学生成绩管理系统

本系统以MVC架构搭建,采用JSP+Servlet+Javabean+Mysql技术实现,软件界面美观友好,并且本资源包含有.sql脚本,可直接导入数据库生成系统所需要的表,无需做更改,即可使用。

2011-03-18

s7comm plus 0-0-8 wireshark64bit plugin

资源为s7comm plus 的wireshark插件,0.0.8版本,64位,目前wireshark不支持解析s7comm plus协议,必须安装插件才能正确解析,为方便同学们研究学习,共享此资源。

2020-09-28

Python+Flask 基础入门实战_实用的课程资料

视频课程:Python+Flask 基础入门实战 ,很实用的课程资料,适合入门学习者,可以快速入门,掌握python flask使用,很赞

2020-07-19

Google编码规范 之C中文版

资源为Google c/c++编码规范,非常具有参考意义,资源附件为版主花费大量时间搜索整理,提供给需要的同学参考。

2020-06-19

Protector suite 2011 Build 6894-32bit 破解版

本资源为Protector suite 2011 Build 6894-32bit的注册文件,由于所需软件较大无法上传,需要到官网下载,安装好指纹识别软件后,只需要双击压缩包中的“破解文件.reg”即可完成注册,使得用户可以使用Protector suite 2011 Build 6894-32bit的完整版功能,尽情体验它的魅力吧。

2011-04-10

大神萧井陌 Python+Flask 24课.txt

视频课程:大神萧井陌 Python Flask 24课,非常好的课程,深入浅出,有兴趣的同学可以一起学习。

2020-07-19

Java开发包JDK

本资源为JAVA开发必不可少的JDK,楼主上传该资源主要为Java爱好者共享资源

2011-12-22

apache-tomcat-7.0.4

本资源为tomcat7,楼主上传为方便大家使用

2011-12-22

一个报文的路由器之旅

一个报文的路由器之旅

2017-08-27

空空如也

空空如也

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

TA关注的人 TA的粉丝

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