W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
以 Linux 為代表的自由操作系統(tǒng)的很多優(yōu)點之一, 是它們的內(nèi)部是開放給所有人看的. 操作系統(tǒng), 曾經(jīng)是一個隱藏的神秘的地方, 它的代碼只局限于少數(shù)的程序員, 現(xiàn)在已準備好讓任何具備必要技能的人來檢查, 理解以及修改. Linux 已經(jīng)幫助使操作系統(tǒng)民主化. Linux 內(nèi)核保留有大量的復(fù)雜的代碼, 但是, 那些想要成為內(nèi)核 hacker 的人需要一個入口點, 這樣他們可以進入代碼中, 不會被代碼的復(fù)雜性壓倒. 通常, 設(shè)備驅(qū)動提供了這樣的門路.
驅(qū)動程序在 Linux 內(nèi)核里扮演著特殊的角色. 它們是截然不同的"黑盒子", 使硬件的特殊的一部分響應(yīng)定義好的內(nèi)部編程接口. 它們完全隱藏了設(shè)備工作的細節(jié). 用戶的活動通過一套標準化的調(diào)用來進行, 這些調(diào)用與特別的驅(qū)動是獨立的; 設(shè)備驅(qū)動的角色就是將這些調(diào)用映射到作用于實際硬件的和設(shè)備相關(guān)的操作上. 這個編程接口是這樣, 驅(qū)動可以與內(nèi)核的其他部分分開建立, 并在需要的時候在運行時"插入". 這種模塊化使得 Linux 驅(qū)動易寫, 以致于目前有幾百個驅(qū)動可用.
編寫 Linux 設(shè)備驅(qū)動有許多理由讓人感興趣. 可用的新硬件出現(xiàn)的速率(以及陳舊的速率)就確保了驅(qū)動編寫者在可見的將來內(nèi)是忙碌的. 個別人可能需要了解驅(qū)動以便存取一個他們感興趣的特殊設(shè)備. 硬件供應(yīng)商, 通過為他們的產(chǎn)品開發(fā) Linux 驅(qū)動, 可以給他們的潛在市場增加大量的正在擴張的 Linux 用戶基數(shù). 還有 Linux 系統(tǒng)的開放源碼性質(zhì)意味著如果驅(qū)動編寫者愿意, 驅(qū)動源碼能夠快速地散布到幾百萬用戶.
本書指導(dǎo)你如何編寫你自己的驅(qū)動, 以及如何利用內(nèi)核相關(guān)的部分. 我們采用一種設(shè)備-獨立的方法; 編程技術(shù)和接口, 在任何可能的時候, 不會捆綁到任何特定的設(shè)備. 每一個驅(qū)動都是不同的; 作為一個驅(qū)動編寫者, 你需要深入理解你的特定設(shè)備. 但是大部分的原則和基本技術(shù)對所有驅(qū)動都是一樣的. 本書無法教你關(guān)于你的設(shè)備的東西, 但是它給予你所需要的使你的設(shè)備運行起來的背景知識的指導(dǎo).
在你學(xué)習(xí)編寫驅(qū)動時, 你通常會發(fā)現(xiàn)大量有關(guān) Linux 內(nèi)核的東西. 這也許會幫助你理解你的機器是如何工作的, 以及為什么事情不是如你所愿的快, 或者不是如你所要的進行. 我們會逐步介紹新概念, 由非常簡單的驅(qū)動開始并建立它們; 每一個新概念都伴有例子代碼, 這樣的代碼不需要特別的硬件來測試.
本章不會真正進入編寫代碼. 但是, 我們介紹一些 Linux 內(nèi)核的背景概念, 這樣在以后我們動手編程時, 你會感到樂于知道這些.
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: