
— 新聞中心 —
NEWS CENTRES
全國免費客服電話 18268652722 郵箱:www.jungshuodz@163.com
手機:18268652722
電話:18268652722
地址:寧波市北侖區(qū)大碶廟前山路45號
人氣:
動程序怎么安裝,驅(qū)動程序安裝出現(xiàn)一個錯誤.jpg)
動程序怎么安裝,驅(qū)動程序安裝出現(xiàn)一個錯誤.jpg)
擴展的定義相當準確,但仍然不完整,因為某些驅(qū)動程序根本不與任何硬件設(shè)備關(guān)聯(lián)。假設(shè)我們要實現(xiàn)一個核彈發(fā)射器的驅(qū)動(這里不得不佩服jyy的想象力,程序中定義的密碼也可能是彩蛋2333)。幸運的是,之前有人遇到過類似的問題,安裝了上面的觸摸控制板驅(qū)動程序就消失了。在用戶模式下運行的組件稱為應(yīng)用程序,在內(nèi)核模式下運行的組件稱為軟件驅(qū)動程序。
應(yīng)用程序調(diào)用操作系統(tǒng)實現(xiàn)的函數(shù),操作系統(tǒng)調(diào)用驅(qū)動程序?qū)崿F(xiàn)的函數(shù)。從最基本的意義上講,驅(qū)動程序是一個軟件組件,允許操作系統(tǒng)和設(shè)備相互通信。驅(qū)動程序(由設(shè)計和制造設(shè)備的同一家公司編寫)知道如何與設(shè)備硬件通信以獲取數(shù)據(jù)。當驅(qū)動程序從設(shè)備獲取數(shù)據(jù)時,它會將數(shù)據(jù)返回給操作系統(tǒng),操作系統(tǒng)將數(shù)據(jù)返回給應(yīng)用程序。
在lx_init之前的code_init函數(shù)中,這個結(jié)構(gòu)體會作為參數(shù)傳入。這樣,通過系統(tǒng)調(diào)用讀寫這個設(shè)備時,控制流程就會走到我們注冊的函數(shù)中(可以使用strace命令來驗證)。 lx_read中有一些錯誤檢查以確保驅(qū)動程序安全。更多的函數(shù)會注冊在業(yè)界真實驅(qū)動的file_operations結(jié)構(gòu)體中:
它相當于一個硬件接口。操作系統(tǒng)只有通過這個接口才能控制硬件設(shè)備的工作。某個設(shè)備的驅(qū)動程序如果安裝不正確,將無法正常工作。該段用于標記該驅(qū)動對應(yīng)的模塊在內(nèi)核中的起點和終點。這與最初包含在Linux內(nèi)核中的模塊庫有關(guān)。這個設(shè)備驅(qū)動程序編譯完成后,會生成類似的東西。因此,驅(qū)動程序被比喻為硬件的靈魂、硬件的主人、硬件與系統(tǒng)之間的橋梁等。
我們可以擴展驅(qū)動程序的定義,說驅(qū)動程序是觀察或參與操作系統(tǒng)和設(shè)備之間通信的任何軟件組件。 Linux中的一切都是文件,所以只需要下面的file_operations結(jié)構(gòu)來注冊一個設(shè)備驅(qū)動程序。萬能打印機驅(qū)動-打印機掃描儀驅(qū)動助手,自動識別打印機品牌型號,快速匹配對應(yīng)的打印機掃描儀驅(qū)動。編寫軟件驅(qū)動程序的主要原因是訪問僅在內(nèi)核模式下可用的受保護數(shù)據(jù)。
烤面包機的功能驅(qū)動程序通過向USB 主控制器的功能驅(qū)動程序發(fā)送請求來與烤面包機間接通信。假設(shè)程序想要將1GB 的數(shù)據(jù)復(fù)制到磁盤上。與CPU相比,總線非常慢。如果我們想讓程序循環(huán)地通過總線將數(shù)據(jù)一點點復(fù)制到磁盤上,那么開銷會非常巨大。設(shè)備驅(qū)動程序存在的目的是提取所有I/O設(shè)備共有的功能,使應(yīng)用程序可以使用相同的接口,屏蔽掉復(fù)雜的細節(jié),從而完成對I/O設(shè)備的抽象。
相關(guān)推薦