24、Linux设备驱动与网络设备全解析

Linux设备驱动与网络设备全解析

1. 网络设备概述

网络设备与传统设备不同,它不通过设备节点访问,也没有主设备号和次设备号。内核会根据字符串和实例编号为网络设备分配名称。例如,网络驱动注册接口的代码如下:

my_netdev = alloc_netdev(0, "net%d", NET_NAME_UNKNOWN, netdev_setup);
ret = register_netdev(my_netdev); 

首次调用会创建名为 net0 的网络设备,第二次调用创建 net1 ,依此类推。常见的网络设备名称还有 lo eth0 wlan0 。不过,设备管理器(如 udev )可能会更改这些名称。

通常,网络接口名称仅在使用 ip ifconfig 等工具配置网络地址和路由时使用。之后,通过打开套接字间接与网络驱动交互,由网络层决定如何将数据路由到正确的接口。

也可以从用户空间直接访问网络设备,方法是创建套接字并使用 include/linux/sockios.h 中列出的 ioctl 命令。以下代码使用 SIOCGIFHWADDR 查询驱动的硬件(MAC)地址:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值