自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (4)
  • 收藏
  • 关注

原创 shell-sed命令

s1.在命令行定义编辑器命令(直接将数据通过管道输入sed编辑器处理)echo “this is a test” | sed 's/test/big test/'输出:this ia a big test2.在命令行使用多个编辑器命令sed -esed -e ‘ ’ ;‘ ’ script file3.从文件中读取编辑器指令sed -f file 。将file中指定的命令天添加到...

2020-04-04 21:51:15 141

原创 Ubuntu下编译3.0.4内核

ubuntu下编译3.0.4 内核1.下载并解压内核代码到任意目录tar xjvf linux-3.0.4.tar.bz22.配置内核对内核进行配置是为了得到内核配置文件.config。通过对内核进行配置,可以使未来编译成功的内核增加或减少对一些内核特性的支持。对内核进行配置有多种方法,有基于文本的配置方式也有基于图形的用户界面。下面采用使用比较广泛的make menuconfig方式:sudo apt-get install libncurses5-devsudo make menuconf

2021-03-01 11:51:40 171

原创 TCP 四次挥手过程和状态变迁

双方都可以主动断开连接,断开连接后主机中的「资源」将被释放。客户端打算关闭连接,此时会发送一个TCP首部FIN标志位被置位1的报文,也即FIN报文,之后客户端进入FIN_WAIT_1 状态服务端接收改报文后,就向客户端发送ACK应答报文,接着服务器进入CLOSE_WAIT 状态客户端收到服务器的ACK报文后,之后进入FIN_WAIT_2 状态等待服务端处理完数据后,也向客户端发送FIN报文,之后服务器进入LAST_ACK 状态客户端收到服务器FIN报文后,回一个ACK应答报文,之后进入TIME_

2021-01-27 17:38:07 577

原创 SYN攻击

SYN攻击原理:TCP连接建立需要三次握手,假设攻击者短时间伪造不同IP地址的SYN报文,服务端每接收到一个SYN报文,就进入SYN_RCVD状态,但服务端发送出去的ACK + SYN 报文,无法得到未知IP主机的ACK应答,久而久之就会占满服务端的SYN接收队列(未连接队列),使得服务器不能为正常用户服务。避免SYN攻击方式一:当网卡接收数据包的速度大于内核处理的速度时,会有一个队列保存这些数据包。控制该队列的最大值如下参数“net.core.netdev_max_backlogSYN_RCVD

2021-01-27 16:45:38 293

原创 TCP——三次握手

为什么是三次握手,不是两次、四次?相信大家比较常回答的是:“因为三次握手才能保证双方具有接收和发送的能力。那么,以三个方面分析三次握手的原因:三次握手才可以阻止重复历史连接的初始化(主要原因)三次握手才可以同步双方的初始序列号三次握手才可以避免资源浪费原因一: 避免历史连接客户端连续发送多次 SYN 建立连接的报文,在网络拥堵情况下:(1) 一个「旧 SYN 报文」比「最新的 SYN 」 报文早到达了服务端;(2) 那么此时服务端就会回一个 SYN + ACK 报文给客户端;(3) 客

2021-01-26 09:49:58 630

原创 TCP和UDP区别

连接tcp是面向连接的传输层协议,传输数据前要建立链接。udp是不需要连接,即刻传输数据服务对象tcp是一对一的两点服务,即一条连接上只有两个端点udp支持一对一、多对多、一对多的交互通信可靠性tcp是可靠交付数据的,数据可以无差错、不丢失、不重复、按需到达udp是尽最大可能交付,不保证数据可靠阻塞控制、流量控制tcp有阻塞控制、流量控制机制,保证数据传输的安全性udp没有,即使网络非常拥堵了,也不会影响udp的发送速度首部开销tcp首部长度较长,会有一定的开销,首部在没有使用选项

2021-01-25 17:18:55 132

原创 字节序-大小端

不说废话,直接上干货。定义字节序分大端字节序和小端字节序。大端字节序:一个整数的高位字节(23-31 bit)存储在内存的低地址处,低位字节(0-7bit)存储在内存的高地址处。小端字节序:整数的高位字节存储在内存的高地址处,低字节存储在内存的低地址处。现在pc大多采用小端字节序,小端字节序也叫主机字节序。大端字节序也叫网络字节序。验证大小端代码#include<stdio.h>void byteorder(){union{short val;char union_by

2020-11-15 17:45:54 141

原创 线程同步机制-包装类

为了充分复用代码,将线程同步机制分装成3个类。#ifndef LOCK_H#define LOCK_H#include#include<pthread.h>#include<semaphore.h>class sem{public:/创建并初始化信号量/sem(){if(sem_init(&m_sem, 0, 0) != 0){/构造函数没有返回值,可以通过抛出异常来进行报错误/throw std::exception();}}/销毁信号量

2020-11-09 10:33:07 230

原创 线程同步机制-posix信号量

简介POSIX信号量是线程之间同步的机制之一。除此之外,线程的同步机制有互斥量、条件变量。常用API接口1.int sem_init(sem_t *sem, int pthread, unsigned int value)2.int sem_destroy(sem_t *sem)3.int sem_wait(sem_t sem)4.int sem_trywait(sem_t * sem)5.int sem_post(sem_t *sem)这些函数的第一个参数:sem为指向被操作的信号量。s

2020-11-07 16:51:12 321

原创 reids-字符串命令介绍

reids 数据类型-字符串类型介绍赋值与取值递增数字增加指定的整数减少指定的整数增加指定浮点数向尾部追加值获取字符串长度同时获得/设置多个键值位操作介绍字符串类型是redis最基本的数据类型,它能存储任何形式的字符串。包括二进制数据。一个字符串类型键允许存储的数据的最大容量是512MB赋值与取值set key valueget key递增数字当存储的字符串是整数时,redis提供一个incr命令。就是让其键值递增,并且返回递增后的值。当要操作的键不存在时,默认的键值为0. 第一次执行i

2020-11-01 23:32:17 127

原创 linux-C Makefile规则

Makefile 基本规则Makefile的框架是由各种规则构成的。make命令执行时,现在makefile文件中查找各种规则。对各种规则进行解析后,运行规则。规则的基本形式为:TARGET , :DEPENDEDS…COMMAND;;;;;TARGET :规则锁定的目标DEPENDEDS:执行此规则所必须的依赖条件COMMAND: 规则所执行的命令Makefile 预定于变量A...

2020-04-11 17:56:36 127

原创 shell-正则表达式

正则表达式正则表达式是通过正则表达引擎实现的。正则表达式引擎是一套底层软件。负责解释正则表达式模式并使用这些模式进行文本匹配。

2020-04-06 20:16:30 93

原创 线性回归

线性回归线性:y=a*x 一次方的变化回归:回归到平均值简单线性回归算法==公式一元一次方程组一元指的一个X:影响Y的因素,维度一次指的X的变化:没有非线性的变化y = a*x + bx1,y1 x2,y2 x3,y3 x4,y4 …做机器学习,没有完美解只有最优解~做机器学习就是要以最快的速度,找到误差最小的最优解!一个样本的误差:yi^ - yi找到误差最小...

2020-03-08 14:07:45 208

原创 机器学习初识

机器学习让机器像人具备学习的能力拟人知识–数据算法–公式(神经网络–各种算法人来帮助机器选择算法)模型–参数预测–把新的数据和参数进行计算得到结果y = a*x + by1,x1和y2,x2事实上就可以作为数据a,b就是要求解的参数预测就是当新的x带到公式里面,求得的y预测结果机器学习分为有监督的机器学习:有y回归(y区间是正无穷到负无穷)预测结果具体的值分类(y是...

2020-03-08 13:38:17 100

原创 linux简单线程池及源码

  这里给个线程池的实现代码,里面带有个应用小例子,方便学习使用,代码 GCC 编译可用。参照代码看下面介绍的线程池原理跟容易接受,百度云下载链接:  http://pan.baidu.com/s/1i3zMHDV一.线程池简介  为什么使用线程池?  目前的大多数网络服务器,包括Web服务器、Email服务器以及数据库服务器等都具有一个共同点,就是单位时间内必须处理数目巨大...

2020-02-17 22:48:29 170

原创 epoll介绍以及epoll 实现udp server

Abstractepoll是Linux内核为处理大批量句柄而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。简介:epoll是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率,因为:它会复用文件...

2020-02-16 21:04:19 1620

原创 C 运算符优先级

在开发中,弄明白运算符优先级,很有必要。下面,我整理了一下运算符优先级。

2020-02-10 17:38:57 85

原创 C 语言深度解刨-关键字

C语言中,32个关键字关键字意义关键字意义auto 声明自动变量,缺省时编译器一般默认为 autoint 声明整型变量double 声明双精度变量long 声明长整型变量char 声明字符型变量float 声明浮点型变量short 声明短整型变量signed 声明有符号类型变量unsigned 声明无符号类型变量struct 声明结构体变量union 声明联合数据类型en...

2020-02-10 11:38:07 161

原创 shell 函数

可以用户定义函数,然后在shell脚本中可以随便调用。shell中函数的定义格式如下:[ function ] funname [()]{action;[return int;]}说明:1.可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。2.参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 retu...

2020-01-11 21:46:06 79

原创 shell 流程控制

ifif conditionthencommand1command2…commandNelsecommandfiif else-if elseif condition1thencommand1elif condition2thencommand2elsecommandNfifor 循环for循环一般格式为:for var in item1 item2 …...

2020-01-11 18:19:47 62

原创 shell 运算符

Shell 和其他编程语言一样,支持多种运算符,包括:算数运算符关系运算符布尔运算符字符串运算符文件测试运算符原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。expr 是一款表达式计算工具,使用它能完成表达式的求值操作。

2020-01-11 16:36:00 116

原创 shell数组

shell数组定义数组用括号来表示,元素用"空格"符号分割开,语法格式如下:array_name=(value1 … valuen)例子:my_array=(A B “C” D)或者定义数组如下:array_name[0]=value0array_name[1]=value1array_name[2]=value2读取数组读取数组格式:${array_name[index]}获...

2020-01-11 16:00:02 65

原创 shell 传参

我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……实例:以下实例我们向脚本传递三个参数,并分别输出,其中 $0 为执行的文件名:#!/bin/bashecho “Shell 传递参数实例!”;echo “执行的文件名:$0”;echo “第一个参数为:$1”;echo...

2020-01-11 15:53:07 133

原创 shell 编程-变量

shell编程-变量变量定义使用变量只读变量删除变量变量类型shell字符串获取字符串长度提取子字符串shell 数组读取数组获取数组的长度变量定义定义变量时,变量名不加美元符号。注意:变量名和等号之间不能有空格。同时,变量名的命名须遵循如下规则:命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。中间不能有空格,可以使用下划线(_)。不能使用标点符号。不能使用bash里的关...

2020-01-11 14:33:05 112

原创 linux gdb调试线程

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

2019-11-13 19:40:09 245

原创 Centos6.5 安装以及管理docker

使用的操作系统是是centos6.5,按照官方的推荐的配置,把linux内核升级到3.8以上。安装步骤如下:1、升级内核版本(包含aufs)cd /etc/yum.repos.dwget http://www.hop5.in/yum/el6/hop5.repoyum install kernel-ml-aufs kernel-ml-aufs-devel2、修改引导的内核vi /etc/...

2019-11-10 18:08:19 149

原创 linux 建立守护进程步骤

linux 守护进程 建立步骤1.fork首先需要fork一个子进程并将父进程关闭。如果进程是作为一个shell命令在命令行上前台启动的,当父进程终止时,shell就认为该命令已经结束。这样子进程就自动称为了后台进程。而且,子进程从父进程那里继承了组标志符同时又拥有了自己的进程标识符。这样保证了子进程不会是一个进程组的首进程。这一点是下一步setsid所必须的。2.setsidsetsi...

2019-10-16 22:13:59 206

原创 Neutron 基本概念

基本概念网络Neutron网络目的是划分物理网络,在多租户环境下提供给每个租户独立的网络环境。Neutron中“网络”是一个可以被用户创建的对象,如果要和物理环境下的概念映射的话,这个对象相当于一个巨大的交换机,可以拥有无限多个动态可创建和销毁的虚拟端口子网子网是由一组IP地址组成的地址池。不同子网间的通信需要路由器的支持,Neutron中子网隶属于网络。端口一个端口代表了在逻辑网络...

2019-09-21 11:39:57 973

原创 Nova服务-VNC服务

VNC 访问方式原理VNC访问方式:host_ip:port,比如221.130.253.135:1如何获得虚拟机对应的vnc port?vncdisplay domain_id客户端软件: vnc viewer,tightVNC等等VNC 访问原理:基于RFB协议,即Remote FrameBuffer protocol有两部分组成:vnc server和vnc client...

2019-09-16 22:25:46 918 1

原创 openstack-nova架构介绍

简单架构1.单点服务2.无负载均衡3.无高可靠2.复杂架构1.负载均衡2.高可靠3.nova-api服务4.nova-scheduler 调度器5.nova-conducor 数据库访问代理服务

2019-09-15 23:26:25 243

原创 keystone认证原理

主要介绍uuid认证和pki认证两种方式。1.## 认证原理图二 UUID认证的原理当用户拿着有效的用户名和密码去keystone认证后,keystone就会返回给他一个token,这个token就是一个uuid。以后用户进行其他操作时,都必须出示这个token。例如当nova接到一个请求后,就会用这个token去向keystone进行请求验证,keystone通过比对token,以及检查...

2019-09-15 19:01:43 421

原创 openstack 基本概念

1.租户-》Tenant资源的集合, 资源的容器,资源的拥有者。计算资源(物理机)、存储资源(云硬盘)网络资源、镜像资源等早期的版本叫projectdevstack 默认创建两个租户:admin 和demo2.用户 -》User认证的对象1.访问openstack中的每一个服务,都是这个user对象访问的。2.user要归属于某个tenant,默认生成admin和demo两个use...

2019-09-15 17:08:19 229

原创 Devstack安装问题总结

2019-09-13 10:44:27 1172

原创 devstack 部署openstack以及devstack源码结构

devstack部署openstack,并分析源码结构devstack 下载2.devstack源码结构stack.sh 自动化部署的入口->.exe 文件locarc 配置文件 传入stack.sh 的参数 (Nova部署在那个节点,用户名密码是啥)openrc:环境变量脚本...

2019-09-13 09:34:21 241

原创 openstack云系统 简单介绍

openstack 简单介绍Nova:弹性计算模块围绕虚拟机相关的所有操作(kvm,xen,linux container)Neutron 网络模块linuxbridge+vlan, open vswitch+vlan/gre/vxlanCinder:块存储模块Swift:对象存储模块KeyStone:认证授权模块Glance:镜像管理模块openstack 各组件之间的关系...

2019-08-31 14:00:54 258

原创 c++ 设计模式--工厂模式

在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。工厂模式作为一种创建模式,一般在创建复杂对象时,考虑使用;在创建简单对象时,建议直接new完成一个实例对象的创建。简单工厂模式:特点:需要在工厂类中做判断,从而创造相应的产品,当增加新产品时,需要修改工厂类。使用简单工厂模式,我们只需要知道具体的产品型号就可以创建一个产品。缺点:工厂类集中...

2019-08-29 13:56:51 133

原创 c# 事件 event 解析

事件(event),这个词儿对于初学者来说,往往总是显得有些神秘,不易弄懂。而这些东西却往往又是编程中常用且非常重要的东西。大家都知道windows消息处理机制的重要,其实C#事件就是基于windows消息处理机制的,只是封装的更好,让开发者无须知道底层的消息处理机制,就可以开发出强大的基于事件的应用程序来。先来看看事件编程有哪些好处。在以往我们编写这类程序中,往往采用等待机制,为了等待某件事...

2019-08-01 09:43:05 141

原创 C# 委托 个人理解

什么是委托  首先要知道什么是委托,用最通俗易懂的话来讲,你就可以把委托看成是用来执行方法(函数)的一个东西。如何使用委托  在使用委托的时候,你可以像对待一个类一样对待它。即先声明,再实例化。只是有点不同,类在实例化之后叫对象或实例,但委托在实例化后仍叫委托。声明,如:1 namespace Vczx.ProCSharp.Exc2 {3 delegate ...

2019-08-01 09:37:42 143

原创 Go 协程相关概念。搞懂他们,协程就懂了

补充 同步 异步 阻塞 非阻塞同步与异步区别,主要关注的是消息通信机制所谓同步调用 就是由调用者主动等待这个调用的结果。发出一个调用,在没有得到结果之前,该调用就不返回。一旦调用返回,就得到返回值了。所谓异步调用 调用在发出之后,这个调用结果就直接返回了。当一个异步调用过程在发出之后,调用者不会立即得到结果,而是在调用发出后,被调用者通过状态、通知来通知调用者,或者通过函数回调来处理这个调用...

2019-07-02 19:41:08 480

原创 Docker 镜像使用

当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。主要介绍两个方面:1.管理和使用本地docker镜像2.创建镜像一 .管理和使用本地docker镜像列出镜像列表:列出本地镜像:docker images使用镜像允许容器docker run -i -t docker.io/ubunt...

2019-05-31 15:26:08 82

tcp_proxy.zip

linux 服务器端对tcp数据进行透明代理。对数据进行管控、审计。通过libev框架进行分析。开发语言是C。运行环境是centos7

2020-03-06

C语言操作XML

C语言操作XML,写的c接口,自测没问题。希望大家可以采纳。

2019-04-24

C定时器 实现

主要是利用C库来实现定时功能,运行在Linux下。可直接下载使用

2019-04-24

C语言操作JSON

利用C语言操作JSON,运行在Linux下,实现对JSon数据的操作。

2019-04-24

空空如也

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

TA关注的人

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