OpenSolaris系统管理
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第1章OpenSolaris概述

1.1 OpenSolaris简介

1.1.1 什么是OpenSolaris

OpenSolaris有多种含义,具体取决于使用它的上下文。例如OpenSolaris可以理解为一个操作系统代码库,最初基于Sun的专有Solaris操作系统,一个开源开发项目。OpenSolaris软件的免费二进制分发版,可用于按照通用开发和发布许可(Common Development and Distribution License,CDDL)条款重新分发。

1.1.2 OpenSolaris早期历史

OpenSolaris的计划是从2004年初开始的。一个受过多种训练的团队从各种角度来考虑此计划:授权方式、商业模型、管理方式、协同开发程序、源码分析、管理、工具、市场行销、网站应用设计,以及社群发展等。到了2004年9月,由18位非Sun公司的社群成员共同制订了先期发展计划,之后参与人数逐渐增加,经过9个月的试行,外部共同参与者已达145名。接着,Solaris原始程序代码的开放程序逐渐加快,第一个开放的部分是Solaris的动态追踪工具套件(Dynamic Tracing Toolkit,DTrace),这个追踪工具可以协助程序员对系统进行以性能或资源利用率为取向的最佳化调整。DTrace已于2005年1月开放,同时Sun也完成了OpenSolaris.org网站的第一阶段建置,并宣布OpenSolaris的源码将依据CDDL(Common Development and Distribution License通用开发及销售许可)授权方式来开放,同时打算成立社群指导委员会(Community Advisory Board,CAB)。2005年6月14日有大量的Solaris操作系统的源码被公开。不过,仍有部分源码不公开,而只提供二进制的执行程序代码。到了2005年4月4日,Sun宣布的五名CAB的成员中,有两名从先期计划的社群中推选而来,另有两名由Sun公司指派,另一名则由Sun公司自广大开放源码社群中选定。

1.1.3 OpenSolaris授权方式CDDL

Sun已将Solaris的多数源码以CDDL授权方式来开放,CDDL授权是以Mozilla公共许可授权(MPL,Mozilla Public License)1.1版为基础所研拟成的新授权许可方式,所以CDDL与MPL相同,两者都与普及的通用公共许可授权(GNU General Public License,GPL)不相容。不过CDDL确实属于“开放源码且可自由授权”的一类。

开放源码组织日前将授权条款分为七大类http://www.opensource.org/licenses/category,第一类是被广泛应用或者是有坚强社群支持的授权条款(英文原文称:License that are popular and widely used or with strong communities),包括GPL、BSD、MIT、MPL等9份条款被归在这一类,其中由Sun草拟,于2005初被开放源码组织通过认可的CDDLv.1也在第一类之列。这份授权条款目前使用的普及率虽然不高,但是其具有内容完整、用词浅显易懂、可重复被不同项目使用等特性,是一份在内容与文字表达上均相当成熟的授权条款。之后将提案送交给开放源码促进会(Open Source Initiative,OSI)审核获得核准的一种新开放源码授权。CDDL开源协议,是MPL的扩展协议,它允许公共版权使用,无专利费,并提供专利保护,可集成于商业软件中,允许自行发布许可。

由于都是商业公司所起草的,因此CDDL与MPL、EPL、CPL类似,法律逻辑架构均相当完整。目前使用CDDL的开发项目以Sun的产品为主,包括OpenSolaris、NetBeans、GlassFish等,因为Sun在背后有力地支持这些社群,所以CDDL在自由/开放源码领域仍占有不可忽视的地位。

CDDL还有些不同于MPL的规定,使得CDDL更具有弹性,也更能表现自由/开放源码的精神。这些弹性与自由/开放源码精神的表现,可以从管辖法院与准据法、版本选择规定及较大授权客体范围等规定窥之。不少自由/开放源码授权条款有特定管辖法院与准据法的规定,也就是当发生法律纠纷的时候,必须要适用条款所指定的管辖法院与特定区域的法律,来作为解决纠纷的依据。通常有这样规定的条款都是为了符合草拟者的特定需求,例如QPL条款的草拟者为挪威Trolltech公司,所以QPL规定管辖法院为挪威奥斯陆法院,准据法的依据是挪威法律;MPL的草拟者为美国Netscape公司,MPL规定管辖法院为加州北区联邦地方法院,准据法是加州法。这种特定管辖法院与准据法的内容,常出现在草拟者为商业公司的条款中,不过Sun草拟的CDDL却并未特定管辖法院与准据法,而是交由软件权利人来自行决定,只要在条款之后加上一份声明,说明该软件的管辖法院与准据法即可。当然,权利人也可以决定不适用特定的管辖法院与准据法。这样的规定提高了CDDL的重复使用性,不同地域的开发项目都可以为自己的软件选用CDDL来授权,在有需要的情况下,只要附加上管辖法院与准据法的声明即可。在条款版本的选择上,CDDL原则上是采取类似GPL的规定:没有特别声明情况下,一旦有新的CDDL版本发布,使用者可选择新版CDDL来适用,若权利人只想适用特定的CDDL版本来授权,那么必须要加上声明,让使用者知晓这样的条款版本限制。相对于特定与完全不规定的两种极端,CDDL对于授权条款版本的选择,也为软件权利人提供了相当大的自主选择弹性。CDDL,MPL和GPL三种许可协议对比如表1-1所示。

表1-1 CDDL,MPL和GPL三种许可协议对比

总的来说,CDDL协议可以总结为:

· 基于MPL

· 经OSI批准

· 免费使用

· 修改必须与社区分享

· 可重复使用

· 专利授权与保护

· 可选择法律及法律适用地

CDDL全文见http://www.sun.com/cddl/cddl.html,中文翻译版:http://www.opensolaris. org/os/licensing/open_solaris_license_chinese.pdf。

1.1.4 OpenSolaris版本历史

1.OpenSolaris 2008.05

2008年5月5日,一个新的OpenSolaris发行包诞生了(Indiana Project),并且有了一个新的网站www.opensolaris.com。在用户使用体验方面,OpenSolaris 2008.05和Ubuntu非常像,比如软件包管理、桌面应用程序等。OpenSolaris 2008.05以LiveCD的形式发布,系统从光盘启动之后进入一个完整的操作系统。在这个功能齐全的操作系统内,本机上的硬件是否被支持也一目了然。在这个操作系统上运行安装程序,即可一边使用计算机一边将其安装到硬盘上。这并不是一个新的安装方式,Linux的很多版本早就这样做了,但是对于Sun来说,仍然是一个不小的进步。

ZFS作为其默认的文件系统。结合ZFS的克隆和快照功能,可以方便安全地升级操作系统。NWAM自动配置无线或有线网络。Device Driver Utility自动上网搜索驱动程序,还可以发送硬件兼容性信息到网络上。

2.OpenSolaris 2008.11

2008年12月1日OpenSolaris 2008.11最终正式发布。OpenSolaris 2008.11版本改进了pkg命令崩溃或者包管理器(Package Manager)假死功能,在新的版本中这两个功能都得到了显著的增强。在此基础上2008.11增加了更新通知功能,使得用户可以及时地通过网络下载安装最新版本的软件。

软件资料库pkg.opensolaris.org设置了release,contrib,dev三个不同的目录来区分正式发行版本、社区贡献版本和开发中版本的软件,使得社区成员向OpenSolaris项目贡献打包好的软件成为可能。Sun公司也开通了官方的软件资料库pkg.sun.com,其中extra目录提供由于授权问题无法自由地重新发布的软件,support目录则向Sun公司的订阅用户提供支持。不足之处是Sun公司依然没有发布制作IPS服务器镜像的方法,因此全球的OpenSolaris用户都要通过位于美国的IPS服务器下载和安装应用程序(唯一的例外是中国,国内用户可以使用Unix-Center.Net设立的IPS服务器镜像)。

在Gnome 2.24,FireFox 3,ThunderBird 2和OpenOffice.org 3的基础上,OpenSolaris 2008.11提供了一个相对可用的开发者桌面。你可以用SongBird来听MP3,用Tracker进行桌面搜索,用Pigdin和MSN或QQ上的朋友聊天,用Gobby进行远程协作,用Transmission完成BT下载,用Sun Studio、NetBeans或Eclipse来开发应用程序。只需要安装一个叫做webstack的软件包,即使是从来都没有做过Web开发的新手,也可以轻松搞定Apache、MySQL和PHP的安装和配置。更重要的是,利用OpenSolaris所特有的DTrace特性,开发人员可以轻松地定位和消除应用程序中的瓶颈。即使是针对Linux操作系统开发的应用程序,也可以在OpenSolaris上利用DTrace进行性能调优,然后再部署到Linux操作系统上。

OpenSolaris 2008.11版本中最引人注目的特性,毫无疑问是时间滑块Time Slider。简单地讲,通过拖曳文件管理器上一个代表时间的滑块,你可以看到同一目录在不同时间的内容。

3.OpenSolaris 2009.06

2009年6月1日Sun发布OpenSolaris的第三个版本2009.06。除了对Sun4v平台和Sun4u平台的支持,它也首次可用于SPACE平台。除修复了一些Bug外,OpenSolaris 2009.06还新增了很多备受期待的功能,支持包括简体中文和繁体中文在内的46 种语言。OpenSolaris 2009.06为管理人员新增了网络虚拟化和资源管理工具Crossbow和HA集群,提高了IP观测性,为COMSTAR提供了iSCSI端口,增强了与Windows的互操作性,优化了Socket。

对于普通桌面用户,OpenSolaris 2009.06新增了Firefox 3.1 Beta 3,Time Slider中新增了快照管理,用户可以随时创建文件系统的快照、Codeina和Elisa媒体中心、新的时间跟踪面板、图片打包系统,改善了硬件支持,完全支持SPARC、Nehalem架构和笔记本。

OpenSolaris 2009.06新版本改善了网络、存储与虚拟化功能,并强化了性能,提升开发人员生产力,首度整合了提供网络虚拟化及资源管理的Crossbow项目。根据Crossbow项目的描述,Crossbow可透过虚拟化任何服务、协议或虚拟化机器上的堆栈或网卡,提供网络虚拟化及资源控管的模块,每一个虚拟化堆栈可在分享的网卡上使用被赋予的频宽及优先级而不影响性能。该架构能动态管理优先性与频宽资源,而且可隔离虚拟堆栈,缩小阻断式服务攻击所带来的影响。Sun表示,Crossbow的虚拟网络接口可简化在单一机器或整个数据中心上多层应用程序部署的管理,而且可扩充其能力到多核及多处理器系统上,改善用户的网络性能。在存储系统上,OpenSolaris 2009.06改善了ZFS数十项功能,新增对快闪存储的完整支持,并提供对微软CIFS文件系统的原生支持,支持微软Windows对安全、命名与存取权限的语法,允许跨窗口、Linux及Solaris等平台的档案使用与分享,在Solaris核心中嵌入对iSCSI与光纤信道区块协议的支持。

OpenSolaris 2009.06内建的虚拟化技术涵盖Solaris Containers、Logical Domains for Sun CMT systems及Xen超级监督者等。为了更好地服务开发人员,OpenSolaris 2009.06还增添了PHP和MySQL DTrace Probes、CPC DTrace Provider,JavaFX SDK,libc Linux/BSD Compatibility,Git控制系统。通过访问What’s New in OpenSolaris 2009.06页面(http://www.opensolaris.com/learn/features/whats-new/200906/),你可以了解OpenSolaris 2009.06的完整更新情况.

4.OpenSolaris 2010.03

下一个版本定于2010年3月推出。笔者密切注意其新功能,例如,SPARC的交互式安装、安装期间能够直接通过系统信息库安装软件包、脱机IPS支持、新版本的GNOME桌面、ZFS重复数据删除(deduplication)和用户配额、云集成,以及大量其他功能。可以通过添加dev/单击此链接可以使用软件包管理器自动添加dev/系统信息库来进行有效的开发。

表1-2列出了OpenSolaris版本历史和技术支持时间。

表1-2 OpenSolaris版本历史和技术支持时间

说明:技术支持时间分成几个阶段,具体区别包括在线支持、电话支持、缺陷报告等方面,详细情况可以查看Sun公司网页:http://www.sun.com/service/eosl/eosl_opensolaris.html。

目前三个OpenSolaris版本技术支持时间示意图如图1-1所示。

图1-1 三个OpenSolaris版本技术支持时间示意图

1.1.5 OpenSolaris能够做什么

OpenSolaris还包含GNOME桌面、GNU工具和基于网络的软件管理系统。此外,OpenSolaris还包含如下先进技术。

1.ZFS文件系统

使用时间滑块(Time Slider)可轻松地浏览和恢复ZFS备份快照中的文件,而无须系统管理员的协助。ZFS是OpenSolaris发行版中的默认文件系统类型。利用ZFS可实现前所未有的可伸缩性、可靠性和管理简单性。

2.动态跟踪(Dynamic Tracing,DTrace)框架

使用DTrace加速应用程序开发并调试系统。DTrace是一种跟踪基础结构,可用于深入观察系统性能。通过使用操作系统中的内置测量点,DTrace可以显示有关操作系统或在OpenSolaris发行版中运行的用户程序的详细性能特征。

3.用于在受保护环境中运行应用程序的容器和区域

使用容器和区域来组织和隔离工作负荷。

4.高级网络虚拟化功能

使用完善的网络虚拟化功能最大限度地实现资源控制、网络性能和利用、实用程序计算及服务器整合。通过联网的软件包系统信息库即可轻松地升级OpenSolaris。

5.SMF管理系统服务

通过服务管理工具(Service Management Facility,SMF)来管理系统服务。SMF是类似于Windows的服务管理功能,支持对服务相关性、服务启动顺序和服务故障进行管理。

从实用角度看,以上提供这些功能的目的是简化、改进并流线化应用程序开发和系统管理。通过简单的安装便能提供所有这些功能。还可以通过Live CD了解OpenSolaris,而无须实际将其安装在系统上。或者,可以在虚拟机(例如VirtualBox和VMware Workstation)中运行OpenSolaris。

1.1.6 Solaris 10和OpenSolaris的比较

Solaris 10和OpenSolaris的比较如表1-3所示。

表1-3 Solaris 10和OpenSolaris的比较

1.1.7 其他社区发行版本

1.MilaX

MilaX是一份小型的自启动运行光盘发行版本,它完全从光盘或USB存储设备运行,基于OpenSolaris Nevada并包含了它的基本组件。它最初是作为一个实验开始的,以测试到底有多少OpenSolaris软件可以装载到一份迷你光盘上,但它最终成为一份羽翼丰满的OpenSolaris发行版本。MilaX也可用做灾难恢复光盘,可以安装到小容量的存储媒介上,包括可启动业务卡、USB闪盘、记忆卡、Zip驱动器。MilaX可自由使用、修改、发布。官方主页:http://www.milax.org/

2.Belenix

BeleniX是一份UNIX发行版本,它是一张基于OpenSolaris源代码构建的自启动运行光盘,包含了OpenSolaris所有的特性,还增加了多种开源软件包,并且能够安装到硬盘上,BeleniX由位于印度“硅都”Bangalore的Sun Microsystems印度工程中心开发。官方主页:http://www.belenix.org/

3.SchilliX是什么

SchilliX是基于OpenSolaris的发行版本,它可以从光盘运行,也可以被安装到硬盘或USB笔式存储器上。官方主页:http://schillix.berlios.de/

4.Nexenta

Nexenta OS是一份免费和开放源码的操作系统,它将OpenSolaris内核与GNU应用软件系统相结合。Nexenta OS运行在Intel/AMD的32位或64位架构上,并以单张可安装光盘的形式发布。可以通过高级软件包管理工具从Nexenta OS软件仓库安装更新及未包含在光盘上的二进制软件包。此外,基于源码的软件组件可以从Debian/GNU Linux和Ubuntu Linux的网络仓库下载。这是采用Solaris核心,并与Ubuntu的便利性相结合的一个轻量级操作系统。官方主页:http://www.nexenta.org/