W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
1.5.?版本編號(hào) | ||
---|---|---|
上一頁? | 第?1?章?第一章 設(shè)備驅(qū)動(dòng)簡介 | ?下一頁 |
在深入編程之前, 我們應(yīng)當(dāng)對(duì) Linux 使用的版本編號(hào)方法和本書涉及的版本做些說明.
首先, 注意的是在 Linux 系統(tǒng)中使用的每一個(gè)軟件包有自己的發(fā)行版本號(hào), 它們之間存在相互依賴性: 你需要一個(gè)包的特別的版本來運(yùn)行另外一個(gè)包的特別版本. Linux 發(fā)布的創(chuàng)建者常常要處理匹配軟件包的繁瑣問題, 這樣用戶從一個(gè)已打包好的發(fā)布中安裝就不需要處理版本號(hào)的問題了. 另外, 那些替換和更新系統(tǒng)軟件的人, 就要自己處理這個(gè)問題了. 幸運(yùn)的是, 幾乎所有的現(xiàn)代發(fā)布支持單個(gè)軟件包的更新, 通過檢查軟件包之間的依賴性; 發(fā)布的軟件包管理器通常不允許更新, 直到滿足了依賴性.
為了運(yùn)行我們?cè)谟懻撨^程中介紹的例子, 你除了 2.6 內(nèi)核要求的之外不需要任何工具的特別版本; 任何近期的 Linux 發(fā)布都可以用來運(yùn)行我們的例子. 我們不詳述特別的要求, 因?yàn)槟銉?nèi)核源碼中的文件 Document/Changes 是這種信息的最好的來源, 如果你遇到任何問題.
至于說內(nèi)核, 偶數(shù)的內(nèi)核版本( 就是說, 2.6.x )是穩(wěn)定的, 用來做通用的發(fā)布. 奇數(shù)版本( 例如 2.7.x ), 相反, 是開發(fā)快照并且是非常短暫的; 它們的最新版本代表了開發(fā)的當(dāng)前狀態(tài), 但是會(huì)在幾天內(nèi)就過時(shí)了.
本書涵蓋內(nèi)核 2.6 版本. 我們的目標(biāo)是為設(shè)備驅(qū)動(dòng)編寫者展示 2.6.10 內(nèi)核的所有可用的特性, 這是我們?cè)诰帉懕緯鴷r(shí)的內(nèi)核版本. 本書的這一版不涉及內(nèi)核的其他版本. 你們有人感興趣的話, 本書第 2 版詳細(xì)涵蓋 2.0 到 2.4 版本. 那個(gè)版本依然在 htt://lwn.net/Kernel/LDD2 在線獲取到.
內(nèi)核程序員應(yīng)當(dāng)明白到 2.6 內(nèi)核的開發(fā)過程的改變. 2.6 系列現(xiàn)在接受之前可能認(rèn)為對(duì)一個(gè)"穩(wěn)定"的內(nèi)核太大的更改. 在其他的方面, 這意味著內(nèi)核內(nèi)部編程接口可能改變, 因此潛在地會(huì)使本書某些部分過時(shí); 基于這個(gè)原因, 伴隨著文本的例子代碼已知可以在 2.6.10 上運(yùn)行, 但是某些模塊沒有在之前的版本上編譯. 想緊跟內(nèi)核編程變化的程序員最好加入郵件列表, 并且利用列在參考書目中的網(wǎng)站. 也有一個(gè)網(wǎng)頁在 http://lwn.net/Articls/2.6-kernel-api 上維護(hù), 它包含自本書出版以來的 API 改變的信息.
本文不特別地談?wù)撈鏀?shù)內(nèi)核版本. 普通用戶不會(huì)有理由運(yùn)行開發(fā)中的內(nèi)核. 試驗(yàn)新特性的開發(fā)者, 但是, 想運(yùn)行最新的開發(fā)版本. 他們常常不停更新到最新的版本, 來收集 bug 的修正和新的特性實(shí)現(xiàn). 但是注意, 試驗(yàn)中的內(nèi)核沒有任何保障[2], 如果你由于一個(gè)非當(dāng)前的奇數(shù)版本內(nèi)核的一個(gè) bug 而引起的問題, 沒人可以幫你. 那些運(yùn)行奇數(shù)版本內(nèi)核的人常常是足夠熟練的深入到代碼中, 不需要一本教科書, 這也是我們?yōu)槭裁床徽務(wù)撻_發(fā)中的內(nèi)核的另一個(gè)原因.
Linux 的另一個(gè)特性是它是平臺(tái)獨(dú)立的操作系統(tǒng), 并非僅僅是" PC 克隆體的一種 Unix 克隆 ", 更多的: 它當(dāng)前支持大約 20 種體系. 本書是盡可能地平臺(tái)獨(dú)立, 所有的代碼例子至少是在 x86 和 x86-64 平臺(tái)上測(cè)試過. 因?yàn)榇a已經(jīng)在 32-bit 和 64-bit 處理器上測(cè)試過, 它應(yīng)當(dāng)能夠在所有其他平臺(tái)上編譯和運(yùn)行. 如同你可能期望地, 依賴特殊硬件的代碼例子不會(huì)在所有支持的平臺(tái)上運(yùn)行, 但是這個(gè)通常在源碼里說明了.
[2] 注意, 對(duì)于偶數(shù)版本的內(nèi)核也不存在保證, 除非你依靠一個(gè)同意提供它自己的擔(dān)保的商業(yè)供應(yīng)商.
上一頁? | 上一級(jí) | ?下一頁 |
---|---|---|
1.4.?安全問題? | 起始頁 | ?1.6.?版權(quán)條款 |
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)系方式:
更多建議: