
這本《30天自制操作系統》馬上就要在各大書店和網上商城全面上架了,作為本書的4位譯者之一,我負責翻譯了本書約三分之二的內容。這是我參與翻譯的第一本譯著,我感到很激動也很緊張,因為我知道譯者的水平對於一本譯著質量的重要性,好的翻譯可以成就一部作品,蹩腳的翻譯也可以毀掉一部作品,正如當初第一版引進的《喬布斯傳》中譯本一樣。這本書沒有請我寫譯者序,因此我就自己寫着玩玩,放到網上,談談自己對這本書以及翻譯工作的感想吧。
很多讀者表示,以前看過類似“21天學會C語言”之類的書,感到很坑爹,因此對這類形如“XX天”標題的書往往懷有戒心,認為這多半只是噱頭,覺得很不靠譜。我沒有看過其他以XX天命名的書,不過我也大概能理解這些讀者的感受。在我看來,這本書的標題並不僅僅是一個噱頭。打個比方來說,“30天學會核物理”可能看起來很玄,因為你沒辦法定義“學會”這個概念的邊界。怎樣算學會呢?每個讀者會有各自不同的理解,因此往往有的人對結果表示滿意,而另外一些人則正好相反。如果說“30天自制微型反應堆”又怎么樣呢?雖然你可能還是覺得太難了,但至少這個標題能給你一個具體的目標,30天之后能做出一個反應堆來,不管它多么簡陋,一定具備一個反應堆的關鍵性質。我認為這本書正是屬於后者,不管這個操作系統多簡單,它是一個真正意義上的操作系統——更何況它還真不那么簡單。正如封面上所說的,這個系統雖然很小,但卻能實現圖形界面、多任務等高級功能,這些都是實實在在的,跟着作者的腳步,保證人人都做得出來的。
這本書的定位是零基礎的讀者,作者甚至找了初中生和高中生志願者來試讀這本書,以保證這本書的語言盡可能通俗易懂,可想而知作者把這本書的閱讀門檻設定得有多么低。從技術角度來看,這本書並沒有過多地解釋技術細節,作者認為對某些細節先有一個大概的認識就行,然后通過實踐再加深理解,編寫操作系統這件事的最終目的還是為了有趣、好玩,技術細節講得太多自然就不好玩了。因此,想從這本書系統學習計算機原理、匯編語言、C語言等知識是不現實的,但通過編寫操作系統這個過程,你一定能夠獲得比系統學習這些知識更寶貴的體驗。
這本書的一大特色是“從失敗中學習”,每一次我們為這個操作系統實現一些功能,一開始總是不順利的,里面會有一些漏洞和缺陷,甚至根本不能工作。作者花了很大篇幅來引導讀者去尋找並發現這些漏洞,並從這些錯誤中學習如何想方設法讓系統變得更加完善。我認為這種思路是非常有趣的,也是符合實際開發的過程的,一個東西怎么可能一下子就做得那么完美呢?用作者的意思來說,先體驗了不完美的東西再努力去改進它,才能讓你更有成就感呀!市面上的技術類書籍,大部分都沒有這種“試錯”的過程,我認為這本書所采用的寫作手法是非常難得的,也是我認為值得向大家推薦這本書的主要理由之一。
如果你是一位高手,或者在編寫操作系統方面有所造詣的讀者,你可能會覺得這本書的講解並不是那么系統和有條理。的確,這本書並沒有對每一個技術細節進行詳細地講解,就連匯編語言和C語言的語法也只是避重就輕地介紹,你甚至覺得這個操作系統在很多方面處理都很簡陋(比如文件系統、內存管理、設備驅動等等),根本算不上一個實用的操作系統,甚至連作者自己都說:“這本書無論在哪個方面都只有半瓶醋。不過我們必須注意到,作者在帶領大家從零開始編寫一個操作系統,而並不是用一個現成的Linux內核為基礎來做,后者也許才是現在所謂自制(定制?)操作系統的主流方式,但是這樣真的能讓你了解系統底層的真正機制嗎?我看未必,一個Linux內核已經幫你搞定大部分底層工作了,你根本用不着自己去鑽研了呀。只有從零開始才能真正了解系統底層是如何運作的,而這些知識,對於你以后在其他內核基礎上制作操作系統來說,也一定是非常有幫助的。如果你看了這本書覺得很坑爹,千萬別忘了看一看最后一章中一段叫做“這也能叫自制操作系統?太坑爹了!”的內容,作者早就預料到了大家的吐槽,在終點等着你們呢!(笑)看了這一段,你就明白作者在有限的篇幅中,是如何考慮布局,並如何取舍內容的,真心不容易,給作者鼓鼓掌啦!
可能大家從目錄上面也發現了,這本書涉及到了“日文顯示”的相關知識。在這個部分如何翻譯的問題上,我和出版社討論了很多次,由於操作系統的編寫都是在底層動刀子,可以說是牽一發而動全身,我不想在這里破壞原書的結構,也不想擅自改動原來的代碼,因此,在原汁原味保留原書文字的基礎上,我補充了一些實現中文顯示的相關內容,以體現日文顯示和中文顯示在實現上的異同。好在基本上只要替換字庫和編碼方式,就可以實現中文顯示,甚至比日文實現起來還簡單些(比如不用考慮不同的編碼標准和半角片假名問題)。這部分補充的內容是我自己寫的,但我在這方面也不是專家,不敢過分造次,補充的內容也並不多,如果有錯誤或者疏漏,也歡迎各位高手隨時拍磚。
在這本書最后的編輯過程中,為了確認某些術語的譯法,我還和作者川合秀實先生通過幾封郵件(這說明作者在書里給大家留的那個郵箱地址是保證可用的喲!),川合先生是個很Nice的人,他不是一個像Matz那樣在技術界鼎鼎有名的人,而只能算是一個普通的技術者吧,因此能夠寫出這樣一本好書也是非常難得的。最后也感謝其他3位譯者,以及圖靈公司的各位編輯的共同努力,讓這本書能夠和中國的讀者見面,希望大家都能從中獲益。
周自恆 2012年8月 上海
本文原址鏈接: http://www.ituring.com.cn/article/details/9038