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