5月18日见到了《Orange'S:一个操作系统的实现》的样书,多少有些激动。想一想前一版本《自己动手写操作系统》是那么畅销,这一本一定不能含糊。整个出版过程我能看到作者于渊为此付出的努力,还在自己排版的过程有深入体会,通过于渊的讲座也让博文视点的员工分享到他在排版过程中的很多心得。
应该有几万个朋友读过《自己动手写操作系统》了,本书的第2版《Orange'S:一个操作系统的实现》出来肯定有非常多的朋友想问,这两本书到底有何区别呢?就此博文视点对本书作者于渊进行了简单的采访。
*提问:《Orange'S:一个操作系统的实现》与《自己动手写操作系统》明显区别在哪些方面?*
于渊:作为《自己动手写操作系统》(以下简称《自》)的第二版,《Orange'S:一个操作系统的实现》(以下简称“新版”)主要有以下变化:
1. 书中示例操作系统的名字改为 Orange'S
2. 书名改为《Orange'S:一个操作系统的实现》
3. 增加了有关 IPC、FS、MM 等内容
4. 将默认开发平台改为 GNU/Linux,同时兼顾 Windows
5. 更改了排版工具,并使用技术手段增加书的可读性,比如代码行号的运用
6. 建立专门网站以服务读者
7. 建立专门讨论区供读者交流
读过《自己动手写操作系统》的读者一定知道,其中默认使用 Windows 作为开发平台,同时使用虚拟机来编译及运行自己的
OS,在新版中这一点发生了变化(如上述第
4条所述),具体的变化原因在书中第二章有详细的叙述。虽然开发平台是第二位的事情,但书中的默认平台却不免影响到叙述细节,所以,如果读者基于自己的原因坚持在Windows
上开发(可能的原因或许有对
Linux不熟悉、需要边开发操作系统边登录某些网上银行等等),则可能对读到的内容进行一点点额外加工。当然,所需的额外加工是少量的,而且在第二章中也有专门的文字介绍如何在两种平台下搭建工作环境。此外,如果读者不介意花钱,还可以同时购买《自己动手写操作系统》和新版,相互参照阅读。
*
提问:《Orange'S:一个操作系统的实现》与《自己动手写操作系统》相比是否有所增加吗?增加了多少内容量呢?*
于渊:新版的内容是有增加的,新增文字约占整本书的三分之一,《Orange'S:一个操作系统的实现》新增代码则是《自己动手写操作系统》中代码的数倍。这些新增的内容,读者只能从新版中获得。目前并未有将新增内容单独成书的打算,所以读者即便仅想阅读第八章以后的内容,也需要购买整本《Orange'S:一个操作系统的实现》。已经购买了《自己动手写操作系统》的读者可能觉得有点浪费,但事实并不如此,因为《自己动手写操作系统》的内容经过了重新排版、修订和编辑(比如代码格式进行了重排,更方便与光盘中的文件对照阅读,以及其中所有的矢量图都用pgf/TikZ
重新绘制等)笔者倾注的心血使得新版的感官已经大为不同,读者一看便知。
*
提问:在《自己动手写操作系统》大卖的时候,您是否想过会有第二版出版呢?*
于渊:坦白讲,我在写作《自》的时候,并没有想过今天会有一个第二版。原因在于,我希望这本书是用来填补空白的,而不是重复去做别人已经做得很好的事情。所谓填补空白,具体说就是让像我一样的操作系统爱好者在读完本书之后,能够有信心去读其他比较流行的开源的操作系统代码,有能力从零开始自己动手写操作系统,而这个任务第一版已经完成了。
*
提问:那么为什么又写作了第二版呢?*
于渊:原因有几个方面。第一,虽然第一版未曾涉及的进程间通信、文件系统等内容在许多书中都有讲解,但阅读的时候还是感觉有语焉不详的通病,作者本人可能很清楚原委,但写得太简略,以至于读者看来未必清晰。第二,我自己想把这个圈画圆。第一版的书虽然完成了它的使命,但毕竟到书的结尾,读者看到的不是一个真正的操作系统,它没有文件系统,没有内存管理,什么也干不了。在第二版中,你将会看到,你已经可以通过交叉编译的方式为我们的实验性OS编写应用程序了,也就是说,它已经具备操作系统的基本功能,虽然仍然极其简陋,但第一个圈,毕竟是已经圆起来了。第三,实践类的操作系统书籍还是太少了,以至于你要想看看别人是怎么做的,除了读以《操作系统:设计与实现》为代表的极少数书籍之外,就是一头扎进源代码中,而结果有时相当令人气馁。我自己也气馁过,所以我在第二版中,仍然试图把话说细一点,把自己的经验拿出来分享。而且我选择我能想到的最精简的设计,以便让读者不至于陷入太多细节而无法看到全貌。我想这是本书可能具有的价值所在──简化的易懂的设计,还有尽量详细的文字。
*
提问:这本书为何不考虑用WORD排版?*
于渊:新版的排版是我用LaTeX自己完成的。在排版中我花了一些工夫,因为我希望读者购买的首先是一本易于阅读且赏心悦目的书,其次才是编写操作系统的方法。另外,书中列出的代码均由我自己编写的程序自动嵌入LaTeX源文件,从而严格保证书和光盘的一致性,读者可以根据文件名和行号方便地找到光盘中代码的准确位置。
*
提问:第二版还有哪些区别呢?Orange'S这个名字很特别,有什么寓意吗?*
于渊:新版中还有一些小的变化。首先是操作系统的名字改变了,原因在于虽然我们的试验性OS从前辈们那里借鉴了很多东西,但其各个部分的设计(比如文件系统和内存管理)往往有其独特之处,所以我将原先的Tinix(本意为TryMinix)改成了新名字Orange'S(这个名字来自于我的妻子),以表示它们的不同。另外,书中的代码风格,有些地方也做了调整。
新版中,原先的叙述风格都尽量地得以贯彻,而在表现形式上,新版用了更多心思,我相信读者能在其中发现这些特点:关注动手细节,探寻代码背后的故事,结果与过程兼顾,内容与形式并重。加上专门为本书建立的网站和讨论区,我相信读者能更容易地阅读,更轻松地学习。
更多详情请登录 http://osfromscratch.org/ 。
《Orange'S:一个操作系统的实现》
出版单位:电子工业出版社 作者:于渊 ISBN:978-7-121-08442-3
本书官方网站:http://osfromscratch.org/
网络购买地址:http://www.china-pub.com/195571