自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (5)
  • 收藏
  • 关注

转载 Linux 千兆网卡驱动实现机制浅析(PCI Network Card)

1.引言  本分析主要针对e1000网卡,驱动源码为7.3.20-k2。本文的目的不是为了讲述如何编写驱动程序,主要是分析网卡驱动内部的实现机制。通过此分析,希望可以理解驱动程序中的各个部分的关系,对网卡发送和接收数据包有直观的了解,同时也希望对设计网卡驱动程序有帮助。由于网卡驱动程序与硬件和操作系统都有很紧密的联系,故要把某些问题完全弄清楚,需要很多的经验与相关知识,介于自身的水平有限,且自

2011-11-17 22:03:35 1859

转载 intel e1000 网卡 napi分

intel e1000 网卡 napi分析http://sh-neo.spaces.live.com/blog/cns!1E3CA285E5F9E122!524.entry     Chapte10 L2 frame receptionhttp://lxr.linux

2011-09-07 21:10:06 974

转载 Linux 2.6 内核 per cpu data 分析(转)

在Linux操作系统中,特别是针对SMP或者NUMA架构的多CPU系统的时候,描述每个CPU的私有数据的时候,Linux操作系统提供了per_cpu机制。 per_cpu机制就是让每个CPU都有自己的私有数据段,便于保护与访问。 通过宏DEFINE_PER_C

2011-07-03 12:20:47 1317 1

原创 【转】Hugepage、VLM、SGA和Share memory

<br />一、相关概念<br />Hugepage/Big page:<br />系统进程是通过虚拟地址访问内存,但是CPU必须把它转换程物理内存地址才能真正访问内存。为了提高这个转换效率,CPU会缓存最近的虚拟内存地址和物理内存地址的映射关系,并保存在一个由CPU维护的映射表中。为了尽量提高内存的访问速度,需要在映射表中保存尽量多的映射关系。<br />而在Redhat Linux中,内存都是以页的形式划分的,默认情况下每页是4K,这就意味着如果物理内存很大,则映射表的条目将会非常多,会影响CPU的检索

2011-03-02 21:41:00 741

原创 bit位快速查询asm实现(find_next_zero_bit)

这里重点研究下find_next_zero_bit,这里是从open_fds中找到空隙的fd,翻开这块内部代码

2011-01-09 19:47:00 1838

原创 Linux Fs-path_walk(从路径dir到目标节点entry)

文件系统 - 从路径名到目标节点,path_walk是vfs最基础的功能,从dir_name映射到entry(inode)节点;也是所有其他fs操作的基石,这里重点分析了常见的数据结构和原始代码,主要是path_init,path_walk等

2010-12-19 01:00:00 1744

原创 VIM配置文件记录

vimrc-vim的环境配置文件,包括vim操作的option和setting 刚开始使用vim,前些天读说明文档和查看别人的配置文件,自己拼凑了一个_vimrc,以后一起学习啦,请多多指教! set nocompatible set magic "Display related set ru "标尺信息 set sm set hlsearch syntax on set is "start searching when you are typing set go=m set guioptions+=r s

2010-11-27 02:27:00 899

原创 结合linux内核源码理解SYN_RECV状态

结合linux内核源码理解SYN_RECV状态(以下基于linux内核2.4.0)SYN_RECV状态,顾名思义,是收到SYN包后应该置的状态。关于SYN_RECV状态,受某些教科书的误导,我以前一直理解为服务器收到SYN包后应该置此状态。也没细想到底是置那个socket的状态,最近在看三次握手协议在linux内核中的实现时,才仔细思考这个问题应该是置连接套接字的状态而非监听套接字的状态。通常,SYN包只用于TCP三次握手协议中。常见的tcp三次握手协议过程(当然还有同时连接、半连接等其它一些情况)如下:1

2010-10-14 20:54:00 627 1

原创 NoSQL数据库笔谈【转】

NoSQL数据库笔谈 序思想篇CAP最终一致性变体BASE其他I/O的五分钟法则不要删除数据RAM是硬盘,硬盘是磁带Amdahl定律和Gustafson定律万兆以太网手段篇一致性哈希 亚马逊的现状算法的选择Quorum NRWVector clockVirtual nodegossipGossip (State Transfer Model)Gossip (Operation Transfer Model)Merkle treePaxos背景DHTMap Reduce ExecutionHandling D

2010-09-22 18:52:00 2153

原创 GBK的码表

<br />GBK 汉字内码扩展规范编码表(二)<br /><br />       全国信息技术标准化技术委员会<br /><br />        汉字内码扩展规范(GBK)<br /><br />    Chinese Internal Code Specification<br /><br />            1.0 版<br /><br />         (按分类顺序排列)<br /><br />● GBK/1: GB2312非汉字符号<br /><br />A1 0 1 2 3 4

2010-09-19 17:58:00 33286

原创 udelay实现分析(转)

udelay实现分析(转)linux驱动2010-01-17 13:32:18阅读86评论0  字号:大中小 订阅       内核代码(尤其是驱动程序)除了使用定时器或下半部机制以外还需要其他方法来推迟执行任务。这种推迟通常发生在等待硬件完成某些工作时,而且等待的时间往往非常短。有许多延迟方法(所有的延迟方法都应该在进城上下文中使用):o. 忙等待:仅仅在想要延迟的时间是节拍的整数倍或者精确率要求不高时才可以使用。o. 短延迟:比时钟节拍还短的延迟,并且要求延迟时间很精确。           voi

2010-09-11 13:04:00 1319

原创 Intel RDTSC 指令研究

最近在复习Linux内核进程操作 schedule的时候,看到这个RDTSC指令,从字面上看 是机器从启动开后的运行的指令周期数,查了下英文说明:RDTSC―Read Time-Stamp Counter  Opcode        Instruction              Description  0F 31         RDTSC Read time-stamp    counter into EDX:EAX  DescriptionLoads the current value of t

2010-09-04 19:46:00 1010

原创 libevent源码分析

  libevent实现了网络IO,timer,signal的事件触发机制. 可以很方便的应用于event-driven服务器中,作为其底层事件处理模块. 比较成功的案例有 memcache(分布式缓存), PLB(负载均衡器)等.   最近研究了一下libevent的源码, 版本是1.3b,可以大概分成几个模块:♦ 事件处理框架♦ 事件引擎模块♦ Buffer管理模块♦ 信号

2007-09-30 15:07:00 13066

原创 vmstat备注

vmstat的几个参数标识了Linux系统的运行情况:procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---- r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa 1  1  11756 13

2007-07-23 18:54:00 662

原创 口碑营销的魔力

     最近看到很多说”口碑营销“的话题,想谈谈自己的一些看法,     口碑,是个古老的话题,好的口碑,说明这么几点:1。 产品或者作品被大众所认可;2。 产品本身比较出色,有可以出彩的资本;3。 用户能从产品中得到一种价值的体现,比如,Web2。0的网站中经常有“有多少好友在关注你“,”你的作品被多人评论、收藏...“, 用户从这些统计中看到自己的价值,很有成就感。同时,这种

2007-06-07 00:13:00 634

原创 负载均衡策略

一般来说,负载均衡方法可归纳为两种类型:静态的负载均衡算法,动态负载均衡算法。 静态负载均衡算法包括:轮询,比率,优先权。♦         轮询(Round Robin):顺序循环将请求一次顺序循环地连接每个服务器。当其中的某台服务器发生故障,不参加下一次的轮询,直到其恢复正常。♦         比率(Ratio):给每个服务器分配一个加权值为比例,根椐这个比例,把

2006-12-31 18:02:00 1014

原创 比较好的C++ Libs

http://www.google.com/Top/Computers/Programming/Languages/C++/Class_Libraries/ google directory 搜索得到,比较流行的Open Source的C++ Libraries, Boost : 免费的C++标准库, 有牛人管理,所以有权威; Dib C++ Poco : 

2006-12-14 01:22:00 1025

Game Engine Architecture

Famous Game Engine Theory Book,

2014-05-31

Core Java Volume Andvanced Features

java advanced features, the best java improvement book

2014-05-03

Operating.System.Concepts.6th.Edition

Operating.System.Concepts.6th.Edition, the good expiation for operating system; good for some students or engineer who will learn more about operation system

2014-02-26

linux device driver 经典著作

linux device driver的经典著作 比较详细的介绍linux device driver的设计和实现(base on linux 2.16 kernel version)

2010-11-29

linux kernel 3rd 宝典著作

linux kernel的经典著作 比较详细的介绍linux kernel的设计和实现(base on linux 2.16 kernel version)

2010-11-29

空空如也

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

TA关注的人

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