本书是《Solaris内核结构第2版》的配套出版物,欢迎大家阅读这两本书。《Solaris内核结构第1版》出版已近五年,在此期间,我们有机会与很多Solaris用户、软件开发者、系统管理员、数据库管理员、性能分析师,甚至偶尔的内核黑客进行沟通。我们对所有的反馈表示感谢,而且,基于读者的意见,我们对这一版的格式和内容专门做了修改。读下去就会知道两本书有哪些不同。我们期待与Solaris社区继续交流。.
关于这两本书
这两本书讨论的是Sun的Solaris操作系统——特别是SunOS内核。Solaris的其他组成部分,如桌面的窗口系统,不在本书讨论范围内。《Solaris内核结构第1版》涵盖了Solaris 2.5.1、2.6和Solaris 7。现在这两本书重点介绍Solaris 10,包括Solaris 8和Solaris 9的更新信息。
在《Solaris内核结构第1版》中,我们不仅想要描述使Solaris内核运转的内部组成单元,而且还提供实用的指导。该书的第2版也同样如此,并更加强调使用捆绑的(在某些情况下是非捆绑的)工具和实用程序,以用于检查和探测一个运行中的系统。我们能够使用观察工具说明更多的内核内部工作,在很大程度上得力于加入到Solaris 10中的革命性和创新性的技术——DTrace这一动态的内核跟踪框架。DTrace是Solaris 10中的多项新技术之一,在这两本书中有大量应用。
在《Solaris内核结构第2版》写作过程中,我们得到几位朋友和同事的帮助,他们大都从事Solaris内核工作,他们的专业技术和指导为这两本书的质量和内容做出了巨大贡献。我们自己也不断地扩展主题,演示dtrace(1)、mdb(1)、kstat(1)以及其他捆绑工具的使用。因此,我们很早就决定要介绍这些工具,一些章节为读者提供了有关这些工具和实用程序所需要的背景信息。自此,使用工具对性能和系统行为进行分析发展成为一整章。
本书临近结稿时,我们遇到了一个小问题——书的厚度。书太厚了,这给书的出版和印刷带来了一些问题。与出版商讨论后,我们决定将书分为两册。
《Solaris内核结构第2版》。这是对第1版的更新,包含大量新材料。包括所有主要的内核子系统:虚拟内存系统(VM)、进程与线程、内核调度程序与调度类、文件系统与虚拟文件系统(VFS)框架,以及核心内核工具。还包括新的Solaris资源管理工具,关于网络的新的一章。Solaris 8和Solaris 9中的新特性安排在正文中恰当的地方。
《Solaris性能与工具》中描述的用于性能和分析工作的实用程序和工具的例子也会在《Solaris内核结构》中使用。
《Solaris性能与工具》。描述了Solaris 10中捆绑的实用程序和工具:dtrace(1)、mdb(1)、kstat(1)等。有些章节详细描述了如何使用这些工具分析Solaris系统性能和行为。
这两本书可以搭配使用,并可与位于http://www.opensolaris.org的Solaris源代码配合使用。对Solaris 8之前的某个版本感兴趣的读者应该继续使用《Solaris内核结构第1版》作为参考。面向的读者群
我们相信这两本书将为工作在Solaris操作系统上的各类技术人员提供有用的参考。
应用程序开发者能够在这两本书中找到应用编程界面之后的Solaris操作系统如何实现函数的信息。这些信息帮助开发者在开发Solaris应用程序时,理解每个界面的性能、可扩展性和实现细节。系统概览和关于调度、进程间通信、文件系统等对这类读者来说是最有用的章节。
设备驱动和内核模块开发者(负责开发驱动程序、STREAMS模块、可装入系统调用,等等),能够在这里找到Solaris操作系统的总体体系结构和实现理论。这两本书的Solaris内核框架和实用程序部分(特别是锁和同步原语涉及的章)尤其有用。
系统管理员、系统分析师、数据库管理员和企业资源规划(ERP)经理(负责性能调优和负载规划),能够学到主要的Solaris子系统的行为特征。文件系统缓存和内存管理各章提供了大量Solaris在实际环境中行为的信息。Solaris可调参数后面的算法在两本书中进行了深入讨论。
技术支持人员(负责诊断、调试和支持Solaris)将发现大量关于Solaris实现细节的信息。每一章中提供的主要的数据结构和数据流程囱可帮助调试和操作Solaris系统。..
想知道更多关于Solaris内核工作的系统用户,将在每一章的开头找到高层次的概述。
除了技术用户社区之外,在学术界研究操作系统的人员将发现本书内容是很好的参考。Solaris操作系统是一个健壮、功能丰富且大量发行的操作系统,适用于不同的工作负载,从单处理器台式机到具有大量内存和输入/输出配置的庞大多处理器系统。Solaris操作系统为商业数据处理、Web服务、网络服务和科学计算负载提供的健壮性和可扩展性在业界是首屈一指的。研究这一操作系统可以学到很多知识。
OpenSolaris
在2005年6月,Sun公司推出了OpenSolaris,由开放源代码构建的全功能的Solaris操作系统版本。作为OpenSolaris第一步的一部分,Solaris源代码通过一个开放许可供公开使用。这对这两本书有几个明显的好处。我们可以在适当的时候将Solaris源代码直接包含在书中,同样可以指向全部的源代码清单。
通过OpenSolaris(一个世界范围的开发者社区)可以访问Solaris源代码,开发者能够为他们感兴趣的操作系统的任何组成部分做出贡献。源代码的可访问性使我们能够组织这两本书的结构,交叉引用特定的源代码文件(可以具体到源代码树的行号)。
.OpenSolaris代表了技术专家世界的一个意义深远的里程碑;一个世界级、成熟、健壮且功能丰富的操作系统现在向所有希望使用Solaris的人敞开了大门,人们可以探讨它并为它的发展做出贡献。
访问OpenSolaris网站可以学到更多的关于OpenSolaris的知识:
http://www.opensolaris.org
OpenSolaris源代码可以在http://cvs.opensolaris.org/source获得。这两本书中对源代码的引用是相对于上面的开始位置的。书的组织
我们将《Solaris内核结构》分为几个逻辑部分,将内容相关的章节组织在同一部分。我们的目标是提供一种积木式的方法,后面可以基于前面的内容深入。然而,对于熟悉操作系统设计和实现的特定读者而言,各个部分和章节可以根据需要单独使用。
《Solaris内核结构》 《Solaris性能与工具》
第一部分 Solaris内部结构介绍 第一部分 系统观察方法
第1章 介绍 第1章 系统观察工具简介
第二部分 进程模型 第2章 CPU
第2章 Solaris进程模型 第3章 进程
第3章 调度类型和调配器 第4章 磁盘行为与分析
第4章 进程间通信 第5章 文件系统
第5章 进程权限管理 第6章 内存
第三部分 资源管理 第7章 网络
第6章 zone 第8章 性能计数器
第7章 项目、任务和资源控制 第9章 内核监测
第四部分 内存 第二部分 系统观察基础架构
第8章 Solaris内存介绍 第10章 动态跟踪
第9章 虚拟内存 第11章 内核统计
第10章 物理内存 第三部分 调试
第11章 内核内存 第12章 模块调试器
第12章 硬件地址转换 第13章 MDB入门指南
第13章 在Solaris中使用多种页面尺寸 第14章 调试内核
第五部分 文件系统
第14章 文件系统框架
第15章 UFS文件系统
第六部分 平台相关性
第16章 对NUMA和CMT硬件的支持
第17章 锁和同步
第七部分 网络
第18章 Solaris网络协议栈
第八部分 内核服务
第19章 时钟和定时器
第20章 任务队列
第21章 kmdb的实现
更新和相关材料
作为这两本书的补充,我们建立了一个网站,内容包括更新的材料、我们引用的工具和指向相关材料的链接。我们会定期更新网站(http://www.solarisinternals.com),及时反映这两本书和将来在Solaris内核方面的工作信息。网站会增加一个关于这两本书的FAQ论坛,以及关于Solaris内核结构、性能和行为的一般问题。如果在这两本书中发现了错误,我们会把勘误表放到网站上去。
作者的话
时间和精力上的巨大投入再—-—次为作者带来了好的回报。Sun的Solaris内核开发组、Solaris用户社区和第一版读者的支持使我们极其欣慰。我们相信,从为Solaris用户提供有价值的信息的角度说,我们在第2版中会更加成功。在协作过程中,我们确实丰富了我们的知识,而且,我们期待读者的反馈。...