Linux 基礎知識--設備

      網友投稿 858 2025-04-01

      Linux 操作系統中,各種設備驅動(device driver)通過設備控制器(device controller)來管理各種設備(device),其關系如下圖所示:

      這些設備之中,

      受同一個 device driver 管理的設備都有相同的 major number,這個數字可以看作設備的類別號碼,被內核用于識別一類設備

      受同一個 device driver 管理的同一類設備中的每一個設備都有不同的 minor number,這個數字可以看作設備編號,被設備驅動用來識別每個設備

      這些設備之中,

      受同一個 device driver 管理的設備都有相同的 major number,這個數字可以看作設備的類別號碼,被內核用于識別一類設備

      受同一個 device driver 管理的同一類設備中的每一個設備都有不同的 minor number,這個數字可以看作設備編號,被設備驅動用來識別每個設備

      設備驅動主要有三大類:

      面向包的網絡設備驅動(package oriented network device driver)

      面向塊的存儲設備驅動(block oriented storage device driver),提供緩沖式(buffered)的設備訪問。

      面向字節的字符設備驅動 (byte oriented char device driver),有時也稱為裸設備(raw devices),提供非緩沖的直接的設備訪問(unbuffered direct access),比如串口設備,攝像頭,聲音設備等。實際上,除了網絡設備和存儲設備以外的其它設備都是某種字符設備。

      除此以外,還有一類設備,稱為偽設備(pseudo device),它們是軟件設備。Linux 上的 device 不一定要有硬件設備,比如 /dev/null, /dev/zero 等。

      Linux 基礎知識--設備

      關于字符設備和塊設備的更多區別:

      塊設備只能以塊為單位接受輸入和返回輸出,而字符設備則以字節為單位。大多數設備是字符設備,因為它們不需要緩沖而且不以固定塊大小進行操作。

      塊設備對于I/O 請求有對應的緩沖區,因此它們可以選擇以什么順序進行響應,字符設備無須緩沖且被直接讀寫。對于存儲設備而言調 讀寫的順序作用巨大,因為在讀寫連續的扇區比分離的扇區更快。

      字符設備只能被順序讀寫,而塊設備可以隨機訪問。雖然塊設備可隨機訪問,但是對于磁盤這類機械設備而言,順序地組織塊設備的訪問可以提高性能。

      用戶空間的各種應用是通過 device driver 來操作設備的:

      從這個圖上可以看出:

      網絡設備驅動之上,分別有包調度器(packet scheduler),網絡協議層(network protocols),NetFilter (防火墻)和 scoket 層,其中,網絡設備驅動以 socket 作為應用層的接口

      塊設備驅動之上,分別有 I/O Scheduler,通用塊層(generic block layer)和文件系統,其中,塊設備驅動以設備文件 (device file)作為應用層的接訪問口

      字符設備驅動之上,分別有 Line discipline 和 terminals,其中,terminals 作為和應用的訪問接口

      應用程序通過訪問這些設備文件像操作文件一樣來訪問這些設備,可以使用的接口包括:

      int open(const char *path, int oflag, ... )

      int close(int fd);

      ssize_t write(int fd, const void *buf, size_t nbyte)

      ssize_t read(int fd, void *buf, size_t nbyte)

      int ioctl(int d, int request, ...)

      在 Linux 系統上,設備驅動可以被動態加載和刪除

      lsmod - 列出當前已經被加載的模塊

      insmod - insert/load 指定的模塊文件

      modprobe - insert/load 指定的 module,以及所有依賴

      rmmod - remove/unload 指定的module

      Linux 存儲

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:3D打印在醫療行業的應用及前景分析
      下一篇:excel中日期變成#怎么辦
      相關文章
      亚洲乳大丰满中文字幕| 伊人久久亚洲综合| 亚洲成av人在片观看| 亚洲精品成人区在线观看| 亚洲人成图片网站| tom影院亚洲国产一区二区| 噜噜噜亚洲色成人网站| 亚洲成a人片在线观看日本| 国产亚洲福利精品一区| 亚洲国产午夜中文字幕精品黄网站 | 国产精品亚洲mnbav网站| AV激情亚洲男人的天堂国语| 亚洲AⅤ优女AV综合久久久| 亚洲一本一道一区二区三区| 亚洲愉拍一区二区三区| 久久夜色精品国产亚洲AV动态图 | 国产亚洲精品美女2020久久| 亚洲欧洲日产国码久在线观看| 久久久久无码精品亚洲日韩 | 精品亚洲456在线播放| 99久久婷婷国产综合亚洲| 亚洲人成图片小说网站| 亚洲区小说区图片区QVOD| 亚洲毛片在线观看| 亚洲不卡无码av中文字幕| 亚洲精品美女久久久久99小说| 亚洲Aⅴ无码一区二区二三区软件| 亚洲国产成人久久综合碰| 亚洲精品日韩专区silk| 国产亚洲AV无码AV男人的天堂| 亚洲乱色伦图片区小说| 亚洲一卡2卡4卡5卡6卡残暴在线| 日韩国产欧美亚洲v片| 亚洲精品天堂成人片?V在线播放| 亚洲中文无码a∨在线观看| 亚洲国产综合精品中文第一区| 亚洲欧美熟妇综合久久久久| 青青草原精品国产亚洲av| 亚洲乱码在线观看| 亚洲а∨天堂久久精品9966| 亚洲一区二区三区在线观看网站|