初创互联网团队如何利用开源技术和云服务快速建立网站
2013-08-15 13:25
731 查看
1网络设备驱动程序框架可以分为四层
网络协议接口层
----------------------------------------------------------------------------------------------------------
数据的发送 数据的接收
hard_start_xmit(struct sk_buffer *skb sturt *net_device) | netif_rx(struct sk_buffer *skb sturt *net_device)
----------------------------------------------------------------------------------------------------------
||
||
\/
设备接口层
----------------------------------------------------------------------------------------------------------
struct net_device
该结构体上层提供(网络协议接口层)提供发送和接收的函数,是下层(设备驱动层)各种属性和函数操作的集合。
该层主要分为五个部分
1:全局变量及其该结构体各个操作函数的初始化及其对该结构体赋值
例如,char name[IFNAMESIZE],int (*init)(struct net_device *dev)等,其中init函数是在模块初始化的时候调用,该函数的作用
就是初始化 struct net_device 中的一些函数 比如网络的打开、关闭、 sbk的发送、接收以ioctl、超时函数等
2:硬件的相关信息
例如共享内存的起始/结束地址mem_start/mem_end,io的基地址以及设备使用的中断号等等
3:接口信息
例如设备的接口的硬件类型type,设备的硬件地址dev_addr[MAX_ADDR_LEN]和广播地址brodcast[MAX_ADDR_LEN]等
4:设备的各种操作函数
例如网络的打开open(struct net_device* dev)/close(struct net_device* dev)/hard_start_xmit(...)/netif_rx(...)
5: 辅助成员
例如私有数据 void *priv,最后一次发送和接收数据包的时间
----------------------------------------------------------------------------------------------------------
||
||
\/
设备驱动层
----------------------------------------------------------------------------------------------------------
该层主要是实现net_device结构体中的各个函数,如打开和关闭网络函数、发送和接收数据包的函数,超时函数等等
----------------------------------------------------------------------------------------------------------
||
||
\/
设备与媒介
----------------------------------------------------------------------------------------------------------
该层说是设备与媒介,不怎么好听,我个人理解就是真正的硬件操作,比如操作寄存器,
该层主要是操作寄存器,比如从寄存器上读数据发送数据
本文出自 “菜鸟的驱动之路” 博客,转载请与作者联系!
网络协议接口层
----------------------------------------------------------------------------------------------------------
数据的发送 数据的接收
hard_start_xmit(struct sk_buffer *skb sturt *net_device) | netif_rx(struct sk_buffer *skb sturt *net_device)
----------------------------------------------------------------------------------------------------------
||
||
\/
设备接口层
----------------------------------------------------------------------------------------------------------
struct net_device
该结构体上层提供(网络协议接口层)提供发送和接收的函数,是下层(设备驱动层)各种属性和函数操作的集合。
该层主要分为五个部分
1:全局变量及其该结构体各个操作函数的初始化及其对该结构体赋值
例如,char name[IFNAMESIZE],int (*init)(struct net_device *dev)等,其中init函数是在模块初始化的时候调用,该函数的作用
就是初始化 struct net_device 中的一些函数 比如网络的打开、关闭、 sbk的发送、接收以ioctl、超时函数等
2:硬件的相关信息
例如共享内存的起始/结束地址mem_start/mem_end,io的基地址以及设备使用的中断号等等
3:接口信息
例如设备的接口的硬件类型type,设备的硬件地址dev_addr[MAX_ADDR_LEN]和广播地址brodcast[MAX_ADDR_LEN]等
4:设备的各种操作函数
例如网络的打开open(struct net_device* dev)/close(struct net_device* dev)/hard_start_xmit(...)/netif_rx(...)
5: 辅助成员
例如私有数据 void *priv,最后一次发送和接收数据包的时间
----------------------------------------------------------------------------------------------------------
||
||
\/
设备驱动层
----------------------------------------------------------------------------------------------------------
该层主要是实现net_device结构体中的各个函数,如打开和关闭网络函数、发送和接收数据包的函数,超时函数等等
----------------------------------------------------------------------------------------------------------
||
||
\/
设备与媒介
----------------------------------------------------------------------------------------------------------
该层说是设备与媒介,不怎么好听,我个人理解就是真正的硬件操作,比如操作寄存器,
该层主要是操作寄存器,比如从寄存器上读数据发送数据
本文出自 “菜鸟的驱动之路” 博客,转载请与作者联系!
相关文章推荐
- 如何利用PHP开源系统建立PHP网站
- 技术管理之巅-如何从零打造高质效互联网技术团队?
- 技术团队管理:如何快速杀死程序员
- 技术分享 SVNServe如何建立SVN服务
- 互联网业务测试团队如何快速构建轻量级的自动化
- 经典技术文章转载:如何利用 SSL 调用 Web 服务
- 利用织梦建立的网站迁移换空间该如何操作?
- Web开发者指南:如何建立并运作一个互联网初创项目
- 不多花一分钱利用VMwareworkstation和nat123建立自己的小型远程服务网站
- 如何利用AJAX技术提高网站搜索引擎排名(2)
- 如何利用互联网工具深入调研你仰慕已久的网站
- 如何利用AJAX技术提高网站搜索引擎排名(3)
- 如何利用互联网工具调研网站
- 如何正规的快速建立赚钱的网站
- 如何利用互联网工具深入调研你仰慕已久的网站