自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 (转)对PBFT算法的理解

转自: https://www.cnblogs.com/gexin/p/10242161.htmlPBFT论文断断续续读了几遍,每次读或多或少都会有新的理解,结合最近的项目代码,对于共识的原理有了更清晰的认识。虽然之前写过一篇整理PBFT论文的博客,但是当时只是知道了怎么做,却不理解为什么。现在整理下思路,写一篇关于PBFT的理解。1. 前提假定1.1 同步模型在分布式系统中谈论共...

2020-01-07 10:34:40 748

转载 (转)Git 内部原理

9 Git 内部原理底层命令 (Plumbing) 和高层命令 (Porcelain) 9.2 Git 对象 9.3 Git References 9.4 Packfiles 9.5 The Refspec 9.6 传输协议 9.7 维护及数据恢复 9.8 总结不管你是从前面的章节直接跳到了本章,还是读完了其余各章一直到这,你都将在本章见识 Git 的内部工作原理和实现方式。我...

2018-09-16 10:17:28 414

转载 TSO、UFO、GSO、LRO、GRO和RSS介绍

TSO、UFO、GSO、LRO、GRO和RSS介绍ethtool -k ,ethtool --show-offload ,或者可以看到很多网络接口的offload特性,例如:$ sudo ethtool -k eth0Offload parameters for eth0:rx-checksumming: ontx-checksumming: ons

2017-07-31 15:29:28 762

转载 OpenvSwitch 数据层面瓶颈分析

ovs情况下virtio和vhost通信虚拟机到物理机的网络通信,即virtio和vhost的通信。基本方式是virtio创建队列,用于和vhost共享。虚拟机发送报文的时候,将报文入队,然后通知kvm,kvm通知vhost的线程进行报文处理。虚拟机收包的流程为,vhost的线程将报文放入队列,通知kvm,触发virtio注册的中断。此处一般都会是瓶

2017-07-31 11:18:44 3029

转载 QEMU和KVM 中断处理过程

本文讲述一个网络数据包从到达物理网卡,一直到中断注入给VM的整个过程。为了讲述清晰,假设宿主物理机有两个物理CPU,分别为CPU0和CPU1。假设GuestOS运行在CPU1上,物理网卡接到数据包后把中断请求发送到CPU0.1.网络数据包Package到达物理网卡NIC, NIC收到数据包后,向CPU0发送中断请求,通知CPU0有网络数据包到达。2.CPU0收到

2017-07-31 11:09:03 1285

转载 DPDK support for vhost-user学习笔记

作者:张华  发表于:2015-08-06版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明( http://blog.csdn.net/quqi99 )   X86体系早期没有在硬件设计上对虚拟化提供支持,因此虚拟化完全通过软件实现。一个典型的做法是通过优先级压缩(Ring Compression)和二进制代码翻译(Binary Trans

2017-07-24 14:32:50 942

转载 RCU机制及发布订阅

版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[-]       简介       宽限期     订阅发布机制        数据读取的完整性     小结       简介        RCU(Read-Copy Update)是数据同步的一种方式,在当前的Linux内核中发挥着重要的作用。RCU主要针对的数据对象是链表,目的是提高遍历读取数据

2017-06-29 13:45:39 706

转载 ovs+floodlight

配置 ubuntu14.04 LTE, ovs 2.0.21. apt-cache search openvswitch开始安装 2. apt-get install openvswitch-switch查看ovs 运行情况3. # ps -ea | grep ovs 此时出现问题 “connection to /var/run/openvswitch/db.sock

2017-05-31 19:24:48 595

转载 Linux nf_conntrack连接跟踪的实现

连接跟踪,顾名思义,就是识别一个连接上双方向的数据包,同时记录状态。下面看一下它的数据结构:struct nf_conn {        /* Usage count in here is 1 for hash table/destruct timer, 1 per skb, plus 1 for any connection(s) we are `master' for */   

2017-05-19 11:43:21 1829

原创 netfilter filire wall frame

2017-05-18 18:40:52 399

转载 linux arp代理,DMZ与NAT

Linux系统缺省并没有打开IP转发功能,要确认IP转发功能的状态,可以查看/proc文件系统,使用下面命令:cat /proc/sys/net/ipv4/ip_forward如果上述文件中的值为0,说明禁止进行IP转发;如果是1,则说明IP转发功能已经打开。要想打开IP转发功能,可以直接修改上述文件:echo 1 > /proc/sys/net/ipv4/ip_forwa

2017-05-04 11:17:27 1314

转载 nftables相比iptables到底改变了什么

版权声明:本文为博主原创,无版权,未经博主允许可以随意转载,无需注明出处,随意修改或保持可作为原创!这不是一篇教你怎么可以配置nftables实现一个哪怕最简单防火墙的文章,我从来不写这种Howto,因为我觉得如果一项新技术,一个人连其本身的文档都懒得看,即便没有文档如果没有一点钻研精神将其搞懂,只靠看别人写好的Step by step的话,那真是太失败了。相反,这篇文章是一篇檄文,只为吹

2017-04-05 17:30:01 2192

转载 基于Lex 和 Yacc 的 C 语言编译器

一、编译器及其工作流程        编 译器,是将便于人编写,阅读,维护的高级计算机语言翻译为计算机能识别,运行的低级机器语言的程序。编译器将源程序(Source program)作为输入,翻译产生使用目标语言(Target language)的等价程序。源程序一般为高级语言(High-level language),如Pascal,C++等,而目标语言则是汇编语言或目标机器的目

2017-03-29 13:49:20 4082

原创 shell trap命令的一些特殊注意的地方

实验1有下面的bash代码,脚本名signal.bash。#!/bin/bashtrap 'echo INTRRUPTED BY SIGNAL INT' INTseconds0=$(date +%s)sleep 60sseconds1=$(date +%s)echo "sleeped seconds : $((seconds1 - seconds0))s"chenglin

2017-02-08 11:35:30 2092

转载 linux内核抢占实现机制分析

Linux内核抢占实现机制分析 Sailor_forever  sailing_9806@163.com转载请注明http://blog.csdn.net/sailor_8318/archive/2008/09/03/2870184.aspx【摘要】本文详解了Linux内核抢占实现机制。首先介绍了内核抢占和用户抢占的概念和区别,接着分析了不可抢占内核的特点及实时系统中实现内

2017-02-07 13:54:33 489

转载 Linux用户、用户组权限管理详解

Linux用户管理三个重要文件详解: Linux登陆需要用户名、密码。/etc/passwd 文件保存用户名。登录Linux时,Linux 先查找 /etc/passwd 文件中是否有这个用户名,没有则跳出,有则读取用户名的user ID 、 group ID 、用户名对应的根目录路径以及所使用的 shell ,最后在 /etc/shadow 中核对该 UID 对应的 PWD 是否正确,正

2017-02-06 14:08:50 389

转载 Linux内核学习笔记: uid之ruid,euid,suid

看UNIX相关的书时经常能遇到这几个概念,但一直没有好好去理清这几个概念,以致对这几个概念一直一知半解。今天好好区分了一下这几个概念并总结如下。说白了这几个UID引出都是为了系统的权限管理。下面分别用RUID, EUID,SUID来表示实际用户ID,有效用户ID,设置用户ID。另外用户ID是个整型数,为了说明方便真接使用了用户名来代表不同的UID。先解释一下这几个ID的作用:RUID, 用

2017-02-06 13:52:02 2223

转载 Linux--进程组、会话、守护进程

进程组   一个或多个进程的集合  进程组ID: 正整数  两个函数  getpgid(0)=getpgrp()eg:显示子进程与父进程的进程组id 1 #include 2 #include 3 #include 4 5 int main() { 6 pid_t pid; 7 8 if ((pid=fork())0) {

2017-02-06 11:09:21 227

转载 linux内核——会话、进程组、线程组

原文:http://www.cnblogs.com/ISeeIC/p/3624271.htmlSession(会话)与进程组Shell 分前后台来控制的不是进程而是作业(Job)或者进程组(Process Group)。一个前台作业可以由多个进程组成,一个后台作业也可以由多个进程组成,Shell可以同时运行一个前台作业和任意多个后台作业,这称为作业 控制(Job Control)。例如

2017-02-06 09:49:31 2772

转载 原码, 反码, 补码 详解

本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式,  叫做这个数的机

2016-12-15 10:15:41 265

转载 ASCI设计流程及相关工具

1.使用语言:VHDL/verilog HDL2.各阶段典型软件介绍:输入工具:    Summit ,ultraedit               Summit   公司,ultraedit仿真工具:    VCS, VSS                        Synopsys 公司综合器:      DesignCompile, BC Compile

2016-11-15 15:33:32 1410

转载 Analysis of Haswell’s Transactional Memory

原著:David Kanter原名:Analysis of Haswell’s Transactional Memory原文:http://www.realworldtech.com/haswell-tm/翻译:CoryXie 附上原文:Two of my personal areas of interest and expertise are speculativ

2016-10-18 16:21:51 880

转载 Linux进程状态(ps stat)之R、S、D、T、Z、X

原文:http://blog.csdn.net/huzia/article/details/18946491Linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。Linux进程状态:R (TASK_RUNNING),可执行状态。只有在该状态的进程才可能在CPU上运行。而同一时刻可能有多个进程处于可执行状态,这些进

2016-05-13 10:52:42 15335

转载 echo 颜色设置

shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e 格式如下: echo -e "\033[字背景颜色;文字颜色m字符串\033[0m" 例如: echo -e "\033[41;36m something here \033[0m" 其中41的位置代表底色, 36的位置是代表字的颜色 注:   1、字背景颜色和文字颜色之间

2016-05-03 15:49:00 521

转载 cpufreq变频子系统

早在2.6内核之初,linux就已经开始支持变频节能技术,实现了一个cpufreq内核子系统来兼容市面上的变频CPU技术。该子系统引入了governor和driver的概念,如下图:             cpufreq子系统实现了策略和机制分离的设计架构。      CPU-specific drivers(又称为scaling_driver),它是具体的变频机制实

2016-04-08 15:53:58 934

原创 git常用操作

1.查看对象内容   git show $id (id如果是commit,可以看到差别)2. git log -S'foo()'    查看commit的修改中,存在字符串foo()的提交,注意''里面不是正则表达式3. git log --pretty=format:'%h : %s' --graph 更简洁的git log --pretty=oneline --

2016-03-15 10:29:01 850

转载 virsh 管​理​KVM

目录(?)[-]virsh 命令快速参考表 151 客户端管理命令表 152 资源管理选项表 153 其它选项连接至管理程序创建虚拟机 XML 转储配置文件使用配置文件创建客户端编辑客户端配置文件挂起客户端恢复客户端保存客户端恢复客户端关闭客户端重新启动客户端强制客户端停止获得客户端域 ID获得客户端域名称获得客户端 UUID显示客户端信息显示主机信息显示客户端显示虚拟 CPU

2016-01-21 15:38:10 580

转载 Clang/LLVM使用

因为单纯就是使用也没有去动内部的东西,所以这篇文从 llvm-2.1 一路拖到 2.7 才终于想写。对一些早就在用的人来说这内容应该也 lag 好几年了,总之都是些没什么技术性的东西。所以我也不分类在 programming 而是 systemdiary 了。 下载和准备工作先到这个网页点进到最新版的 download 连结:http://llvm.org/rele

2016-01-18 14:05:20 5083

原创 给qemu虚拟机加硬盘,分区,自动挂在

给虚拟机多加一个硬盘:/home/chenglin/qemu/qemu_debug_run/qemu-2.4.0/ppc64-softmmu/qemu-system-ppc64 --enable-kvm -m 50G  -hda /home/chenglin/qemu/qemu_debug_kernel/qemu-dir/ubuntu-ppc64le.img -hdb /home/chengl

2016-01-13 11:44:59 7794

原创 qemu创建虚拟机,gdb调试及网络配置

主要有两种方法,NAT和桥接NAT设置NAT就是虚拟机里的guestOS通过host的物理网卡eth0,连接上网。该方法方便设置,缺点是其他机器难以访问到guest。要求host机器创建虚拟网卡tap0,guest机器和该网卡tap0设置为统一网段,并以tap0的地址作为网关,host机器上的物理网卡eth0为该tap0做NAT。因此需要安装Uml-utilites以生

2016-01-13 09:23:08 5122

转载 如何选择 Linux 上的跟踪器

转载一片目前kernel tracing比较清晰的文章。跟踪器(tracer)是一个高级的性能分析和诊断工具,但是不要让这名词唬住你,如果你使用过 strace 和 tcpdump,其实你就已经使用过跟踪器了。系统跟踪器可以获取更多的系统调用和数据包。它们通常能跟踪任意的内核和应用程序。有太多的 Linux 跟踪器可以选择。每一种都有其官方的(或非官方的)的卡通的独角兽吉祥物,足够

2016-01-11 17:38:05 924

转载 Linux内核工程导论——网络:Filter(LSF、BPF、eBPF)

概览    LSF(Linux socket filter)起源于BPF(Berkeley Packet Filter),基础从架构一致,但使用更简单。LSF内部的BPF最早是cBPF(classic),后来x86平台首先切换到eBPF(extended),但由于很多上层应用程序仍然使用cBPF(tcpdump、iptables),并且eBPF还没有支持很多平台,所以内核提供了从cBPF向eB

2016-01-11 13:07:33 1802

转载 linux sort, uniq, cut, wc, xargs和管道'|'区别,expect自动化脚本

sortsort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出。如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序。sort语法[root@www ~]# sort [-fbMnrtuk] [file or stdin]选项与参数:-f :忽略大小写的差异,例如 A 与 a 视为编码相同;-b :忽略最

2016-01-07 11:26:48 1573

转载 linux sar

Linux 统计/监控工具SAR详细介绍:要判断一个系统瓶颈问题,有时需要几个 sar 命令选项结合起来使用,例如: 怀疑CPU存在瓶颈,可用 sar -u 和 sar -q deng 等来查看 怀疑内存存在瓶颈,可用 sar -B、sar -r 和 sar -W 等来查看 怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看sysstat工具内容提要

2015-10-10 17:37:59 1161

转载 Linux Performance Tools

Linux 平台上的性能工具有很多,眼花缭乱,长期的摸索和经验发现最好用的还是那些久经考验的、简单的小工具。系统性能专家 Brendan D. Gregg 在最近的 LinuxCon NA 2014 大会上更新了他那个有名的关于 Linux 性能方面的 talk (Linux Performance Tools) 和幻灯片。和 Brendan 去年的 talk 比较,今年增加了测试和优

2015-10-09 13:48:56 981

转载 linux基本部件----klist

前面我们说到过list_head,这是linux中通用的链表形式,双向循环链表,功能强大,实现简单优雅。可如果您认为list_head就是链表的极致,应该在linux链表界一统天下,那可就错了。据我所知,linux内核代码中至少还有两种链表能占有一席之地。一种就是hlist,一种就是本节要介绍的klist。虽然三者不同,但hlist和klist都可以看成是从list_head中发展出来的,用于特殊

2015-08-28 16:48:40 2050

转载 Netfilter中规则(rule)的组织框架

1、大蓝图table->chain->rule(match:target)从上图所示,在内核空间,每个CPU上维护了一份rule的拷贝。这样做是为了减少锁的使用及增加硬件L1 cache的命中次数,以空间换时间2、table(表)include/linux/netfilter/x_table.hstruct xt_table{    struct list_

2015-03-16 16:18:54 1651

转载 VLAN

第一部分:VLAN的核心概念说起IEEE 802.1q,都知道是VLAN,说起VLAN,基本上也没有盲区,网络基础。然而说到配置,基本所有人都能顺口溜一样说出Cisco或者H3C设备的配置命令,对于Linux的VLAN配置却存在大量的疑问。这些疑问之所以存在我觉得有两点原因:1.对VLAN的本质还是没有理解。不管你的Cisco/H3C命令敲得再熟练,如果看不懂Linux的vconfig

2015-02-26 19:53:22 892

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

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

2015-02-26 19:38:22 726

转载 洞悉linux下的Netfilter&iptables:网络地址转换原理之DNAT

Netfitler为NAT在内核中维护了一张名为nat的表,用来处理所有和地址映射相关的操作。诸如filter、nat、mangle抑或raw这些在用户空间所认为的“表”的概念,在内核中有的是以模块的形式存在,如filter;有的是以子系统方式存在的,如nat,但它们都具有“表”的性质。因此,内核在处理它们时有很大一部操作都是相同的,例如表的初始化数据、表的注册、钩子函数的注册等等。关于NAT表的

2015-02-26 19:31:22 978

c++内存结构 例程分析

对c++的内存结构做了很通俗的的例子分析 如果你想更深入的了解c++的工作方式 那这是一份很有用的帮助文档

2011-07-08

跟我一起学Makefile

Makefile 学习的必备手册 如果你刚刚入手Makefile 那么这本Makefile无疑不是最准确的选择

2011-07-08

android binder机制 以service的注册为例

对android的binder机制做了非常深入的阐明,只要你有耐心挑战 读完必然会有很大的收获

2011-07-08

android 图形系统分析 surfacefilinger

经典的android图形分析文档,对surfacefilinger pmem gralloc 等交互做了非常深入详细的注解 希望对你有帮助

2011-07-08

android linux下用oprofile工具分析性能

对oproflie的使用做了非常详细的说明,很清楚,是学习oprofie工具的必备文档,oprofile是linux/adroid下必备的性能分析工具

2011-07-08

framebuffer驱动架构 全篇介绍

famebuffer 架构 写的很清楚 了解framebuffer的必备资料

2011-07-08

SD 卡工作原理介绍

我们实验室内部资料 一个精通SD卡人的总结 很清楚

2011-07-08

嵌入式系统中Nand-Flash的原理及应用

嵌入式系统中Nand-Flash的原理及应用 里面有关于很多ECC的东西 可以看看的

2010-09-18

空空如也

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

TA关注的人

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