讀《自己動手寫作業系統》

來源:互聯網
上載者:User

        用一個月左右的時間讀了《自己動手寫作業系統》,這是一本讓人讀著很過癮,卻也特別累的一本書。

  對作業系統的興趣由來已久,只是一直未能找到入門之徑。作業系統教材是個令人生畏的東西,它可以告訴人有什麼,卻不能告訴人為什麼,從那裡瞭解的作業系統有如盲人摸到的象,得到各個部分,卻不能擁有整體,加之缺乏實踐的支援,理論顯得蒼白空洞。如Linux般的開源作業系統,雖然可以讓人坐擁全部源碼,但一來規模龐大,讓人不知從何入手,二來源碼背後更多的是業務——作業系統和硬體知識,不瞭解業務的人很難憑一己之力破解源碼的奧秘。客觀如此,更重要的還是主觀的不努力。

  《自己動手寫作業系統》則為如我一般挑剔的人開啟了一扇門,從一點一滴的小處著手,一步步構建出一個簡陋的作業系統雛形——Tinix,雖然它還不具備任何實際的價值,甚至算不上一隻五髒俱全的麻雀,但對於想走近作業系統的人來說,這已經足夠了,如果能夠隨著它一路走來,至少可以具備更進一步的基礎,再去遨遊廣闊天地,便不會迷失於龐雜的理論與源碼之中。

  這本書的名字給人的提示是,它是一本以實踐為基礎的書,因此,閱讀之初我便給自己定下了步步緊跟的策略。照著書敲代碼也難免出錯,再者書中有一些遺漏,只有對比光碟片中提供的源碼才能發現其中的細微之處,所以,常常是一段代碼要花相當長的時間進行調試。實踐證明,這種方法需要花費相當的精力,這也是我為什麼會認為讀這本書很累的原因。但是這種做法對於理解書中內容大有裨益。看明白,做一遍,調試,這是幾個截然不同的境界。很多細節的東西,只有經過調試才能發現。即便是自己編寫的代碼,如果沒有經過調試,恐怕也難說真正的理解。

  作者在後記中寫到,這本書最大的價值在於,它讓作業系統的實現這個問題變得具備“可操作性”。正是因為這樣,我才可以追隨它一步步走來。在這點上,我讀到第三章《保護模式》就已經體會頗深了。我曾經讀過很多關於保護模式的內容,不過,由於缺乏實驗,我只是瞭解一些概念,卻不曾深刻體會。在第三章中,通過一個個簡單的小例子,切換至保護模式,設定GDT和LDT,使用分頁,中斷處理等等書本上的概念活靈活現的展現在我的面前,那些艱澀的概念一下子便得再簡單不過了。

  市面上關於源碼剖析的書很多,但是,即便像侯捷先生這樣教育大家編寫的《深入淺出MFC》、《STL源碼剖析》大多數情況下也只是講了怎麼做,而無法說出為什麼,原因很簡單,這些書是站在旁觀者的角度看問題,而很多問題只有開發人員才是真正理解的。所以,這些源碼剖析的書有其價值,但深度上還存在相當的欠缺。這本書的作者恰恰是站在了開發人員的角度來討論問題,所以,我們有機會看到了一個思考的過程,而不僅僅是一個結果。這一點從第六章《進程》中時鐘中斷處理常式的一步步進化便得以管中窺豹。

  不得不提一下的是作者的寫作功力,讀過了許多生澀的技術書籍,這本讀起來很舒服的書倒顯得有些另類。它屬於我心目中期盼的那種“形神兼備”的好書,正是作者相當不錯的表達,才是這本書讓人享受技術的同時又可以體味閱讀的樂趣。當然,其中還是有些技術細節讓人昏昏欲睡。

  讀書,首先要找到適合自己的書,這樣我們才能從中有所收穫,畢竟,技術書籍中很少能夠找到滿足所有層次需要的書。《自己動手寫作業系統》的定位是一本入門書,顯然,它不適合已經過了這個階段的人,如果因此埋怨這本書檔次太低,那就怪不得旁人,因為自己走錯了路。

  如果你和我一樣,對作業系統有興趣卻不得門徑,不妨《自己動手寫作業系統》。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.