用户形象图片

“开源”是自二十世纪八十年代早期以来,软件行业中显现的,最具重大意义的,涵盖软件行业的方方面面的长期趋势。
--摘自IDC分组报告  2006年8月

这段摘自IDC报告的话,从宏观的角度描述了开源软件的地位和发展趋势,“开源”必将成为软件乃至硬件行业的永恒的主题。

曾几何时,各个厂商固守着自己的源代码将其高束庋藏,一时间封闭源代码成了保证产品安全、保证技术安全的代名词。在这种潮流之下,一度以开放的观念击败了大型机系统的Unix操作系统的源代码,也被各个厂商以保护商业利益为目的封闭起来。虽然各厂商对Unix系统的发展做出了很大的贡献,但是,这种封闭源代码的发展方式,确让Unix系统失去了良好的生态环境,错过了良好的发展时机,以至于有一段时间“Unix老了”的论调甚嚣尘上。但是从2005年六月开始这种情况发生了根本性的转变,开源精神的主要倡导者--Sun公司,将当时其最新的Solaris发行版本、曾被誉为历史上最完美操作系统之一的Solaris 10的大部分源代码以遵循CDDL(Common Development and Distribution License)协议的方式对外开放,Unix在经过了多年的封闭发展模式后,又重新走上了开源之路,而Sun—一个以技术创新著称的高科技公司,以其无可比拟的胆识和魄力扛起了开源Unix的大旗。

庄子的《逍遥游》中记有“北冥有鱼,其名曰鲲,鲲之大,不知其几千里也;化而为鸟,其名为鹏,鹏之背,不知其几千里也,怒而飞,其翼若垂天之云。” 鲲鹏精于幻化,通灵万物,助天帝澄清玉宇,受敕封为九天鲲鹏。而Opensolaris则正如这九天鲲鹏,有着绚丽的羽毛,有着强大的翅膀,能够通灵万物、精于幻化,因此OpenSolaris也必然有着不可限量的前途。

记得以前我的一个曾经参与Solaris开发的朋友对我说:“Solaris的内核写得很漂亮”,听完这句话后,我除了多几分对Solaris系统本身的喜爱以外,也多了几分对我朋友的羡慕。这种羡慕主要是来自于他能够得到接触Solaris内核代码的机会、来自于他能获得与Solaris如此近距离的接触的机会。而现在,每个人都可以与这只神鸟近距离接触,欣赏它绚丽的羽毛、触摸它强大的翅膀、领略它的神奇的幻化、乃至体验驾驭它的快乐。

那现在我们就一起来一次与Opensolaris近距离接触吧。

绚丽的羽毛—OpenSolaris的桌面

提到桌面这个字眼,大多数人很难想象Solaris这样用于重量级服务器的操作系统,会有多好的桌面,这种观念恰恰是错误的,Opensolaris提供了非常优秀的桌面功能。从系统级对各种显示芯片、设备的支持,到对OpenGL等高级图形功能的支持一应俱全。OpenSolaris自身提供基于Gnome的桌面环境,用户还可以通过安装一些其他的窗口管理器来实现3D桌面的效果。

除了以上这些,OpenSolaris提供的桌面办公环境也是其亮点之一,各种办公软件应有尽有。功能强大的StarOffice套件,可以让你快速的从微软的Office环境中迁移过来,其对微软Office各种文件格式的支持也近乎完美。再加上Firefox浏览器,邮件处理工具等等,构成了一套完善的桌面办公环境。

 
图1:Opensolaris桌面

强大的翅膀—OpenSolaris的先进技术

有人曾提出过这样一个问题,OpenSolaris还是Solaris吗?对于这个问题的回答是肯定的。OpenSolaris的出现,使得Solaris的开发模式发生了很大的转变,这种转变,为Solaris的成长和发展提供了良好的生态环境。而正是这种开放的开发模式加上对Solaris先进技术的良好继承,使得OpenSolaris保持技术上的领先成为必然。越来越多先进的理念、优秀的技术以及具有广阔发展空间的软件项目,以生存进化的方式加入到OpenSolaris中来,最终贡献于Solaris、Unix以及计算机系统技术的发展。

DTrace—完美的动态跟踪框架

DTrace是一个全新的、革命性的系统动态跟踪工具。它的出现,使得随时准确了解系统和应用程序的的行为成为可能。

丰富而强大的系统跟踪工具早就存在于Solaris的系统中,如truss、pmap、pstack等等,但是这些工具的局限在于他们只能深入地观察系统的特定部分,因此很难把某个工具跟踪到的事件与触发该事件的应用程序准确的联系起来,从而使得追踪系统范围内的应用程序的状态和行为变得比较困难。DTrace的出现,使上述这些问题成为了过去,基于其动态跟踪机制,我们可以准确的跟踪从应用程序指令到系统内核底层,所有应用程序的表现和系统的行为。这意味着,有些原来难以实现的跟踪现在可以轻松完成,例如:“显示一个给定的应用程序函数调用所触发的系统内核代码路径。”

使用DTrace可以创建自定义程序,通过这些自定义程序,可以探测和跟踪内核及应用程序的运行状态,所以这些都可以在实际生产环境中安全的完成。DTrace还拥有自己的脚本语言,这种语言可以使我们方便地描述和表达我们所关心的问题,这种语言叫D语言,它提供了大部分C语言的丰富特性,并附加了很多与动态跟踪相关的重要功能。DTrace自身的保证机制,使其可以在真实的生产环境中安全的运行任何的D语言代码,而不会给系统造成任何损害。

图2描述了DTrace的组件和体系结构

 
图2:DTrace组件和体系结构

ZFS—文件系统的终结版

ZFS(Zettabyte File System)也许将成为最后一个文件系统,因为它既包含了对目前文件系统中存在问题的修正,也包含了对于文件系统发展趋势的前瞻性的思考和理解,其中包含了诸多的技术创新,以及对传统文件系统和卷管理概念的颠覆。整个市场和行业对于ZFS的关注也是绝无仅有的,曾经一度因为ZFS开发计划的延迟,导致了Sun公司股票的下跌。这也可以从一个侧面看出人们对它的期望。

ZFS是一种128位的文件系统,除完全符合POSIX文件系统的标准外,还提供了许多高级功能比如:Quota(配额),Reservation(预留), Compression(压缩), Snapshot(快照),Clone(克隆)等等。ZFS中引入了存储池、动态条带化、可变块大小、RAID-Z、基于事务处理、写时拷贝、智能预取、内嵌压缩、内嵌加密等新概念和新机制,从而使文件系统技术有了质的飞跃。使用ZFS意味着你永久性的和fsck、scandisk之类的文件系统整理和修复工具告别;意味着你可以从繁杂、乏味的卷管理一类的工作中脱身出来,把宝贵的时间用于更有价值的工作;意味着你可以获得前所未有的良好性能;意味着你的存储系统可以方便、自由、几乎没有限制的扩展;

神奇的幻化—OpenSolaris的虚拟化技术

虚拟化也是近年来IT技术发展的主要趋势之一,而基于OpenSolaris系统之上的,丰富而完善的虚拟化解决方案,则使这只拥有绚丽的羽毛、强大的翅膀的神鸟具备了神奇的幻化能力,使其拥有了前所未有的强大的力量。

在这里,我觉得有必要对虚拟化技术作一个简要的介绍。图3简要的描述了虚拟化技术的层次和分类以及具有代表性的虚拟化产品:

 
图3:虚拟化技术的层次、分类和具有代表性的产品

从这张图中我们可以看出,虚拟化技术涵盖了从硬件到软件的各个层面。应用虚拟化技术的主要目的就是提高系统资源的利用率、便于管理、实现系统和服务的动态迁移、降低总拥有成本,以及提高系统的可用性、可靠性和可扩展性。而针对操作系统虚拟化这个层面而言,Solaris Zone是一个优秀的解决方案。

Solaris Zone是操作系统中的一种容器,通过Solaris Zone可以实现系统资源的深层次的隔离和保护,使得应用程序各自在独立的环境下运行,每个Solaris Zone拥有自己的文件系统片断、网络接口、设备接口、独立的进程管理以及如节点名、时区等可独立配置的参数。通过Solaris Zone可以实现多种资源管理方式,如封顶模式、绑定模式等等。通过Solaris Zone可以极大地提高应用程序运行的安全性,消除应用之间的相互干扰,实现更为严格和准确的权限管理。在OpenSolaris系统中有两种角色的Zone,Global Zone以及Non-Global Zone,其中Global zone负责进行配置和管理Non-Global zone,而对于Non-Global zone来说,它并不知道别的Zone的存在,只有他自己所拥有的资源是可见的。系统的级各种补丁的安装,需要通过Global zone来进行。由此可见,Global zone拥有更高的系统能特权。任意一个Non-Global Zone 从被创建开始,进入自己的生命周期,在整个生命周期中,Non-Global Zone可以处于四种不同的状态,通过不同的操作,可以实现这四种状态的转换。

图4描述了Zone的生命周期中的各种状态以及转换方式:

 
在Solaris Zone中还提供了对Linux系统环境的支持,这种技术被称为Branded Zone,通过这种技术,Linux环境下的应用可以不经任何修改,甚至不需要进行重新编译就能稳定的运行于Solaris系统之上。除此之外,OpenSolaris还可以运行xVM Server以及VirtualBox两种重要的虚拟机软件。同时,针对xVM的管理,还提供了Sun xVM Ops Center管理软件,借助它可以实现跨硬件平台及跨系统平台的xVM虚拟机的统一管理,从而使基于OpenSolaris的虚拟化解决方案变得丰富而完善,使得强大的OpenSolaris具备了神奇的幻化能力。

驾驭的快乐—OpenSolaris的定制化

我想无论是谁,在对一种操作系统足够了解之后,都会有按照自己想法去裁剪和订制它的冲动,但是对于Unix尤其是对于Solaris这样重量级的Unix系统而言,这种订制和裁剪是非常非常困难的,在Solaris开源之前,这几乎是不可能的。而OpenSolaris的出现,不仅使这样的订制和裁剪成为可能,而且让这个过程变得非常简单。可以这样说,可以自由的订制和裁剪是OpenSolaris的主要设计思想之一。

在OpenSolaris中提供了一套命令行界面的“Distribution Constructor Toolkit”,利用这套工具集,任何人都可以按照自己的想法来订制自己的OpenSolaris发行版本。当前的OpenSolaris发行版本,是一个可以引导的ISO光盘镜像文件,在这个光盘镜像文件中为使用者提供一个Live CD的环境,其中包括全功能的GNOME桌面环境。如果使用者想安装OpenSolaris,那么你只需要双击桌面上的“安装程序”的图标,开始OpenSolaris的安装过程。

当你下载了OpenSolaris的光盘镜像文件之后,你一定会奇怪,为什么这个镜像文件会这么小,难道在这个镜像文件中,并没有提供全部的软件包吗?你的猜测是正确的,但这并不意味着你得到的是一个残缺的操作系统,而恰恰相反,你得到的是一个具备操作系统核心功能,并且可以进行选择性安装的系统框架和一个丰富的软件包仓库。你可以通过系统提供的软件包管理工具“IPS”通过网络来安装软件包仓库中所有的软件包。这种软件包的组织方式,有点类似Debian Linux的软件包的组织方式,而这种软件包组织方式的优势在于,你可以自由选择你所需要安装的软件包而不必让那些你根本用不到的软件包浪费宝贵的存储空间。

通过上面这些文字,OpenSolaris的形象已经清晰的展现在了大家的面前,但是我想大家的脑海中也会浮现出许多问题,其中最大的一个问题应该是,OpenSolaris虽然很好,但是它能帮助我解决什么问题呢?我想这对大多数使用者来说,都是一个十分重要的问题,一个系统软件即使包含了很多高新的技术、有着诸多的优点,但是如果无法满足用户的需求,不能帮助用户解决问题、节约时间和各种资源,那也就失去了存在的意义和使用价值。下面我们就从几个方面来探讨一下OpenSolaris能够为用户提供什么样的使用价值:

1、 从开发人员的角度来看

OpenSolaris是一个开放的系统平台,基于OpenSolaris可以运行大量的开源软件,其中包括编译器和集成开发环境,另外原来一些商用的编译器和集成开发环境,如SunStudio,现在也提供免费下载使用,这样基于OpenSolaris就可以构建出强大而完善的开发环境。使得用户可以快速、灵活进行各种软件的开发。在基于OpenSolaris的开发环境中, OpenSolaris系统提供的各种追踪、调试以及优化工具,会给开发人员带来极大的帮助和便利。我想对于任何一个有过开发经历的人,调试和Debug的过程都曾是挥之不去的梦魇,而在基于OpenSolaris的开发环境中,你可以使用Dtrace、DBX、Truss等等一系列的跟踪和调试工具,这些工具会使调试的难度大大降低,为开发人员节约大量的开发时间,缩短开发周期。利用OpenSolaris自身提供的虚拟化技术(Zone)以及运行于其上的虚拟机软件(xVM和VirtualBox)可以在一台真实的物理服务器上创建多个虚拟机环境,以及配置虚拟网络和虚拟交换机,从而构建基于虚拟机的开发环境,这样可以充分的利用服务器的物理资源,降低开发环境的成本。由于虚拟机易于备份、迁移和管理的特点,基于虚拟机的开发环境具有较之基于物理服务器的开发平台更高的可用性、可管理性和可扩展性。

2、从企业级应用的角度来看

对于企业级应用来说,往往使用的是配置有多颗CPU的重量级服务器,随着CPU数量的增加,系统内部调度的复杂度会急剧增加,如果相关部分处理不好,对系统性能会有非常大的影响。而OpenSolaris良好的继承了对大型服务器的支持这一特点,在多CPU 环境下表现十分让人满意。另外,基于OpenSolaris的虚拟化解决方案也十分成熟和完善,而虚拟化技术则是目前企业级应用进行服务器整合、提高RAS(Reliability、availability、Scalability)、增强安全性的主要发展方向。因此,OpenSolaris在支持企业级应用上有着明显的优势。

3、从开源玩家的角度来看

OpenSolaris界面友好、代码开放、文档完备,是开源资深玩家和初学者一个好的选择,OpenSolaris的源代码中,饱含了很多专利技术,这对于任何人来说都是深入学习的好机会,在OpenSolaris的社区中,有很多资深的开发人员甚至某一方面的领军人物,而开放的论坛和邮件列表,为有兴趣参与其中的开源玩家建立起了与这些“高手”们交流的机会。对于有想法的人来说,OpenSolaris社区更是一个展示能力的好舞台,任何人的一个建设性的想法,也许就会成为其中的一个项目,甚至最终发展成一项宏伟的工程。

到这里,以前接触过Solaris的读者也许会提到一个问题,那就是OpenSolaris的硬件兼容性。有人会说,OpenSolaris在企业及系统的支持上有优势,那它所支持的硬件的广泛程度如何呢?坦白的讲,我曾经一度也有类似的疑问,但是当我查阅了OpenSolaris的硬件兼容性列表之后,我改变我的观点。OpenSolaris拥有非常好的硬件兼容性,我在下面简单列举一些数字加以说明。
OpenSolaris可以支持:
Sun Systems  32种
服务器平台  171种
桌面平台  256种
笔记本   379种
通过上面这些数字,我们可以看出OpenSolaris具备良好硬件兼容性,而且,在开放的开发和运作模式下,OpenSolaris会吸引越来越多的硬件厂商加入,所以OpenSolaris的硬件支持会越来越广泛、完善。关于这个话题,有兴趣的读者可以到如下网址察看OpenSolaris完整的硬件兼容性列表:http://www.sun.com/bigadmin/hcl/data/os/

很多人会用OpenSolaris和Linux进行比较,说实话,我也会有意或无意的这样做,比较的结果当然是各有所长,但是OpenSolaris的确包含了很多Linux所不具备的特点:

1、OpenSolaris是唯一的

Linux有多个发行版本,每一个发行版本在系统的配置、管理上都有一些特有的命令,每个发行版本类似功能的配置文件的文件名、存放位置乃至文件内容都有所不同,所以造成了一种现象就是,精通一种Linux配置和管理的人,到了另一种Linux上却一筹莫展。而OpenSolaris不会出现这种情况,因为OpenSolaris是唯一的。

2、OpenSolaris是严谨的

Linux的在其发展过程的主要表现之一就是自由度比较高,而这种自由是以牺牲严谨性为代价的,Linux的每一次内核版本的升级,对于既有的应用来说都是一场浩劫,轻则需要重新编译,重则需要进行移植,这是应用的开发者和使用者都不愿意看到的情况。而OpenSolaris会严格的保持向下兼容的特性,从而最大程度的避免了类似情况的发生。

3、OpenSolaris是完善的

Linux的系统管理命令很不完善,大量的系统管理配置工作都需要通过直接修改配置文件来进行。大家知道,人为的编辑错误是不可避免的,对于关键的生产环境来说,如果在编辑系统配置文件的过程中出现错误,很可能会引起非常严重的后果。而OpenSolaris提供了完善的系统管理工具集,系统配置可以通过专用的命令来完成,而系统管理的命令会对命令所包含的参数进行验证,避免错误的参数输入。因此与Linux相较而言OpenSolaris更加完善。

综上所述:OpenSolaris是一个完善的、开放的、严谨的、友好的操作系统平台,用户可以使用OpenSolaris构建灵活、强大的开发环境;构建高效、健壮的企业及应用服务平台;OpenSolaris社区为开源软件的玩家们提供了探讨学术空间以及发挥才能的舞台。

OpenSolaris项目从2005年开始,到目前经历了Nevada和Indiana两个发展阶段,目前最新的是Indiana项目中的OpenSolaris 0805,改版本于2008年5月由OpenSolaris社区对外发布。要想体验OpenSolaris的强大,了解OpenSolaris的特点,最好的方式就是自己动手实践,我相信,与这只神鸟共舞的体验一定是美好的。在这里我向大家提供一些下载和文档资源:

下载OpenSolaris的地址:
 http://www.opensolaris.com/get/index.html
OpenSolaris社区主站:
http://www.opensolaris.org
Sun的文档主站:
http://docs.sun.com


小邪 (466384297) 于 2008-06-17 00:09:44 对此贴进行了编辑
回到帖子顶部