- 博客(734)
- 资源 (92)
- 收藏
- 关注
原创 linux中ip tunnel的实现及协议简介
一.实现在Linux中,隧道的实现主要基于两个文件new_tunnel.c和ipip.c同时Linux定义了一种新的协议类型--IPIP(IPPROTO_IPIP),与上面所说封包类型类似。基本思路在Linux中IP Tunnel的实现也分为两个部件:封装部件和解封部件,分别司职发送和接收。但这两个部分是在不同的层次以不同的方式实现的。封装部件是在数据链路层以虚
2015-06-17 16:44:40
6806
原创 qemu 启动虚拟机 sheepdog
前言sheepdog是一个专门为qemu设计的虚拟机分布式文件系统,采用完全对称的结构,没有元数据服务的中心节点,因此免除了单点故障的隐患.本文基于最新的0.7.0版本测试,介绍sheepdog的安装配置和使用.sheepdog的后端集群管理sheepdog的后端集群管理用于管理节点间的成员关系和消息通讯.目前可使用四种模式,分别是local driver(用于单机测试),corosy
2015-06-17 16:28:43
2323
原创 使用 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
2107
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
7488
原创 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
1704
原创 使用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
5312
原创 使用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
2788
原创 在写一个嵌入式Linux构建的初级教程,先放上两篇,请大家拍拍转。
构建嵌入式Linux系统初级实践教程(一) 通过动手实践来学习嵌入式Linux系统,是一个行之有效的方法。本文以O'REILLY出版的经典书籍Building embedded linux systems(第二版)为蓝本,从动手实践的角度,循序渐渐地介绍了嵌入式Linux系统的构建方法,可以作为初学者的入门指导。本文为初级教程,后续还会有中级和高级教程。初级教程的目标是“学会”,中级教
2015-06-17 11:18:44
1129
原创 为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
3247
原创 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
2265
原创 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
936
原创 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
871
原创 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
751
原创 用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
6495
原创 如何在Linux下大量屏蔽恶意IP地址(ipset)
转自:http://www.kuqin.com/shuoit/20150225/344886.html很多情况下,你可能需要在Linux下屏蔽IP地址。比如,作为一个终端用户,你可能想要免受间谍软件或者IP追踪的困扰。或者当你在运行P2P软 件时。你可能想要过滤反P2P活动的网络链接。如果你是一名系统管理员,你可能想要禁止垃圾IP地址访问你们的公司邮件服务器。或者你因一些原因想要禁止 某些
2015-06-16 10:57:49
4989
原创 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
825
原创 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
2254
原创 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
2799
原创 flume ng
我在flume-ng 1.1.0 孵化版的时候就开始接触了,自己也搞了一段时间,没事扯扯心得吧。 先说在前面,flume-ng 后面的版本,我没仔细读change log ,比较农民 , 不知道新添了哪些特别NB的功能,有说错的地方,还请多多指教。 首先,介绍一个非常全的文章,http://flume.apache.org/FlumeUserGuide.html 看了这篇文
2015-05-10 17:35:19
562
原创 利用nf_conntrack机制存储路由,省去每包路由查找
最终生成的IP数据报的路由称为目的入口(dst_entry),目的入口反映了相邻的外部主机在本地主机内部的一种“映象”,目的入口在内核中的定义如下struct dst_entry{ struct dst_entry *next; atomic_t __refcnt; int __use;
2015-05-04 22:31:55
844
1
原创 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
3225
1
原创 如何扩展Linux的ip_conntrack multi zone conntrack机制
inux中有一个基于Netfilter的连接跟踪机制,即ip_conntrack,每一个conntrack表示的就是一个流,该流里面保存了大量的信息字段,这些字段本地有效,指导着数据包的转发策略,但是我觉得这些字段信息还不够详细,试想,一个nfmark字段好像就可以做到一切了,但是我如果想为一个数据流绑定一个字符串怎么办呢?也许你会说使用iptables+ipset+nfmark可以完成一切,这也
2015-05-04 22:10:56
657
原创 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
966
原创 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
6102
原创 google protobuf 定义服务(service)
l 定义服务(Service)如果想要将消息类型用在RPC(远程方法调用)系统中,可以在.proto文件中定义一个RPC服务接口,protocol buffer编译器将会根据所选择的不同语言生成服务接口代码及存根。如,想要定义一个RPC服务并具有一个方法,该方法能够接收 SearchRequest并返回一个SearchResponse,此时可以在.proto文件中进行如下定义:
2015-04-25 10:45:33
22835
原创 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
1077
原创 基于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
1062
原创 C++模板 - policy类
http://blog.youkuaiyun.com/zj510/article/details/41963841
2015-04-24 09:49:26
404
原创 模板的特化,偏特化,实例化
/************************************************************************/ /* 文件名: 模板的特化,偏特化,实例化 创建人: Clark/陈泽丹 描述: 模板特化其实就是模板的特殊处理(调用时需指定类型,然后再特殊问题特殊处理)。 模板偏特化其实就是模板的部份特殊处理(调用时需指定类型,然
2015-04-24 09:48:30
869
原创 C++模板元编程(递归-->分解)
最近一直在看STL和Boost,源码里边好多涉及到模板元编程技术,简单了解一下,备忘(Boost Python中的涉及模板元的部分重点关注一下)。范例引入// 主模板templateint N>struct Fib{ enum { Result = Fib1>::Result + Fib2>::Result };};// 完全特化版template <>st
2015-04-22 22:49:42
740
原创 模板偏特化 指针 模板萃取 指针
C++相关语法基础模板特化(template specialization)通用模板对于某种特定的类型可能是错误的,所以可能需要对特定的类型单独定义模板的实现。另一方面,可以利用特定类型的特点进行优化。模板特化是指这样一个定义,该定义指定一个或多个模板的形参实际类型或值。 形式如下: template模板名(可以是函数或类)加一对尖括号,尖括号中指定模板形参的实际类型。函数形参
2015-04-22 22:29:12
3487
原创 tinyXML handle
在TinyXML中,根据XML的各种元素来定义了一些类: TiXmlBase:整个TinyXML模型的基类。 TiXmlAttribute:对应于XML中的元素的属性。 TiXmlNode:对应于DOM结构中的节点。 TiXmlComment:对应于XML中的注释。 TiXmlDeclaration:对应于X
2015-04-22 10:22:12
579
原创 RootElement FirstChildElement FirstChildElement NextSiblingElement FirstAttribute
88208888 西安市太白南路二号 88206666 西安市光华路 程序代码XmlParseExample.cpp如下所示:#include #include #include using s
2015-04-22 10:10:27
2779
原创 TiXmlDeclaration TiXmlDeclaration LinkEndChild
下面我用个简单的例子说明如何使用tinyXML操作xml文件。在讲例子之前我先说说tinyXML中主要类和xml文档之间的对应关系。下面是tinyXML中主要class的类图,反应各个类之间的静态关系。 引用来自tinyXML文档 TiXmlBase是所有类的基类,TiXmlNode、TiXmlAttribute两个类都继承来自TiXmlBase类,其中TiXmlNode类指
2015-04-22 10:04:04
1360
原创 简单的程序诠释C++ STL算法
http://blog.youkuaiyun.com/column/details/stlalgorithms.html
2015-04-21 22:10:14
410
原创 <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
446
原创 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
913
原创 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
1544
1
原创 keepalive的简单应用——管理VIP的飘动
VIP的飘动可以为我们解决很多问题,以前我试过使用ifup/ifdown的方式控制网卡的up/down来实现,这种方式有个小问题,就是每次VIP飘动之后都要等上几十秒才能生效,感觉时间比较长,而且还要配合一些逻辑脚本才能很好地工作,有没有更好的方法呢?当然有,这就是本文的主角——keepalived。 安装很简单:1234
2015-04-19 11:00:21
1250
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人