• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

              C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
              117 Posts :: 2 Stories :: 61 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(8)

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜


                    (下面的文字還為整理)

            本來是想在留言里面回simohayha的,結果越寫越多,改成博客算了,也許對別人也有幫助。沒什么中心思想,大家胡亂看看。

            我在讀大學的時候是努力試圖學習過linux源碼的,在機房里打印出厚厚一疊紙,悶在計算機旁邊猛看了好幾天,飯也沒好好吃,那些紙的質量不太好,有股怪味,空著肚子鉆研,到后來聞那股味道,差點嘔吐,于是放棄,出去大吃了一頓。

            這是上世紀末的事情了,那時其實水平還沒到,心里好奇,完全是賴蛤蟆想吃天鵝肉。學習這個事情,還是得循序漸進的。

            要想學深入學習操作系統(tǒng),推薦從這本書開始: Operatiing Systmes, Design and Implementation (by Tanenbaum, Woodhull),里面有個用于教學的操作系統(tǒng)MinixLinux的某些方面,現(xiàn)在還可以找到Minix的影子。

            我手里的這本書,是第二版,現(xiàn)在書最新版是第三版。Minix 3.0,也已經(jīng)有點難度了, X Window System都有了。http://www.minix3.org/

            要是覺得還是太復雜,還有個更簡單的GeekOShttp://geekos.sourceforge.net/

            OS
            的設計是受限于硬件的,尤其是CPU。當代OS的不同進程之間的內存保護,虛擬地址,都要通過硬件。所以對一個CPU的深刻了解,必不可少。對于IntelCPU,應該讀下面三本:

            1. Intel Architecture Software Developer's Manual, Volume 1: Basic Architecture http://www.intel.com/design/PentiumII/manuals/243190.htm

            2. Intel Architecture Software Developer's Manual, Volume 2: Instruction Set Reference Manual http://www.intel.com/design/PentiumII/manuals/243191.htm

            3. Intel Architecture Software Developer’s Manual Volume 3: System Programming http://www.intel.com/design/PentiumII/manuals/243192.htm

            尤其是第三本,OS必看,虛擬內存,內存保護的東西全在里面。

            操作系統(tǒng)里面代碼最多的,實際是IO部分,理論不多,可事關重要。Mindshare出了一系列書,寫的非常深入詳細。http://www.mindshare.com/

            學匯編開始直接學CISC的指令集太費勁了,推薦先從RISC匯編開始,西方大學計算機專業(yè)走的也是這條路。可以看的一本書是Introduction to RISC Assembly Language Programmingby John Waldron。里面用的處理器MIPS,可以下載個SPIM Simulator,在PC上跑。http://www.cs.wisc.edu/~larus/spim.html

            Knuth
            老先生在The Art of Computer Programming一書里的例子,都是匯編,現(xiàn)在用的虛擬機是訪RISC設計的,叫做MMIXKnuth寫了本書,叫做MMIXware, A RISC Computer for the Third Millennium, 呵呵,口氣好大啊。

            講計算機架構的兩本計算機學科經(jīng)典書,是PattersonHennessy合寫的兩本:Computer Organization and Design: The Hardware/Software Interface 3rd edition,以及Computer Architecture, Fourth Edition: A Quantitative Approach

            學匯編要注意一點,每個匯編器,其語法都不一樣。在Windows下面寫匯編,微軟的Macro Assembler不是很合適,里面的Macro太多,都趕上高級語言了。有個開源的Netwide Assembler, http://sourceforge.net/projects/nasm, 倒是挺不錯,推薦使用。

            關于學習操作系統(tǒng)內核,如果不是非抱著Linux的話,BSD是個挺好的選擇。代碼的結構可能還清晰些。我有一臺FreeBSD服務器,基本非常滿意,有兩點不足,MySQL是針對Linux優(yōu)化的,在FreeBSD下性能不夠好,但是根據(jù)Yahoo的人說(YahooFreeBSD,FreeBSD最新版下用MySQL threading library重新編譯性能可以接受了。Java也不盡如意,Sun 現(xiàn)在提供Java 5binaryFreeBSD。但我在FreeBSD如果啟動Tomcat開的內存太大,啟動會失敗。

            想看看FreeBSD的源碼,可以看看這里:http://www.leidinger.net/FreeBSD/src_docs/,里面列的都是內核各個部分的Code Reference Manual。里面那個講kernel的文件有23M,共2205頁,可見鉆研這些是件極為費時費力的事情。

            http://www.chinaunix.net/
            也有很多BSD的資料。

            現(xiàn)在主流操作系統(tǒng),就兩大家了,一邊是微軟的以NT為內核的Win2k/XP/2003/Vista,另一邊是以UNIX為根基的Linux/BSD/Solaris等等.

            Tanenbaum
            說過這么一句話,操作系統(tǒng)是什么呢,就是操作系統(tǒng)定義的API

            學習Windows下的API,容易許多,資料全,另外Jeffrey RichterProgramming Application for MS Windows那本書寫的太好了,Process, Job, Thread, Fiber, Critical Section, Event, Waitable Timer, Semaphore, MutexVirtual Memory, IO,寫的非常詳盡清楚。要是Linux/BSD下面也有這么一本書,該有多好啊。Linux, BSD里面的線程,家家各有不同,把人搞得糊里糊涂。

            如果從研究操作系統(tǒng)是怎么實現(xiàn)的,那么正好反過來,Linxu/BSD/Solaris簡單明了多了.除了代碼公開,他們內部結構沒有Windows那么復雜。Windows的源碼,要是成為微軟的MVP,也是可以看到的。Windows 2000的大部分源碼,還泄露出來了,在網(wǎng)上流傳了一陣子。

            我個人覺得搞應用的去學習編譯器回報可能更大,首先就是對語言了解很深入,寫碼,讀碼容易。如果會了編譯器前臺技術,可以自己寫個分析代碼的程序啊,那么讀別人的碼不久容易很多。現(xiàn)在雖然有現(xiàn)成的源碼分析器,但是想想你有個數(shù)據(jù)庫,一種是只能使用別人寫好的界面,一種是可以用SQL自由查找,哪個好?如果學會了編譯器后臺技術,恭喜你,寫任何一行代碼都知道在計算機里怎么執(zhí)行的,這是一種多么自由自在的境界啊。   

            posted on 2010-02-18 01:42 煙皚 閱讀(11518) 評論(1)  編輯 收藏 引用 所屬分類: 操作系統(tǒng)學習筆記

            Feedback

            # re: 如何學習操作系統(tǒng)?——整理篇,非個人感悟 2016-02-10 21:26 星空不遠
            收藏,先把現(xiàn)代操作系統(tǒng)過一遍,有個基本概念后,再來好好學習一番  回復  更多評論
              

            久久777国产线看观看精品| 伊人精品久久久久7777| 99久久人妻无码精品系列蜜桃| 久久久无码精品亚洲日韩京东传媒| 久久亚洲高清综合| 久久婷婷人人澡人人爽人人爱| 色综合久久中文字幕无码| 精品久久久久久亚洲精品| 精品人妻伦一二三区久久| 国产欧美久久久精品影院| 99久久人妻无码精品系列| 日本亚洲色大成网站WWW久久| 99久久国产综合精品女同图片| 成人久久精品一区二区三区| 久久天天躁狠狠躁夜夜2020老熟妇 | 久久精品成人欧美大片| 中文字幕乱码人妻无码久久| 国产69精品久久久久99| 久久夜色精品国产欧美乱| 久久精品国产99久久丝袜| 国产韩国精品一区二区三区久久| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 国产精品久久久久久久久久免费| 亚洲va中文字幕无码久久不卡| 久久国产免费| 99久久综合狠狠综合久久| 久久免费国产精品一区二区| 99国产精品久久久久久久成人热| 中文字幕精品无码久久久久久3D日动漫| 91久久精品视频| 国产成人精品综合久久久| 成人国内精品久久久久影院VR| a高清免费毛片久久| 久久精品国产亚洲AV电影| 粉嫩小泬无遮挡久久久久久| 熟妇人妻久久中文字幕| 无码精品久久久天天影视| 日韩精品久久无码人妻中文字幕| 亚洲女久久久噜噜噜熟女| 精品久久久久久中文字幕人妻最新| 麻豆亚洲AV永久无码精品久久|