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