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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

驱动的定义、分类、安全性

發布時間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 驱动的定义、分类、安全性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

以下內容源嵌入式課程的學習,如有侵權,請告知刪除。


1、驅動的概念

狹義上,驅動程序專指操作系統中的用來操控硬件的代碼。


2、linux體系架構

(1)分層思想;

(2)驅動的上層是API(即應用程序調用API,API調用驅動),驅動的下層是硬件(硬件抽象為寄存器);


(3)驅動本身也是分層的。


3、微內核和宏內核

(1)宏內核(又稱為單內核)

  • 將內核從整體上作為一個大過程(整體看做一個程序)實現,并同時運行在一個單獨的地址空間。
  • 所有的內核服務都在一個地址空間運行,相互之間直接調用函數,簡單高效。
  • 緊耦合,動一發而動全身。

(2)微內核

  • 功能被劃分成獨立的過程程序(獨立的模塊),過程間通過IPC(進程間通信)進行通信。
  • 模塊化程度高,一個服務失效不會影響另外一個服務。
  • 典型如windows。但效率低。

(3)linux本質上是宏內核,但是又吸收了微內核的模塊化特性,提現在2個層面。

  • 靜態模塊化:在編譯時實現可裁剪,特征是想要功能裁剪,改變必須重新編譯(需要關機重啟)動態模塊化:
  • zImage可以不重新編譯燒錄,甚至可以不關機重啟就實現模塊的安裝和卸載,比如驅動的安裝。


4、linux設備驅動分類

(1)驅動分類

  • 字符設備驅動、塊設備驅動、網絡設備驅動
  • 分類原則是設備讀寫操作的特征差異;

(2)三類驅動程序詳細對比分析

  • 字符設備,即“字節設備”。軟件操作設備時,以字節為單位進行的。典型的如LCD、串口、LED、蜂鳴器、觸摸屏。
  • 塊設備,相對于字符設備定義的。軟件操作設備時,以塊(多個字節構成的一個單位)為單位的。設備的塊大小是設備本身設計時定義好的,軟件不能去更改,但不同設備的塊大小可以不一樣。常見的塊設備都是存儲類設備,如硬盤、NandFlash、iNand、SD。
  • 網絡設備,網絡設備是專為網卡設計的驅動模型。linux中網絡設備驅動主要目的是為了支持API中socket相關函數的工作。

(3)為什么字符設備驅動最重要?

  • 常見大量設備都屬于字符設備

5、驅動程序的安全性要求

(1)驅動是內核的一部分

  • 驅動已經成為內核中最龐大的組成部分;
  • 內核會直接以函數調用的方式調用驅動代碼;
  • 驅動的動態安裝和卸載都會“更改”內核。

(2)驅動對內核的影響

  • 驅動程序崩潰甚至會導致內核崩潰;
  • 驅動的效率會影響內核的整體效率;
  • 驅動的漏洞會造成內核安全漏洞。

(3)常見驅動安全性問題

  • 未初始化指針;
  • 惡意用戶程序;
  • 緩沖區溢出;
  • 競爭狀態。


學習驅動要點

1、先學好C語言

2、硬件操作方面

3、應用層API
4、

(1)注重實踐,一步一步寫驅動

(2)框架思維,多考慮整體和上下層

(3)先通過簡單設備學linux驅動框架

(4)學會總結、記錄,這會有助于理解


總結

以上是生活随笔為你收集整理的驱动的定义、分类、安全性的全部內容,希望文章能夠幫你解決所遇到的問題。

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