网络设备驱动介绍
以下內容源于朱有鵬《物聯網大講堂》課程的學習,如有侵權,請告知刪除。
一、網絡設備驅動概述
1、什么是網絡設備
(1)網絡設備:物理網卡在linux中形成的體系軟件表現。
(2)物理網卡: 真正的硬件網卡設備。
2、網絡設備接口
(1)網絡設備的訪問方法
- /dev下沒有設備文件,也不通過/sys下的屬性文件訪問。
- 直觀上,應用層都是通過一些特殊的命令(如ifconfig、ping等)來訪問網卡硬件(調用驅動)的。
- 本質上,應用調用驅動的方法可以通過分析ping、ifconfig等命令的實現得知,實際就是通過socket、bind、listen、connect、send、recv等API來實現。
(2)網絡設備被抽象成一個能夠發送和接收數據包的“網絡接口”
- 軟件虛擬出來的網卡。
(3)struct net_device,來管理所有網絡接口
- 填充結構體,然后注冊
3、學習方法
(1)注意網絡設備的訪問方法和前兩種不同;
(2)2個數據結構(net_device(網絡設備的抽象結構體)和sk_buff(數據包的抽象));
(3)一個虛擬網卡案例代碼分析 + DM9000驅動源碼分析。
二、虛擬網卡驅動分析
(此網卡不能實際用,是虛擬的,不能ping通。,主要目的是對網絡設備驅動的框架進行理解和分析)代碼
虛擬網卡安裝、卸載、打開、關閉、設置IP地址等實踐。
1、
2、
3、
4、
三、DM9000驅動源碼分析
見博文http://blog.csdn.net/oqqhutu12345678/article/details/78513482
四、網絡設備驅動框架
總結
- 上一篇: c语言函数定义的语法格式,C语言函数-C
- 下一篇: ELF文件解析器