易截截图软件、单文件、免安装、纯绿色、仅160KB

[转贴]Linux网络驱动程序

Linux驱动程序
--------------------------------------------------------------------------------
工作需要写了我们公司一块网卡的Linux驱动程序。经历一个从无到有的过程,深感技术交流的重要。Linux作为挑战微软垄断的强有力武器,日益受到大家的喜爱。真希望她能在中国迅速成长。把程序文档贴出来,希望和大家探讨Linux技术 和应用,促进Linux在中国的普及。
本文可随意转载,但请不要在盈利性出版物上刊登。
Linux操作系统网络驱动程序编写
一.Linux系统设备驱动程序概述
1.1 Linux设备驱动程序分类
1.2 编写驱动程序的一些基本概念
二.Linux系统网络设备驱动程序
2.1 网络驱动程序的结构
2.2 网络驱动程序的基本方法
2.3 网络驱动程序中用到的数据结构
2.4 常用的系统支持
三.编写Linux网络驱动程序中可能遇到的问题
3.1 中断共享
3.2 硬件发送忙时的处理
3.3 流量控制(flow control)
3.4 调试
四.进一步的阅读
五.杂项
一.Linux系统设备驱动程序概述
1.1 Linux设备驱动程序分类
Linux设备驱动程序在Linux的内核源代码中占有很大的比例,源代码的长度日 益增加,主要是驱动程序的增加。在Linux内核的不断升级过程中,驱动程序的结构还是相对稳定。在2.0.xx到2.2.xx的变动里,驱动程序的编写做了一些改变,但是从2.0.xx的驱动到2.2.xx的移植只需做少量的工作。
Linux系统的设备分为字符设备(char device),块设备(block device)和网络 设备(network device)三种。字符设备是指存取时没有缓存的设备。块设备的读写 都有缓存来支持,并且块设备必须能够随机存取(random access),字符设备则没有 这个要求。典型的字符设备包括鼠标,键盘,串行口等。块设备主要包括硬盘软盘
设备,CD-ROM等。一个文件系统要安装进入操作系统必须在块设备上。
网络设备在Linux里做专门的处理。Linux的网络系统主要是基于BSD unix的socket 机制。在系统和驱动程序之间定义有专门的数据结构(sk_buff)进行数据的传递。系 统里支持对发送数据和接收数据的缓存,提供流量控制机制,提供对多协议的支持。
1.2 编写驱动程序的一些基本概念
无论是什么操作系统的驱动程序,都有一些通用的概念。操作系统提供给驱动程序的支持也大致相同。下面简单介绍一下网络设备驱动程序的一些基本要求。
1.2.1 发送和接收
这是一个网络设备最基本的功能。一块网卡所做的无非就是收发工作。所以驱动程序里要告诉系统你的发送函数在哪里,系统在有数据要发送


相关文档:

linux版本号


这里指内核的版本号的命令机制
Linux内核版本有两种:稳定版和开发版,稳定的内核具有工业级的强度,可以广泛地应用和部署,新的稳定内核相对于较旧的只是修正一些bug或加入一些新的驱动程序,而开发版内核由于要试验各种解决方案,所以变化很快。
Linux内核的命令机制:
num.num.num
其中第一个数字是主版本号,第二 ......

Linux下安装JAVA JDK

1.  从sun主页下载JDK for Linux版本,我的是jdk-6u14-linux-i586.bin。
2. 改为可操作文件,chmod +x  jdk-6u14-linux-i586.bin
3. 安装 在当前路径,./jdk-6u14-linux-i586.bin;一路确定,装好之后在同一目录下会生成一个文件夹,jdk1.6.0_14,里边是一些lib等文件,同windows下生成的安装文件夹一样。
4.设 ......

linux 安装eclipse注意事项

运行环境:fedora12 + jdk1.6
1:启动myeclipse时 JVM terminated. Exit code=127
解决方法一:
java -jar startup.jar
instead of the eclipse executable
解决方法二:
也有可能是fedora自带的firefox运行的java环境与eclipse运行的java环境有冲突,将fedora自带的firefox删除,再从网上下载个用就可以了
注:以 ......

Linux下80端口被占用

解决方案:linux 下将tomcat的server.xml的端口改为80后以tomcat身份无法启动tomcat。
 
在redhat上启动tomcat(将server.xml中的端口改为80)
 
su - tomcat -c "$CATALINA_HOME/bin/startup.sh"
 
后出现:Catalina.start: LifecycleException: null.open: java.net.BindException: Permission deni ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号