9 jackyding26791

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 15w+

linux网卡驱动分析之probe函数

probe函数中一般完成一下任务:1、通知内核设备执行DMA的寻址能力,说明设备支持64位还是32位的DMA地址。如果不支持64位的地址,则尝试32位的:err = dma_set_mask(pci_dev_to_dev(pdev), DMA_BIT_MASK(64)); if (!err) { err = dma_set_coherent_mask(pci_dev_to

2013-03-16 10:11:54

linux网卡驱动分析之驱动加载

本文以Intel e1000e网卡驱动为例,分析网卡驱动的基本流程,内核版本为2.6.18。一、驱动注册网卡是一种PCI设备,为了正确的注册到内核,所有的PCI设备驱动都必须创建一个主要的结构体struct pci_driver:struct pci_driver { struct list_head node; char *name; const struc

2013-03-09 13:17:03

linux内核之软中断和tasklet

一、引言         当CPU收到一个中断时,会调用驱动程序中注册的中断处理程序,中断处理程序一般要先关闭中断,因为中断处理程序一般是不可重入的,此时CPU不会收到其他中断,无论是同类的中断还是其他类型中断,CPU也不能执行其他进程,意味着此时的CPU被中断处理程序独占了。        一般的中断处理过程如下:        1、硬件设备向CPU产生中断,并通知内核;

2013-02-26 17:37:34

awk提取一串字符中的数字

用awk命令提取一串字符中的数字:[root@jackyhost root]# echo b1c2d3d1e8f9 | awk '{ string=$0 len=length(string) for(i=0; i<=len; i++) { tmp=substr(string,i,1) if(tmp ~ /[1-

2013-02-20 21:18:42

C语言字节对齐

文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。  一、概念       对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。     二、为什么要字节对齐      需要字节对齐的根本原因在于CPU访问数

2012-08-19 10:47:18

linux内核源码中常见宏定义

1. gcc的__attribute__编绎属性要了解Linux Kernel代码的分段信息,需要了解一下gcc的__attribute__的编绎属性,__attribute__主要用于改变所声明或定义的函数或数据的特性,它有很多子项,用于改变作用对象的特性。比如对函数,noline将禁止进行内联扩展、noreturn表示没有返回值、pure表明函数除返回值外,不会通过其它(如全局变量、指针)

2012-04-19 15:40:55

VirtualBox安装Centos,配置网络(主机可以通过SSH连接虚拟机系统,同时虚拟机系统可以访问外网)

环境:主机:Windows 7-64bit主机联网方式:宽带拨号连接虚拟机:Oracle VM VirtualBox 4.1.8虚拟机系统:Centos 6.2       我的目标很简单,既要再Windows 7中能通过SSH连接到Centos,同时在Centos中也能访问外网。折腾了好久,网络上也有很多方法,但是都不可用。      Virtual Box中有几种网

2012-04-07 16:24:44

理解inode

理解inode作者: 阮一峰日期: 2011年12月 4日inode是一个重要概念,是理解Unix/Linux文件系统和硬盘储存的基础。我觉得,理解inode,不仅有助于提高系统操作水平,还有助于体会Unix设计哲学,即如何把底层的复杂性抽象成一个简单概念,从而大大简化用户接口。下面就是我的inode学习笔记,尽量保持简单。=

2012-03-28 11:45:02

linux c函数调用机制

Linux是Unix家族的一员,尽管Linux的历史不长,但与其相关的很多事情都发源于Unix。就Linux所使用的386汇编语言而言,它也是起源于Unix。Unix最初是为PDP-11开发的,曾先后被移植到VAX及68000系列的处理器上,这些处理器上的汇编语言都采用的是AT&T的指令格式。当Unix被移植到i386时,自然也就采用了AT&T的汇编语言格式,而不是Intel的格式(转自http:

2012-03-25 14:10:20

centos系统网口聚合(bonding)的配置

最近在研究网口聚合,系统是centos5.5(内核是2.6.18),先根据配置好聚合口,再用iometer工具通过配置好的聚合口对磁盘进行打流量,看最终的效果如何?      配置网口聚合的时候,我选择了两种模式:balance-rr和active-backup。balance-rr模式采用的是轮转算法(round-robin),即数据包会按顺序从第一个可用的绑定网口(即该聚合口的slave)

2012-02-09 19:01:40

fork两次如何避免僵尸进程

曾经觉得费解,温故知新一下:/*g++ -o New0001 New0001.cpp */#include #include #include #include int main(void){   pid_t pid;    if ((pid = fork())     {        fprintf(stderr,"Fork error!/n");

2012-02-08 16:56:01

firefox同步书签的插件xmarks

今天发现firefox浏览器中一个非常好用的插件Xmarks,可以同步firefox浏览器的浏览历史和书签到Xmarks的服务器,这样我们在其他机器上使用firefox浏览器时,就可以同步浏览历史和标签到当前的机器上了,再也不用担心一些有价值的网页丢失了。当然你得有 firefox和Xmarks的账户,可以登陆http://www.xmarks.com/注册一个账号。    搜索附

2012-02-05 11:36:10

在linux中的likely和unlikely

在linux中判断语句经常会看到likely和unlikely,例如:if(likely(value)){}else{}简单从表面上看if(likely(value)) == if(value),if(unlikely(value)) == if(value)。这两个宏对程序运行结果没有影响,只是用于提高程序效率。其实现和gcc编译器密切相关。具体点说,就是如果你觉

2011-12-26 17:31:53
勋章 我的勋章
    暂无奖章