譯者序
《30天自制操作系統》中文版終于和國內讀者見面了。標題一出,有人說“XX天”這種標題真不靠譜,不過,作者取這個標題,并非隨隨便便之舉。打個比方,“30天學會核物理”看起來“假大空”,如果改成“30天自制微型反應堆”呢?雖然可能還是太難了,但至少你知道30天之后一定能做出一個反應堆來(即便簡陋)。這本書正是屬于后者:不管多簡單,它都是一個真正意義上的操作系統,更何況它還真不簡單,40KB便實現了圖形界面、多任務等高級功能。只要跟著作者的腳步,你也能做到。即便只是抄抄代碼,也必定有所收獲。
這本書的定位是零基礎的讀者,作者甚至找了中學生來試讀,語言通俗易懂,輕松幽默。作為譯者,我很喜歡這樣的風格,因為可以把很多好玩的流行詞匯代入進去,不會破壞原書的意境,還能讓大家看起來更有意思。從技術角度來看,這本書并沒有過多地解釋技術細節。作者認為,自制操作系統最終的目的還是為了好玩。因此,想從這本書系統學習計算機原理、匯編語言、C語言等知識是不現實的,但你一定能夠獲得另一種完全不同的體驗。
這本書的一大特色是“從失敗中學習”,每次我們為這個操作系統實現一些功能,一開始總會有一些漏洞和缺陷,甚至根本不能工作。這些漏洞都是刻意安排的。作者花了很大篇幅來引導讀者去尋找并發現這些漏洞,并從中學習如何讓系統變得更加完善。這種思路非常有趣,也符合實際開發過程,先苦后甜乃是成就感和幸福感的源泉。市面上的技術類書籍,很少有這種“試錯”的過程,因為這需要精心的安排,而且占用大量的篇幅。這正是這本書的與眾不同之處,也是我認為值得向大家推薦它的主要理由。
如果你是一位高手,可能會覺得這本書的內容并不是那么系統和有條理,甚至覺得做出來的操作系統在很多方面的處理都很簡陋,算不上一個實用的系統。連作者自己都說:“這本書無論在哪個方面都只有半瓶醋。”不過,作者是在帶領大家從零開始編寫一個系統,而并不是以一個現成的內核(如Linux、FreeBSD)為基礎——后者才是目前自制系統的主流方式。然而,只有從零開始,才能真正了解系統底層是如何運作的,對于在其他內核上構筑系統也大有裨益。另外,千萬別忘了讀一讀最后那個叫做“這也能叫自制操作系統?太坑爹了!”的專欄,作者早就預料到了讀者的各種吐槽,看過之后,你可能就會理解作者的良苦用心了。
這本書講到了“日文顯示”,在翻譯上相當糾結。由于操作系統都是底層代碼,牽一發而動全身,為了不改動原書的結構和代碼,中文版在原汁原味保留原書文字的基礎上,補充了一些中文顯示的相關內容,以體現兩者在實現上的異同。好在基本上只要替換字庫和編碼方式,就可以實現中文顯示,甚至比日文還簡單些。這部分補充內容是我自己寫的,但我自知才疏學淺,不敢班門弄斧,如有錯誤或疏漏,歡迎各位高手隨時拍磚。此外,關于光盤中代碼的注釋,由于量大繁雜,恕無法翻譯成中文(書中代碼注釋已翻譯),非常抱歉。如果發現注釋為亂碼,請用UltraEdit等編輯器以Shift-JIS編碼打開,就可以看到正常的日文了。
最后,在這里衷心感謝其他三位譯者,以及圖靈公司各位編輯的共同努力,使得這本書能夠最終問世,希望所有對編寫操作系統有興趣的讀者都能從中獲益。
周自恒
2012年9月于上海
- Linux設備驅動開發詳解(第2版)
- Hands-On DevOps with Vagrant
- SOA實踐者說
- RESS Essentials
- Java EE 8 Design Patterns and Best Practices
- 網絡操作系統管理與應用(第三版)
- Hands-On UX Design for Developers
- Drupal 7 Cookbook
- Hadoop Real-World Solutions Cookbook
- Java EE 7 Developer Handbook
- Learn Quantum Computing with Python and IBM Quantum Experience
- 15分鐘!畫出我的漫畫角色:賣萌篇
- Linux指令從初學到精通
- 電腦辦公(Windows 7 + Office 2013)入門與提高
- Unity AR/VR開發:實戰高手訓練營