原创文章,转载请注明: 转载自pagefault
本文链接地址: intel万兆网卡驱动简要分析
这里分析的驱动代码是给予linux kernel 3.4.4
对应的文件在drivers/net/ethernet/intel 目录下,这个分析不涉及到很细节的地方,主要目的是理解下数据在协议栈和驱动之间是如何交互的。
首先我们知道网卡都是pci设备,因此这里每个网卡驱动其...
分类:
其他好文 时间:
2015-01-10 21:08:28
阅读次数:
1113
本文关注的重点是,避免内核线程的无效唤醒,并且主要是关注消费者线程的设计。
因此,为了省事,这里关与生产者,消费者本身的处理流程可能不够严密。
1. 生产者
一个内核线程,每生产一个商品后,就唤醒消费者,然后自己睡眠1秒钟。
2. 消费者
一个内核线程,每当被唤醒后,就消费商品,然后进入睡眠。
对于消费者线程的这种设计,有几个好处:响应快,平时不占任何cpu。
但这种...
分类:
系统相关 时间:
2015-01-10 11:20:45
阅读次数:
266
/*
* kernel programming test code
*
* Copyright (C) 2014 Sun Mingbao
* Dual licensed under the MIT and/or GPL licenses.
*
*/
#include
#include
#include
#include
#include
#in...
分类:
系统相关 时间:
2015-01-10 10:07:06
阅读次数:
348
Netfilter/Iptables入门Linux的内核是由www.kernel.org这个组织负责开发维护,下面我们要讨论的Netfilter/iptables是www.netfilter.org组织为Linux开发的防火墙软件。由于Linux是非常模块化的,很多功能都是以模块加载扩充系统功能,Netfilter同样采用这种方式存在于Linux中。..
分类:
Web程序 时间:
2015-01-10 06:40:29
阅读次数:
328
概述构建一个内核,一般是先配置,后编译。这里以构建 Nexus5 内核为例,代号为hammerhead。配置通常做法是以厂商预置的配置为基础,根据自己需要进行配置。命令:make ARCH=arm hammerhead_defconfig执行完毕后,"arch/arm/configs/hammerh...
分类:
系统相关 时间:
2015-01-09 20:45:38
阅读次数:
420
错误提示:
[root@localhost kvm_demo]# qemu-system-x86_64 -m 1024 -smp 4-bootorder=cd -hda /home/kx/kvm_demo/xp.img -cdrom /home/kx/kvm_demo/winxp_32.iso
Could not access KVM kernel module: No such file...
分类:
其他好文 时间:
2015-01-09 19:24:50
阅读次数:
224
编译自己功能定制的Fedora7内核第一步:从 http://www.kernel.org/pub/ 下载需要的内核版本我照旧先下载一个和系统版本一样的内核源码下来然后 www.ahlinux.com #cp ~/Downlocd/linux-2.6.21.tar.gz /usr/src#cd /u...
分类:
其他好文 时间:
2015-01-09 12:19:15
阅读次数:
122
一:框架的分层 Android系统架构由5部分组成,分别是:Linux Kernel、Android Runtime、Libraries、Application Framework、Applications Android和.net(winfrom)直接的比较 为了不让朋友们一进来就看得昏头昏脑的,...
分类:
移动开发 时间:
2015-01-08 17:38:20
阅读次数:
522
WinDbg配置和使用基础 WinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具,可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。1. WinDbg介绍:Debugging Tools and Symbols: Getting Startedhttp:...
分类:
数据库 时间:
2015-01-08 15:08:55
阅读次数:
149
固件firmware(CMOS/BIOS)#POST加电自检||自举程序BootLoader(GRUB)#载入内核/boot/grub/grub.conf||载入内核Kernel#驱动硬件||启动进程init(PID恒为1,PID为0的为内核调度器KernelScheduler)||读取执行配置文件/etc/inittab||判断运行级别(initdefault)|读取配置文件(/etc..
分类:
系统相关 时间:
2015-01-08 07:17:53
阅读次数:
294