Linux核心模組程式設計指南(轉)

worldblog發表於2007-08-10
Linux核心模組程式設計指南(轉)[@more@]

  申明:此係列原作者Ori Pomerantz 翻譯:cherami

  簡介

  現在,你想寫核心模組。你瞭解C語言並且已經寫過一些普通的程式,現在你想接觸真正的動作在哪兒,那個單一的瘋狂的可以刪除整個檔案系統的指標及核心轉儲意味著重新啟動在哪兒。

  那麼好吧,歡迎來到這個俱樂部。我曾經有一個瘋狂的指標刪除了DOS (值得慶幸的是,它現在代表 Dead Operating System)下的一個重要的目錄,而且我看不出來為什麼在Linux下會更安全。

  警告: 我是在執行於Pentium的2.0.35 和 2.2.3 版本核心的系統下寫下這些並檢查那些程式的,對於其中的大部分,它們也會工作於其他的CPU和核心版本下,只要核心的版本是2.0.x 或 2.2.x,但我不能保證任何事。一個例外是11章 , 它們只能工作於x86系統下.

  誰應該閱讀本書

  這個文件是為那些想寫核心模組的人而寫的。雖然我會在幾個地方提及在核心中事情是如何完成的,但這不是我的目的。有足夠的好的資料會在那方面做的更好。

  這個文件也是為那些知道如何寫核心模組但還不適應2.2版核心的人寫的.如果你是這類人,我建議你看看附錄 A以瞭解我在更新範例時遇到的所有的差異。那個列表是不全面的但我想它覆蓋了大部分的基本功能並且足夠讓你開始新的工作。

  核心是一大塊程式,並且我相信程式設計師應該至少讀懂一些核心原始碼。說到這,我也相信首先使用系統然後問問題的價值。當我學習一種新的程式語言的時候,我不是從讀庫程式碼開始的,而是透過寫一些小的`hello, world'程式開始的。我看不出來在核心上應該有什麼不同。

  注意風格

  我喜歡在我的文件加入儘可能多的笑話。我寫這是因為我喜歡它,並且我假設你們中的多數也讀這也是基於同樣的原因。如果你僅僅想接觸這些,那麼忽略所有的普通文字而去讀原始碼。我保證我已經將所有的重要的細節放在了註釋裡面。

  修改記錄

  版本 1.0.1中的新東西

  1. 修改節。

  2. 如何查詢最小的裝置號。

  3. 整理字元檔案和裝置檔案之間的差異的說明。

  4. 核心模組的make描述檔案。

  5. 對稱多處理。

  6. “壞主意”。

  版本 1.1.0中的新東西

  1. 支援核心版本2.2, 所有的地方。

  2. 多核心版本原始檔。

  3. 2.0 版和 2.2版之間的變化。

  4. 核心模組中的多檔案。

  5. 不要寫和系統呼叫混合的模組。

  感謝

  我感謝 Yoav Weiss,他給了我很多有益的主意和討論並且在這個文件出版前發現了很多錯誤,當然現有的錯誤完全是我的過錯。這本書的 TEX 構架剽竊於 `Linux Installation and Getting Started Guide'(Linux安裝與入門指南) , TEX 是Matt Welsh的作品. 我感謝Linus Torvalds, Richard Stallman 和所有其他讓我得以在我的計算機上執行如此高質量的作業系統及原始碼而沒有指出的人(是的,那麼我為什麼說呢?)。

  對版本 1.0.1

  我不能列出所有給我發email的人,如果我沒有列出你,我先在此道歉。下面的人對我有很大的幫助:

  來自荷蘭的Frodo Looijaard ,他提供了一個關於主機的有用的建議及關於 2.1.x 版本核心的資訊.

  來自紐西蘭的Stephen Judd 他進行了拼寫校正.

  來自瑞典的Magnus Ahltorp 他更正了我的關於字元裝置和塊裝置之間的差異的錯誤。

  對版本 1.1.0

  來自加拿大魁北克的Emmanuel Papirakis 他編寫了所有的對核心 2.2 的範例。

  來自荷蘭的Frodo Looijaard 他教會了我如何建立核心模組的多檔案.

  當然,任何現存的錯誤都是我的過錯,如果你認為這些錯誤使本書是無用的,歡迎你向我索還你付給我的全額款項。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-940291/,如需轉載,請註明出處,否則將追究法律責任。

相關文章