本书是操作系统软件发展史上的一个里程碑,将介绍一种强大而又完全开放的操作系统,并采用独特视角分析了将其内核移植到一个崭新的CPU架构上的内核设计师们的设计思路。本书适用于学习操作系统编程的学生,也能教给经验丰富的内核程序员一两个窍门。本书从技术角度深入地介绍了现代CPU及其指令集和架构,以及Linux内核;并展示了现代微处理器的设计师们如何从效率和可伸缩性的角度来构建微处理器:另外还介绍了在与硬件无关的层次上内核的设计目标,以及介于与硬件无关的部分和IA-64架构之间的特定实现。本书涵盖了内核设计师在把Linux移植到IA-64的过程中所做出的全部决策,这展示了他们如何将硬件和软件整合为一个能正常运转的系统。本书的作者之一跻身于能接替LinusTorvalds领导Linux内核开发的最后候选人之列。两位作者均受聘于HP的研究实验室,HP公司创造了IA-64的直系祖先及其架构,后来与Intel合作开发IA-64架构。两位作者领导了Linux内核向IA-64处理器的移植,因此他们是讲述这一主题的最佳人选。如果想从系统程序员的角度理解IA-64架构,或者想更深刻地理解Linux内核,或是面临着以下任务:改进软件对处理器的利用,把某个操作系统移植到一种新型的处理器上,乃至设计一种新型的CPU,本书都将很适合你。本书为学习操作系统的学生提供了理论联系实际的重要桥梁。这面临着一个严峻的考验:保持架构整洁和可移植的抽象目标面临着必须在实际的CPU上高效且可靠运行的挑战。但最具革命意义的一点是对于所有读者来说,本书实际上是完全可用的。仅仅几年前,本书的内容和相关源代码很可能还属于商业秘密,而拥有这些资料的公司估计它们具有数千万美元的价值。就算只是想看看IA-64内核源代码,就必须先在HP的少数几个部门之中找到一份工作。只是好奇的人或者学生是没有这样的机会的。实际上,在20世纪90年代初,AT&T估计其UNIX系统的知识产权价值为2.5亿美元。资金雄厚的大学有时候会购买允许研究生使用UNIX源代码的授权,但是一旦如此,那些研究员便加入了一份令人反感的非公开协定。时代已经改变了:现在你已被授权使用该操作系统内核的全部源代码,甚至可以随意把它复制给你的朋友!是什么使这一改变成为可能呢?原因就是LinusTorvalds和数百名合作者以源代码的形式公开了Linux内核,而最重要的是有了革命性的GNU通用公共许可(GNU GPL)。GPL的自由软件(FreeSoftware)模型允许对该系统及其源代码的自由使用和分发,允许任何人参加该系统的开发,使独立的开发人员和商业界结成伙伴,但同时限制了合作的任何一方不公平地利用另一方。欢迎你加入其中。要理解GPL对Linux的重要性,必须要考虑20世纪80年代末到90年代初,UNIX所面临的走向衰落的困境。商业人士深信Microsoft NT很快将一统天下。在那个时期,甚至连Apple和NeXT的创立者SteveJobs都让步了,在其Pixar的台式机上安装了Windows系统,而不是他自己的产品。但下面两个因素拯救了UNIX:Microsoft承诺发布企业级NT,但该计划延误了5年多的时间:而GNU/Linux系统复兴了UNIX的革命。GNU和Linux重新点燃了UNIX世界的希望,这完全是因为它们具有开放、共享的特性,并将其统一为一个能在所有厂商的硬件平台上运行的通用操作系统。UNIX曾饱受过度分化的痛苦:为了紧紧抓住客户,每个厂商都对系统进行了修改,而厂商非常渴望挣回数量相当大的研发费用,以至于他们按用户数量对UNIX客户收费,并限制其系统只允许客户授权已付费的用户登录。而遵循GPL的Linux则不易受到强制分化和知识产权保护问题的困扰:GPL的条款要求对软件的改进必须与所有人共享,而且规定拥有软件的任何人都能对其进行修改。一旦能修改软件,你就能去除对系统的任何限制。GPL对于共享和类似于共享的规定趋向于涵盖操作系统和底层硬件。这侵犯了厂商的利润,但完全符合客户的利益。实际效果是厂商开始把操作系统看作支持软件,而不是利润的直接来源。做到这一点是可能的,因为自由软件的协作特性意味着任何个人或公司都不需要过多地负担开发和服务的费用。公司可以与其直接的竞争对手共享这种五分化软件的开发,有些公司已经这样做了。例如,IBM和HP虽然为Linux的市场份额而竞争,但它们都热衷于在许多自由软件项目上进行合作。通过这种方式,这两家公司可以共同完成无法独立靠各自的预算来进行的工作。这就是自由软件革命的合理结果:你现在可以研究和修改那些几年前还是私有的成果,取得这些成果的人也不再保护其技术只限于其雇员使用,而会毫无保留地告诉你他们是如何取得这一成果的。本书从技术上深入地介绍了IA-64架构及其相应版本的Linux内核。因为你可以随心所欲地探索Linux系统,所以本书对你没有丝毫的隐瞒。通过这些课程,你能学会把Linux内核移植到另一种处理器上,向内核添加新的特性,乃至为IA-64编写一个全新的操作系统。你也可以选择只是更加深入地了解应用程序如何获得操作系统提供的服务,以及它们为何采取现有的运行方式。如何使用这些信息完全取决于你的选择。它们不再是实验室里的秘密,相关的知识产权保护问题也已不复存在,操作系统的大门被猛然地推开。革命已经到来:进来探索其中的奥秘吧。——BrucePerenS