W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
在第 3 章, 我們建立了一個(gè)完整的設(shè)備驅(qū)動(dòng), 用戶可用來寫入和讀取. 但是一個(gè)真正的設(shè)備常常提供比同步讀和寫更多的功能. 現(xiàn)在我們已裝備有調(diào)試工具如果發(fā)生錯(cuò)誤, 并且一個(gè)牢固的并發(fā)的理解來幫助避免事情進(jìn)入錯(cuò)誤-- 我們可安全地前進(jìn)并且創(chuàng)建一個(gè)更高級的驅(qū)動(dòng).
本章檢查幾個(gè)你需要理解的概念來編寫全特性的字符設(shè)備驅(qū)動(dòng). 我們從實(shí)現(xiàn) ioctl 系統(tǒng)調(diào)用開始, 它是用作設(shè)備控制的普通接口. 接著我們進(jìn)入各種和用戶空間同步的方法; 在本章結(jié)尾, 你有一個(gè)充分的認(rèn)識(shí)對于如何使進(jìn)程睡眠(并且喚醒它們), 實(shí)現(xiàn)非阻塞的 I/O, 并且通知用戶空間當(dāng)你的設(shè)備可用來讀或?qū)? 我們以查看如何在驅(qū)動(dòng)中實(shí)現(xiàn)幾個(gè)不同的設(shè)備存取策略來結(jié)束.
這里討論的概念通過 scull 驅(qū)動(dòng)的幾個(gè)修改版本來演示. 再一次, 所有的都使用內(nèi)存中的虛擬設(shè)備來實(shí)現(xiàn), 因此你可自己試驗(yàn)這些代碼而不必使用任何特別的硬件. 到此為止, 你可能在想親手使用真正的硬件, 但是那將必須等到第 9 章.
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: