自定义博客皮肤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中ip tunnel的实现及协议简介

一.实现在Linux中,隧道的实现主要基于两个文件new_tunnel.c和ipip.c同时Linux定义了一种新的协议类型--IPIP(IPPROTO_IPIP),与上面所说封包类型类似。基本思路在Linux中IP Tunnel的实现也分为两个部件:封装部件和解封部件,分别司职发送和接收。但这两个部分是在不同的层次以不同的方式实现的。封装部件是在数据链路层以虚

2015-06-17 16:44:40 4772

原创 qemu 启动虚拟机 sheepdog

前言sheepdog是一个专门为qemu设计的虚拟机分布式文件系统,采用完全对称的结构,没有元数据服务的中心节点,因此免除了单点故障的隐患.本文基于最新的0.7.0版本测试,介绍sheepdog的安装配置和使用.sheepdog的后端集群管理sheepdog的后端集群管理用于管理节点间的成员关系和消息通讯.目前可使用四种模式,分别是local driver(用于单机测试),corosy

2015-06-17 16:28:43 1768

原创 使用 QEMU 进行嵌入式系统开发

相关文章QEMU快速使用指南 (译)使用QEMU进行嵌入式系统开发 第1部分 (译)https://prettyxw.com/article/2014/02/16/using-qemu-for-embedded-system-development-translate-part-1/使用QEMU进行嵌入式系统开发 第2部分 (译)https://pretty

2015-06-17 16:05:52 1585 1

原创 QEMU 快速使用指南 (译) ******************

https://prettyxw.com/article/2014/02/14/the-quick-guide-to-qemu-setup-translate/ 本文翻译自 Linux for You 网站上的文章The Quick Guide to QEMU Setup (2011.5)正文如下在接下来的一系列文章中,我们将逐一介绍 QEMU 的基本使用、操作系统安装

2015-06-17 16:01:56 4779

原创 qemu 在当前OS中运行其它的操作系统

qemu从某种意义上功能类似于vmware/virtual box之类的软件,可以让你在当前OS中运行其它的操作系统,但是这仅仅是qemu的一种功能qemu还可以模拟不同的cpu架构下的系统,比如在普通的个人pc上运行 arm linux之类,这个vmware之类的可能没有关于qemu的使用先到官网上下载qemu的源代码,目前是 1.2,如果使用的是linux系统,这个好办,直

2015-06-17 15:58:42 1137

原创 使用QEMU模拟搭建ARM开发平台(三)——添加SCSI和MTD以及NAND flash支持

使用versatile_defconfig编译的内核不能满足要求,现在,添加SCSI磁盘,MTD以及NAND flash的支持。交叉编译linux内核下载codesourcery的交叉编译工具链 https://sourcery.mentor.com/sgpp/lite/arm/portal/subscription?@template=lite, 选择目标OS为GNU/Linux

2015-06-17 12:00:10 2817

原创 使用QEMU模拟搭建ARM开发平台

使用QEMU模拟搭建ARM开发平台(一):交叉编译Linux内核tags: qemu安装需要的包,我的主机环境是debian squeeze/x86_64,首先需要安装交叉编译工具链,安装qemu模拟器,下载linux内核。安装交叉编译工具链将下列源添加到/etc/apt/sources.list或在/etc/apt/sources.list.d/目录下新建一个

2015-06-17 11:29:34 1512

原创 在写一个嵌入式Linux构建的初级教程,先放上两篇,请大家拍拍转。

构建嵌入式Linux系统初级实践教程(一) 通过动手实践来学习嵌入式Linux系统,是一个行之有效的方法。本文以O'REILLY出版的经典书籍Building embedded linux systems(第二版)为蓝本,从动手实践的角度,循序渐渐地介绍了嵌入式Linux系统的构建方法,可以作为初学者的入门指导。本文为初级教程,后续还会有中级和高级教程。初级教程的目标是“学会”,中级教

2015-06-17 11:18:44 942

原创 为linux建立最小的根文件系统

为linux建立最小的根文件系统在编译内核时候,可以指定一个文件夹作为内核启动时候的根文件系统,linux中管这个文件系统叫做initramfs。具体做法如下(以i386为例)1.下载内核文件  wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.tar.bz22.解压内核   bzip2

2015-06-17 10:46:13 2489

原创 Qemu虚拟机中挂载NFS

在Qemu运行的虚拟机中经常需要挂载NFS文件系统,在CenterOS 6.0系统中做了一次配置,在虚拟机中运行一个initramfs并在其中成功地挂载了NFS。下面是实验步骤的记录。一、建立开发环境yum groupinstall "Development Tools"yum install glibc-static二、安装Qemuyum install zlib

2015-06-17 10:30:40 1154

原创 120011111111QEMU中启动单虚拟机并已TAP/TUN方式联网的方法请参见:QEMU中启动单虚拟机并已TAP/TUN方式联网的方法请参见:QEMU中启动单虚拟机并已TAP/TUN方式联网的方

用Qemu模拟ARM(1)前面已经安装并配置了编译链和qemu,现在可以用qemu来模拟arm平台了。1. Hello, Qemu!输入下面的代码:hello.c - hello.c#includeint main(){ printf("Hello, Qemu!\n"); return 0;}编译并

2015-06-17 09:59:27 677

原创 PC 上 QEMU模拟arm

1. 首先,编译 qemu代码: git clone git://git.qemu.org/qemu.git cd qemu/ ./configure --target-list=arm-softmmu,mipsel-softmmu --enable-debug --enable-sdl make sudo make install2. 编译 linux  kerne

2015-06-17 09:55:19 654

原创 qemu虚拟开发板

虚拟开发板From armuxJump to: navigation, search如果你想拥有一块开发板,而又不想花钱,那你就可以自己做一个虚拟开发板。虚拟开发板是用QEMU模拟出来的一块板子,实际上就是一个虚拟机。Contents[hide]1 调试模式1.1 QEMU1.1.1 下载QEMU1.1.2 安装QEMU1

2015-06-17 09:51:15 562

原创 用Qemu模拟ARM

用Qemu模拟ARM(1)前面已经安装并配置了编译链和qemu,现在可以用qemu来模拟arm平台了。1. Hello, Qemu!输入下面的代码:hello.c - hello.c#includeint main(){ printf("Hello, Qemu!\n"); return 0;}编译并

2015-06-17 09:35:18 4320

原创 如何在Linux下大量屏蔽恶意IP地址(ipset)

转自:http://www.kuqin.com/shuoit/20150225/344886.html很多情况下,你可能需要在Linux下屏蔽IP地址。比如,作为一个终端用户,你可能想要免受间谍软件或者IP追踪的困扰。或者当你在运行P2P软 件时。你可能想要过滤反P2P活动的网络链接。如果你是一名系统管理员,你可能想要禁止垃圾IP地址访问你们的公司邮件服务器。或者你因一些原因想要禁止 某些

2015-06-16 10:57:49 3783

原创 ip_route_out route ip_rcv_finis

IP层路由适配(IP route)  路由表以及规则组成的系统,可以完成路由的管理以及查找的工作,但是为了使得IP层的路由工作更加的高效,linux的路由体系里,route.c里完成大多数IP层与RPDB的适配工作,以及路由缓冲(route cache)的功能。  调用接口  IP层的路由接口分为发送路由接口以及接收路由接口:  发送路由接口  IP层在发送

2015-05-16 12:18:22 464

原创 struct rtable

在试验环境中,网络设备接口mylo的IP地址是127.10.0.1,它在内核中的表示是struct net_device myloopback_dev,测试程序往IP地址127.10.0.1发送DUMMY协议的数据报,协议栈为其生成的路由目的入口如下:    the dst_entry:        the dev name: mylo        the error: 0        th

2015-05-16 11:45:57 1605

原创 spark读取 kafka nginx网站日志消息 并写入HDFS中

spark 版本为1.0kafka 版本为0.8首先来看看kafka的架构图 详细了解请参考官方我这边有三台机器用于kafka 日志收集的A 192.168.1.1 为serverB 192.168.1.2 为producerC 192.168.1.3 为consumer首先在A上的kafka安装目录下执行如下命令./kafka-server-start.sh

2015-05-10 18:05:53 2635

原创 flume ng

我在flume-ng 1.1.0 孵化版的时候就开始接触了,自己也搞了一段时间,没事扯扯心得吧。   先说在前面,flume-ng 后面的版本,我没仔细读change log ,比较农民 , 不知道新添了哪些特别NB的功能,有说错的地方,还请多多指教。   首先,介绍一个非常全的文章,http://flume.apache.org/FlumeUserGuide.html 看了这篇文

2015-05-10 17:35:19 467

原创 利用nf_conntrack机制存储路由,省去每包路由查找

最终生成的IP数据报的路由称为目的入口(dst_entry),目的入口反映了相邻的外部主机在本地主机内部的一种“映象”,目的入口在内核中的定义如下struct dst_entry{    struct dst_entry    *next;    atomic_t            __refcnt;    int                 __use;   

2015-05-04 22:31:55 471

原创 skb_dst_set - struct dst_entry dst 路由子系统使用。

现在有一个需求,使用netfilter框架,在NF_IP_FORWARD点做钩子。把钩到的包从指定的物理接口发出去,这个怎么实现?哪个大侠能举个例子,谢谢1、偿试修改skb_buff->dev,死机2、偿试修改skb_buff->mac_header,死机在NF_IP_FORWARD点,已经决定了路由,也就说决定了从哪个物理网口出了。要想实现从指定的物理接口出来,需要重

2015-05-04 22:18:41 1940 1

原创 如何扩展Linux的ip_conntrack multi zone conntrack机制

inux中有一个基于Netfilter的连接跟踪机制,即ip_conntrack,每一个conntrack表示的就是一个流,该流里面保存了大量的信息字段,这些字段本地有效,指导着数据包的转发策略,但是我觉得这些字段信息还不够详细,试想,一个nfmark字段好像就可以做到一切了,但是我如果想为一个数据流绑定一个字符串怎么办呢?也许你会说使用iptables+ipset+nfmark可以完成一切,这也

2015-05-04 22:10:56 507

原创 VMCS研究总结

再来看kvm分配与初始化vmcs的代码路径。我发现有两个路径都是要分配vmcs的:第一是kvm内核模块加载时,在hardware_setup中调用alloc_kvm_area,进而对每一个cpu调用alloc_vmcs_cpu。这里的每一个cpu应该是物理cpu了,为什么要对每个物理cpu都分配一个页的vmcs空间觉得有点奇怪,还没想明白。另外,setup_vmcs_config很重要,是

2015-05-03 11:01:08 652

原创 virtio的io路径 vhost的io路径 和vhost-user vhost-user *********网络设备

随着qemu2.1的发布,可以看到,qemu支持了vhost-user。从介绍可以看出,这是把原来vhost-backend从kernel移到了userspace,这和原来virtio架构有什么区别呢?并且这个特性带来了怎样的改进?virtio在虚拟机中,可以通过qemu模拟e1000网卡,这样的经典网卡一般各种客户操作系统都会提供inbox驱动,所以从兼容性上来看,使用类似e10

2015-04-28 20:09:22 5348

原创 google protobuf 定义服务(service)

l  定义服务(Service)如果想要将消息类型用在RPC(远程方法调用)系统中,可以在.proto文件中定义一个RPC服务接口,protocol buffer编译器将会根据所选择的不同语言生成服务接口代码及存根。如,想要定义一个RPC服务并具有一个方法,该方法能够接收 SearchRequest并返回一个SearchResponse,此时可以在.proto文件中进行如下定义:

2015-04-25 10:45:33 16370

原创 EchoService类和EchoService_Stub类:

3.5.1 接口一个简单的接口定义:service Foo {rpc Bar(FooRequest) returns(FooResponse);}ProtocolBuffer的编译器会生成类 Foo 来展示这个服务。 Foo 将会拥有每个服务定义的方法。在这种情况下 Bar 方法的定义是:def Bar(self,rpc_controller,request

2015-04-25 10:34:05 669

原创 基于protobuf的RPC实现

可以对照使用google protobuf RPC实现echo service一文看,细节本文不再描述。google protobuf只负责消息的打包和解包,并不包含RPC的实现,但其包含了RPC的定义。假设有下面的RPC定义:service MyService { rpc Echo(EchoReqMsg) returns(EchoRespMsg) }

2015-04-25 10:19:08 698

原创 C++模板 - policy类

http://blog.csdn.net/zj510/article/details/41963841

2015-04-24 09:49:26 289

原创 模板的特化,偏特化,实例化

/************************************************************************/  /*  文件名: 模板的特化,偏特化,实例化 创建人: Clark/陈泽丹 描述:   模板特化其实就是模板的特殊处理(调用时需指定类型,然后再特殊问题特殊处理)。 模板偏特化其实就是模板的部份特殊处理(调用时需指定类型,然

2015-04-24 09:48:30 666

原创 C++模板元编程(递归-->分解)

最近一直在看STL和Boost,源码里边好多涉及到模板元编程技术,简单了解一下,备忘(Boost Python中的涉及模板元的部分重点关注一下)。范例引入// 主模板templateint N>struct Fib{ enum { Result = Fib1>::Result + Fib2>::Result };};// 完全特化版template <>st

2015-04-22 22:49:42 459

原创 模板偏特化 指针 模板萃取 指针

C++相关语法基础模板特化(template specialization)通用模板对于某种特定的类型可能是错误的,所以可能需要对特定的类型单独定义模板的实现。另一方面,可以利用特定类型的特点进行优化。模板特化是指这样一个定义,该定义指定一个或多个模板的形参实际类型或值。 形式如下: template模板名(可以是函数或类)加一对尖括号,尖括号中指定模板形参的实际类型。函数形参

2015-04-22 22:29:12 2474

原创 tinyXML handle

在TinyXML中,根据XML的各种元素来定义了一些类:        TiXmlBase:整个TinyXML模型的基类。        TiXmlAttribute:对应于XML中的元素的属性。        TiXmlNode:对应于DOM结构中的节点。        TiXmlComment:对应于XML中的注释。        TiXmlDeclaration:对应于X

2015-04-22 10:22:12 377

原创 RootElement FirstChildElement FirstChildElement NextSiblingElement FirstAttribute

88208888            西安市太白南路二号                            88206666            西安市光华路                 程序代码XmlParseExample.cpp如下所示:#include #include #include   using s

2015-04-22 10:10:27 1828

原创 TiXmlDeclaration TiXmlDeclaration LinkEndChild

下面我用个简单的例子说明如何使用tinyXML操作xml文件。在讲例子之前我先说说tinyXML中主要类和xml文档之间的对应关系。下面是tinyXML中主要class的类图,反应各个类之间的静态关系。 引用来自tinyXML文档    TiXmlBase是所有类的基类,TiXmlNode、TiXmlAttribute两个类都继承来自TiXmlBase类,其中TiXmlNode类指

2015-04-22 10:04:04 734

原创 简单的程序诠释C++ STL算法

http://blog.csdn.net/column/details/stlalgorithms.html

2015-04-21 22:10:14 316

原创 <STL> pair随笔

pair随笔#include #include using namespace std;templateclass pair1{ public:    T1 first;    T2 second;    //pair1():first(T1()),second(T2()){}    pair1():first(),second(){}   

2015-04-21 22:08:30 281

原创 HAproxy 代理技术原理探究

原]HAproxy 代理技术原理探究HAproxy 技术分享简介HAProxy是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件Features1.免费2.能够做到4层以上代理3.高性能4.高稳定性使用案例淘宝CDN(HTTP反向代理)测试:HTTP代理 ab -i -c 500 -n 10

2015-04-19 11:29:11 728

原创 HAProxy介绍

haproxy+keepalived实现高可用负载均衡 我的环境:haproxy keepalived 主:192.168.1.192haproxy keepalived 备:192.168.1.193vip:192.168.1.200web:192.168.1.187:80 192.168.1.187:8000一:安装过程,在192.168.1.192上:

2015-04-19 11:11:54 728

原创 keepalive的简单应用——管理VIP的飘动

VIP的飘动可以为我们解决很多问题,以前我试过使用ifup/ifdown的方式控制网卡的up/down来实现,这种方式有个小问题,就是每次VIP飘动之后都要等上几十秒才能生效,感觉时间比较长,而且还要配合一些逻辑脚本才能很好地工作,有没有更好的方法呢?当然有,这就是本文的主角——keepalived。      安装很简单:1234

2015-04-19 11:00:21 919

原创 基于centos6.5使用varnish实现网站动静分离

http://www.lvtao.net/server/532.html

2015-04-19 10:50:06 343

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