zoukankan      html  css  js  c++  java
  • 写在《30天自制操作系统》上市之前

       

        这本《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 
  • 相关阅读:
    分页SQL 和Oracle 存储过程
    什么是SilverLight
    opendpi 源码分析(一)
    Multiway arrays
    循环链表
    轮询算法 这是一个印度人写的,学习下。 来自 codeproject
    Friday the Thirteenth
    通过命令行指定监听的IP和端口
    pthread_key_t
    贝叶斯网络 未学习前数据结构
  • 原文地址:https://www.cnblogs.com/turingbooks/p/2640197.html
Copyright © 2011-2022 走看看