日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

字符设备、块设备、网络设备详解

發布時間:2023/12/16 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 字符设备、块设备、网络设备详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

字符設備、塊設備、網絡設備


設備模型
設備驅動的代碼量占內核程序的50%

設備模型的意義:
為了降低設備多樣性帶來的Linux驅動開發的復雜度,以及設備熱拔插處理、電源管理等,Linux內核提出了設備模型(也稱作Driver Model)的概念。設備模型將硬件設備歸納、分類,然后抽象出一套標準的數據結構和接口。驅動的開發,就簡化為對內核所規定的數據結構的填充和實現。

因為硬件設備多種多樣,使得設備驅動程序繁多,設備模型將硬件設備分類,抽象出一套標準的數據結構和接口。

一、字符設備
1.特點
一個字節一個字節讀寫的設備,
讀取數據需要按照先后數據(順序讀取)
常見的字符設備有鼠標、鍵盤、串口、控制臺和LED設備
每個字符設備在/dev目錄下對應一個設備文件,linux用戶程序通過設備文件(或稱設備節點)來使用驅動程序操作字符設備。

2.上層應用如何調用底層驅動?
1.應用層的程序open(“/dev/xxx”,mode,flags)打開設備文件,進入內核中,即虛擬文件系統中。
2.VFS層的設備文件有對應的struct inode,其中包含該設備對應的設備號,設備類型,返回的設備的結構體。
3.在驅動層中,根據設備類型和設備號就可以找到對應的設備驅動的結構體,用i_cdev保存。該結構體中有很重要的一個操作函數接口file_operations。
4.在打開設備文件時,會分配一個struct file,將操作函數接口的地址保存在該結構體中。
5.VFS層 向應用層返回一個fd,fd是和struct file相對應,這樣,應用層可以通過fd調用操作函數,即通過驅動層調用硬件設備了。



二、塊設備
1.特點
數據以固定長度進行傳輸,比如512K
從設備的任意位置(可跳)讀取,但實際上,塊設備會讀一定長度的內容,而只返回用戶要求訪問的內容,所以隨機訪問實際上還是讀了全部內容。
塊設備包括硬盤、磁盤、U盤和SD卡等
每個塊設備在/dev目錄下對應一個設備文件,linux用戶程序通過設備文件(或稱設備節點)來使用驅動程序操作塊設備。
塊設備可以容納文件系統,比如磁盤

三、網絡設備
1.特點
面向報文而不是面向流的,因此將網絡接口映射到文件系統的節點比較困難
內核調用一套和數據包相關的函數,而不是read,write。
網絡接口沒有像字符設備和塊設備一樣的設備號,只有唯一的名字,如eth0,eth1
主要通過socket操作,打開通常用命令行,

2.關系
網絡協議接口層:網絡層,IP
網絡設備接口層:將協議和各種網絡驅動連接在一起,這一層提供一組通用函數供底層網絡設備驅動使用。
網絡驅動接口層:數據鏈路層,提供對物理層訪問的設備驅動程序,這可以是各種介質,例如串口鏈路或以太網設備。包括LLC和MAC層
物理層:PHY層

————————————————
版權聲明:本文為CSDN博主「qq_27840681」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_27840681/article/details/77567094

總結

以上是生活随笔為你收集整理的字符设备、块设备、网络设备详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。