第 6 章 高級字符驅(qū)動(dòng)操作

2018-02-23 16:24 更新

第?6?章?高級字符驅(qū)動(dòng)操作

在第 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 章.

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)