?? (ldd) ch00-前言(轉載).htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0039)http://211.71.69.201/joyfire/lsdp/2.htm -->
<HTML><HEAD><TITLE>(LDD) Ch00-前言(轉載)</TITLE>
<META http-equiv=Content-Type content="text/html; charset=GB2312">
<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY text=#ffffff>
<TABLE cellSpacing=0 cellPadding=0 width="90%" align=center border=0>
<TBODY>
<TR>
<TD colSpan=3 height=2>
<TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#666666
border=0><TBODY>
<TR>
<TD width="38%" height=4>
<DIV align=center><A
href="http://211.71.69.201/joyfire/index.html"><FONT
color=#ffffff>index.html</FONT></A></DIV></TD>
<TD width="8%" height=4>
<DIV align=center><A
href="http://211.71.69.201/joyfire/jln/index.htm"><FONT
color=#ffffff>筆記</FONT></A></DIV></TD>
<TD width="1%" height=4>
<DIV align=center><FONT color=#ffffff>|</FONT></DIV></TD>
<TD width="8%" height=4>
<DIV align=center><A
href="http://211.71.69.201/joyfire/kernelscr/index.html"><FONT
color=#ffffff>源碼</FONT></A></DIV></TD>
<TD width="1%" height=4>
<DIV align=center><FONT color=#ffffff>|</FONT></DIV></TD>
<TD width="8%" height=4>
<DIV align=center><A
href="http://211.71.69.201/joyfire/document.htm"><FONT
color=#ffffff>文檔</FONT></A></DIV></TD>
<TD width="1%" height=4>
<DIV align=center><FONT color=#ffffff>|</FONT></DIV></TD>
<TD width="8%" height=4>
<DIV align=center><A
href="http://211.71.69.201/joyfire/download.htm"><FONT
color=#ffffff>下載</FONT></A></DIV></TD>
<TD width="1%" height=4>
<DIV align=center><FONT color=#ffffff>|</FONT></DIV></TD>
<TD width="8%" height=4>
<DIV align=center><A
href="http://211.71.69.201/joyfire/links.htm"><FONT
color=#ffffff>鏈接</FONT></A></DIV></TD>
<TD width="1%" height=4>
<DIV align=center><FONT color=#ffffff>|</FONT></DIV></TD>
<TD width="8%" height=4>
<DIV align=center><A
href="http://211.71.69.201/joyfire/about.htm"><FONT
color=#ffffff>關于</FONT></A></DIV></TD>
<TD width="1%" height=4>
<DIV align=center><FONT color=#ffffff>|</FONT></DIV></TD>
<TD width="8%" height=4>
<DIV align=center><A href="mailto:joyfire@sina.com"><FONT
color=#ffffff>聯系</FONT></A></DIV></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE borderColor=#666666 cellPadding=2 width="90%" align=center border=2>
<TBODY>
<TR>
<TD bgColor=#000000>
<P align=center><A
href="http://211.71.69.201/joyfire/lsdp/index.htm"><FONT color=#ffffff
size=2>目錄頁</FONT></A> | <A
href="http://211.71.69.201/joyfire/lsdp/1.htm"><FONT color=#ffffff
size=2>上一頁</FONT></A> | <A
href="http://211.71.69.201/joyfire/lsdp/3.htm"><FONT color=#ffffff
size=2>下一頁</FONT></A></P>
<P align=center><FONT face=黑體 color=#ffffff size=6>(LDD) Ch00-前言(轉載)
</FONT></P><SPAN style="LINE-HEIGHT: 1; LETTER-SPACING: 0pt"><FONT
color=#ffffff size=3>
<P>發信人: Altmayer (alt), 信區: GNULinux<BR>標 題: (LDD) Ch00-前言(轉載)<BR>發信站: 飲水思源 (2001年12月13日08:57:04 星期四), 站內信件<BR> <BR>【 以下文字轉載自 <FONT
color=#00ff00>UNIXpost </FONT>討論區 】<BR>【 原文由<FONT
color=#00ff00> altmayer.bbs@bbs.nju.edu.cn,</FONT> 所發表 】<BR> <BR>【 以下文字轉載自 <FONT
color=#00ff00>altmayer </FONT>的信箱 】<BR> <BR>序<BR> <BR>作為一名電子工程師,而且是一個什么都想自己做的人,我一向愿意用計算機來控制外<BR>部設備。甚至還在我們父輩的Apple-2e時代,我就已經開始尋找別的平臺,希望可以與<BR>我定制的環境相連,并且可以寫我自己的驅動程序軟件。不幸的是,八十年代的個人電<BR>腦并沒有那么強大,不論在軟件層還是硬件層上,個人電腦的內部設計都遠不如Apple-2<BR>e,并且在很長一段時間內,可以獲得的文檔都不能令人滿意。但是,接著發生的事是Lin<BR>ux出現了,我決定試一試,于是買了昂貴的386主板,并且沒有跑任何商業軟件。<BR> <BR>那時侯,我正在大學里使用Unix系統,并為這樣聰明的一個操作系統所震動,特別是又<BR>補充了GNU計劃提供給用戶的更智慧的工具后,我更是為Unix所深深陶醉。在我自己的個<BR>人電腦主板上跑Linux實在是一個有趣的經歷,我甚至可以自己寫設備驅動程序,而且又<BR>可以玩烙鐵了。我不斷告訴別人:“當我長大了,我一定會是個黑客”,Linux是實現這<BR>個夢想的絕佳平臺。這就是說,用不著長大我就可以實現夢想了。<BR></P></FONT><FONT
color=#ffffff size=3>
<P>個夢想的絕佳平臺。這就是說,用不著長大我就可以實現夢想了。<BR> <BR>當Linux成熟起來以后,越來越多的人對寫特制電路的設備驅動程序和商業設備的驅動程<BR>序感興趣了。正如Linus Torvalds告知大家:“我們退回到這樣一個時代——人人都為<BR>自己寫設備驅動程序。”<BR> <BR>當我不能再寫出有創意的編碼以后,我就開始為Linux Journal寫一些技術性文章了,這<BR>也算是為Linux社團的一點貢獻吧。后來,O’Reilly的 Andy Oram有意讓我編寫一本講<BR>設備驅動程序的書,我接受了這個任務。盡管,真正的黑客可以在正式發布的內核代碼<BR>中找到所有必要的信息,但是寫出來的文本對提高編程技巧還是有用的。你拿到的這個<BR>東西是我花幾小時的時間對內核資源耐心grep的結果,我希望最后的結果對得起我的努<BR>力。如果本書能作為那些想成為內核黑客又不知道從何下手的人的一個起點的話,就足<BR>以達成我的愿望了。<BR> <BR>本書讀者<BR>從技術角度來講,本書應該提供唾手可得的途徑去理解內核內幕以及Linus本人在開發時<BR>所做的設計抉擇。盡管本書的主要目的是教如何寫設備驅動程序,但它所包容的內容應<BR>該也對內核的執行給出一個完整的概貌。<BR> <BR>對那些想玩電腦的人和那些涉及Linux機器的內部的專業程序員來講,本書都會是一個很<BR>有趣的資料來源。注意:“Linux機器”這個概念比“跑Linux的PC”這個概念還要廣泛<BR>,因為我們的操作系統支持很多平臺,而且內核編程也不局限于某一種平臺上。<BR> <BR></P></FONT><FONT
color=#ffffff size=3>
<P><BR>Linux的狂熱支持者會發現本書提供了大量的精神食糧。開始可以玩一玩編碼,然后就可<BR>以加入到開發者小組中了,他們可是在孜孜不倦地工作以提供新的功能,提高系統性能<BR>。Linux仍處在不斷完善的過程當中,并且總能為新加入的程序員提供新的空間。<BR> <BR>換句話說,如果你只是想給你自己的設備編一個設備驅動程序,而不想在內核內幕上下<BR>什么工夫,本書的模塊化結構也絕對可以滿足你的要求。如果你不想深入細節,你可以<BR>跳過大多數技術章節,而直接查找設備驅動程序的標準API,它們與系統的其他部分是無<BR>縫連接的。<BR> <BR>本書主要目的是為Linux 2.0寫一個內核模塊。模塊是對象代碼,可以在運行的內核中動<BR>態加載新功能。討論也會涉及到1.2版本的內核。最后一章描述從2.0到2.1.43(在本書<BR>進行技術回顧時的最新版本)的驅動程序接口的變化。<BR> <BR>材料的組織<BR>本書介紹的主題會越來越復雜,它們可以分成兩個部分。第一部分(第1章到第10章)從<BR>內核模塊的正確安裝開始介紹,會涉及到寫字符設備驅動程序需要面對的各方面的問題<BR>。每章會討論一個獨立主題,并且在末尾包含一個“符號表”,在實際開發時,可以用<BR>作參考。當我寫自己的設備驅動程序時,我發現我會回頭去查自己寫的章節,我希望你<BR>也可以充分利用這個符號表。<BR> <BR>貫穿本書第一部分材料的組織方式大致是從面向軟件到面向硬件。這意味著你可以在沒<BR>有附加設備的情況下在你的機器上測試軟件。每章都包含源代碼,并指出可以使用的驅<BR></P></FONT><FONT
color=#ffffff size=3>
<P>有附加設備的情況下在你的機器上測試軟件。每章都包含源代碼,并指出可以使用的驅<BR>動程序的例子,這些例子在所有Linux機器上都可以實現。在第8章和第9章,我會要求你<BR>在并口上連一根金屬線,用來測試一下硬件,但這種要求對所有人來講都是很容易實現<BR>的。<BR> <BR>本書第二部分描述了一些塊設備驅動程序,和網絡接口,以及更進一步的深入討論。很<BR>有可能,這里討論的大部分東西在你寫實際驅動程序中用不到,但我希望第一部分能夠<BR>引起足夠興趣來閱讀第二部分。<BR> <BR>事實上,我羅列的大部分材料都很有意思,而且與實際編寫設備驅動程序時需要的材料<BR>沒有什么關系。在我寫這本書的時候,很多學生就他們的需求問了我一些關于Linux的問<BR>題。他們一定很高興看到這些章節對他們的工作有幫助,即使他們的工作與編寫驅動程<BR>序無關。<BR> <BR>背景信息<BR>要想閱讀本書,應該熟悉C語言編程。也要有點Unix的專業知識,例如我會經常提到Unix<BR>命令和管道。<BR> <BR>在硬件層,不需要預先的專業知識,前提只要求總體概念清晰就可以了。本書不基于什<BR>么特殊的PC硬件設備,而當我用到什么特殊設備的時候,我會提供所有相關信息。<BR> <BR>如果能夠連接到互聯網上,讀者可以享受很多便利,因為從網絡上可以獲得很多新鮮有<BR>趣的文檔和升級軟件。當然,有上網條件并不是必須的,我自己上網條件就很破(主要<BR></P></FONT><FONT
color=#ffffff size=3>
<P>趣的文檔和升級軟件。當然,有上網條件并不是必須的,我自己上網條件就很破(主要<BR>得托Italian電話通訊公司快速網絡速度的福)。<BR> <BR>只要一涉及到軟件,你就需要安裝Linux系統了,這樣就可以運行例子的驅動程序。注意<BR>,任何發布版本都可以使用(并且所有的硬件平臺也都適用)。我在第一章就完整地列<BR>出了所需軟件包的清單,因為如果放到‘序’中,很多讀者會漏掉這些信息。(我希望<BR>能有很多人可以跳過第一章;大多數讀者不都是黑客嗎?)<BR> <BR>深入信息來源<BR>本書中涉及的大多數信息都是直接取材于內核的。只要你的系統上裝了Linux,就幾乎不<BR>需要什么文檔來做補充。在寫設備驅動程序時,幾乎沒有什么富有趣味的書可供參考,<BR>而主要信息來源就是內核的源代碼和你設備的技術文檔。不用再說什么了,你應該很感<BR>激描述你機器平臺的手冊。<BR> <BR>至于了解內核內部機制的工作,最好的信息來自互聯網(僅次于源文件)。Linux<BR>Journal也有一些有趣的技術性文章。查看“內核之角”(kernel Korner)卷,但跳過我<BR>的文章——因為我可能重復自己;沒有內核之角標識的文章實際上也挺有意思,但是一<BR>般技術性沒有本書讀者要求的那樣高。<BR> <BR>在互聯網上,我建議查找下面網址:<BR> <BR>http://www.redhat.com:8080/<BR> <BR></P></FONT><FONT
color=#ffffff size=3>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -