1.2 Solaris的历史
1.2.1 Solaris简介
Sun Microsystems是由Stanford和Berkeley两所大学的毕业生创建的,他们使用Stanford大学的硬件和Berkeley大学的软件来开拓企业工作站市场。他们希望通过提供空前的CPU速度和成熟的桌面操作系统来和大型机厂商直接竞争。对于一个给定的价格而言,使用Sun工作站可以获得比使用任何大型机都高的性能。这一成功破坏了传统的使用哑终端和非常智能但非常昂贵的大型机系统进行通信的客户/服务器市场。因为Sun在性能上使用了更多的“bangperbuck”,专用系统厂商如HP和DEC看到了他们在企业市场上的占有率的迅速萎缩。到1986年,UNIX在费用上和一些操作系统(如ⅤAX/ⅤMS)相比具有绝对的优势,但ⅤMS后来以Windows NT的形式出现,并对UNIX产生了威胁。当用户需要一个图形工作站来代替哑终端时,Sun是毫无疑问的第一选择。然而,Sun的革新使得很多工作组和部门可以对他们自己的计算环境进行控制,并对C编程语言进行颇有成效的发展。Sun采用BSD,并把它发展成为一个商用产品,增加了很多有用的革新,例如NFS。这和一些Linux公司开发软件包并和Linux内核捆绑在一起销售是类似的。然而,Sun和RedHat Linux之间很大的不同是,Sun是一个一直注重硬件的公司——它的系统是基于SPARC芯片集设计的。Ultra SPARC也已经出现,这使得Sun可以使用比Intel慢的CPU做出非常快的工作站和服务器,它的总线性能更快、更有效率。Sun在硬件设计上的投资非常大,并期望能够获得商业回报。
SunOS 4.x的主要革新如下:
·实现了网络文件系统(NFS 2.0,运行在UDP上)。
·基于X11的OpenWindows 2.0图形用户环境。
· OpenBoot监视器。
· DeskSet实用程序。
·多进程支持。
SunOS 5.x的主要革新如下:
·在多达64个处理器的单服务器上支持对称进程。
· OpenWindows 3.0图形用户环境和OpenLook。包括与MITX11R5、Motif、PostScript及公共桌面环境(CDE)的集成。
·网络信息服务(NIS/NIS+)。
·集成用于身份验证的Kerberos。
·对静态和动态链接的支持。
· Full-moon集群确保高可用性。
·作为主要域控制器给NT客户机提供服务。
· Tooltalk。
· Java。
·与POSIX兼容的开发环境,包括单线程、多线程、共享内存和信号灯。
·实时内核访问。
·兼容X/OPEN的命令环境。
·符合UNIX 95和UNIX 98标准。
·支持超大文件(>2GB)。
·桌面环境使用WABI实现对MicrosoftWindows的模仿。
·高级卷管理(vold)。
·标准化包管理和部署工具。
·标准化补丁管理和集成。
·基于软件的电源管理。
·用于资源授权的访问控制列表。
·使用automounter支持用户主目录的集中管理。
·对NFS的改进(版本4),在TCP上运行。
·对高级网络(如ATM、帧中继、吉字节以太网)的支持。
·本地站点安装和配置的JumpStart自定义。
·在Solaris7和以后版本使用64位内核体系结构。
·简化备份和恢复过程。
·使用AdminSuite工具包简化站点管理。
1.2.2 Solaris操作系统发展路线图
Sun操作系统版本发展的时间顺序如下:
1971年,第一个UNIX版本发布。
1982年,Sun选择UNIX操作系统用于其第一款工作站。
1983年,SunOS 1.0发布。
1984年,Sun发明NFS技术。
1985年,SunOS 2.0支持NFS技术。
1988年,SunOS 4.0支持其第一个SPARC处理器和使用虚拟内存技术。
1992年,Solaris 2发布,基于UNIXSⅤR4,并支持其第一款多处理器工作站。
1992年,Solaris 2.1增加支持线程技术。
1993年,Solaris 2.2增加支持对称多处理器技术。
1995年,Solaris 2.5支持UltraSPARC工作站/服务器。
1997年,Solaris 2.6支持1TB大文件。
1998年,Solaris 7采用64位技术,支持Java。
2000年,Solaris 8增加支持安全的企业级Web应用。
2002年,Solaris 9服务提供平台,U5版支持CMT技术,并增加Sun Java企业系统。
2005年,Solaris 10虚拟化OE,增加N1 Grid Container,DTrace等。
2006年1月,Solaris 10 update1增加ZFS文件系统。
其中,Solaris 10是最具有里程碑意义的。从此,Solaris走向了开源,代码不再专门由Sun公司的操作系统专家编写。也就是说,下一个版本的Solaris将是由开源社区的众多自由软件开发者编写的。
1.2.3 Solaris 10的新功能
对比Solaris 9,Solaris 10具有下列新功能。
1.Dtrace(Dynamic Tracing,动态跟踪)
DTrace是一种实时调试和性能调优的工具,传统的UNIX或Windows有一些系统工具可以提供一些系统信息,但缺乏跟踪每个用户和每个进程的能力,DTrace允许编程人员通过观察UNIX用户/内核间的控制流来看其应用程序与内核间的交互活动,DTrace有简单易学的D语言,可构建自定义程序以动态跟踪系统,并使得对有关操作系统的任意问题提供即时简明的回答成为可能。
2.N1 Grid ContainerNI网格容器
利用NI网格容器功能可进行系统分区,可在Solaris 10中划分多达8000个软件分区,并且每个分区都是一个Solaris 10实例,有自己的CPU、内存、硬盘分区、主机名和IP地址,可独立运行应用程序,有助于用户更好地利用硬件资源,提高系统利用率,同时也提供了多系统所具有的安全性和可靠性。
3.Predictive Self-healing(预测性自我修复)
这是一种可预测性自我修复技术,使Sun系统和服务在出现软硬件故障时得到最大可用性。此功能在Sun高端服务器上得到了支持,以后会支持x86平台。
4.新的Sun Java Desktop System
Solaris 10使用Sun Java桌面系统。
5.系统服务管理
熟悉UNIX和Linux的用户都知道,系统服务的启动是依靠rc*.d下的脚本来进行的,所有的服务都是顺序启动的,而不管其中的依赖关系。察看系统已经启动的服务也只能用ps命令。而Solaris 10不再用rc*.d文件中的脚本进行系统服务的管理,而是通过专门的命令察看或者启动/停止服务,对服务进行统一管理。启动时,会根据服务之间的依赖关系启动服务。
6.64位Solaris 10操作系统
Sun已经推出1路和2路,而且即将推出4路基于OpterOn处理器的服务器,32位的Solaris 10已经可以运行在Optern上,64位的Solaris 10已经面世,64位计算能力将被充分发挥。
7.新的硬件支持
Solaris 10版本发布时,来自Sun和第三方IHⅤ的上百种新的硬件将追加到HCL(硬件兼容表)中,在x86系统上安装Solaris 10将会更容易。访问网址www.sun.com/bigadmin/hcl/,即可在HCL中了解自己的硬件是否在Solaris 10上可用。
8.ZFS文件系统支持
ZFS(文件系统海量文件系统)支持128位寻址空间和自动数据校验,支持文件系统快照,支持RAID技术的镜像等功能,无需卷管理软件,可提高文件系统的性能。
9.直接运行RedHat二进制程序
Solaris 10 update1以后的版本允许RedHat的二进制程序在Solaris 10 for x86版上直接运行而无须更改和重编译,提供异种机环境下的互操作能力。Sun公司的目的是在不远的将来,使在所有Linux系统上开发的二进制应用程序,都能方便地直接在Solaris系统上运行。
1.2.4 Solaris 10的优势
Solaris一直作为企业级的操作系统而存在,随着Solaris 10发布,系统性能更加优越,具体表现在以下几个方面。
1.在系统的稳定性方面
预测及自我修复技术是通过联机错误检测和自动恢复提供的一种应急方案。Solaris 10能够通过Solaris Fault Manager提前删除故障组件,从而使CPU、存储器和I/O问题可以在几秒钟内得到诊断和纠正。硬件和应用程序监控对系统管理员和用户是透明的,并且所有服务信息和相关性均存储在一个中央存储库中,因此能使错误报告得到简化。Solaris 10利用技术来降低现代数据中心的成本、复杂性和风险,已经超越了单纯的系统可用性,并将应用程序可用性涵盖其中。它能通过Solaris Service Manager自动重启可能受某个系统故障影响的应用程序。
2.在系统资源的利用率方面
Solaris 10容器技术提供了一种创新的服务器虚拟化方案。由于操作系统的每个实例能够支持多个软件分区,因此,Solaris 10容器使整合变得十分简单而安全。Solaris 10容器能够根据业务目标在容器内和跨容器动态地调整资源,从而能够更好地计算资源利用率。
由于系统开销极小(不到1%),因此,它能用于在每个系统或动态系统域中创建超过8000个容器。同时,应用程序不仅实现了相互隔离,而且与系统故障隔离,因此,一个应用程序出现问题不会影响其他应用程序。通过使用Instant Restart(即时重启)功能,每个Solaris 10容器只需几秒钟即可重新启动,从而更大限度地减少应用停机时间。由于Solaris 10容器完全由软件支持,与平台无关,因此可以在SPARC或基于x86的64位平台上使用,包括大规模的服务器及刀片服务器。Solaris 10容器还利用了Solaris 10的资源管理功能,允许在容器之间动态转移资源,可确保更高的利用率。
3.在系统综合性能方面
Solaris 10性能提升的一个关键要素是针对最新处理器技术的优化。对新型UltraSPARC IⅤ处理器的支持能使从UltraSPARC III处理器升级的系统达到其以前两倍的性能,而专门针对AMD Opteron和Intel Xeon处理器进行的新优化能够在科学工作负载下提供高达x86系统两倍的总体性能。重新设计的TCP/IP堆栈提供30%~50%的网络吞吐率性能改进,并且CPU负载降低了10%~15%。总体上,用户可以在Web服务器上体验到最高10%的性能改进,在应用服务器上体验高达50%的性能改进。Dynamic Tracing(Dtrace)是一个分析和诊断疑难问题及提升系统性能的工具。内建在Solaris 10中的DTrace工具可以解决软件开发和系统管理中最关键的问题之一:如何调试应用程序和解决生产系统上的性能问题。DTrace能够实时应用在生产环境中,它不会干扰现有应用程序的运行,并且未使用时不会产生任何系统开销。凭借从内核核心到Java线程的广泛涵盖范围,它提供了内核及所有应用程序的统一视图。由于调试在发生问题的实际系统上实时进行,因此可以在几分钟或几小时内(而不是几天或几个星期)发现间歇性问题的根源。这种更高水平的可见性可以带来的性能提升十分巨大,通过使用DTrace,真实环境中的应用程序经过优化,运行速度能够加快30倍。
4.在系统安全方面
Solaris 10提供了一种简便易用并且与现有应用程序和管理做法完全兼容的突破性系统安全方案。Solaris 10提供了更加强大的机制,可控制对关键设施的访问,从更加尖端的验证和智能卡接口开始登录以验证用户身份,并能扩展到进程权限管理,从而淘汰了传统UNIX“孤注一掷”的根机制,代之以一套细化的权限。Solaris 10平台的全新加密基础架构提供了一个编程接口集,可确保数据流的安全性。不仅使应用开发人员能够轻松地利用高度优化的密码算法,而且可以透明地自动利用硬件加速。另外,进程权限管理能够限制进程对系统资源的未授权访问,降低入侵攻击的风险。为进一步保护数据中心的每一个系统,Solaris 10还包含集成的IP过滤功能。Solaris 10容器通过将应用程序和数据与错误传播或入侵隔离,提供了更好的安全措施。每个容器都是一个隔离的虚拟环境,在一个容器中运行的进程不能访问该容器之外的进程或资源。Solaris 10系统内的默认设置,可以针对安全要求轻松地进行设置。Solaris 10中的许多安全特性都基于开放源码组件和标准,包括OpenSSH、PAM、IPSec/IKE、IP Filter和Kerberos。
5.在软件开发方面
(1)Java开发工具
众所周知,现在的Java编程很流行。Java程序的最大优势是它的跨平台能力,“一次编写,随处运行”是Java受人欢迎的原因。也就是说,在Solaris 10上开发的Java程序,可以不经过任何修改和重新编译,就直接复制到Windows上运行。这种二进制代码程序的兼容性是过去从来没有的,即使是在不同硬件平台上得到广泛应用的C语言,它的源代码虽然可以做到不经过修改即可在不同的平台上使用,但是仍然要经过编译。Java成功的秘密在于它通过Java虚拟机与硬件交互。许多软件厂商,包括SunSoft和Microsoft,都已经宣布支持Java平台。Java是Sun公司开发出来的,在Java标准正式确立之前,Sun公司控制着Java的发展。这对于非Solaris平台来说,多少也算有一点风险。但对Solaris 10平台上的开发者来说,应该不必对现有环境的Java技术集成存在太多的疑虑。
(2)其他开发工具
由于Solaris 10发行版默认是不安装C编译器及开发环境的,因此,要在Solaris 10平台上进行C程序开发有如下两种选择:免费下载Sun公司的编译器Sun Studio10或者安装开源开发工具。
(3)Sun Studio 10
如果需要为SPARC平台编译和优化,对生成代码的performance要求较高,Sun Studio也许是最佳选择。Sun Studio 10是优化了Solaris 10和Linux平台上的C++、Fortran开发环境,可在Sun UltraSPARC IⅤ、Intel Xeon和AMD上开发32/64位的应用。具有64位编译器,支持64位应用开发,包括AMD Opteron 64位等。
(4)Sun Java Studio Creator可视化开发环境
这是一个集综合性的开发、调试和部署功能于一身的开发环境,它包括Sun Java System Application Server 8平台版软件。该软件是Sun Java企业系统软件中的一个组件,可用做目标开发和部署平台。
(5)GNU的开发工具
考虑到成本和其他因素,免费的GNU开发工具无疑是首选。Solaris 10发行版本的Companion CD上,包括了很多GNU的开发工具。
· GCC:C/C++编译器。事实上,GCC可以支持包括SPARC和x86在内的多种平台的交叉编译。Solaris 10自带的GCC版本是3.4.3。
· binutils:gas/ld/ar/nm等二进制工具可以不安装。
· gdb:debug工具,调试代码和反汇编。
· gmake:GNU的make,可以不安装。
· vim:编辑器,可以支持C/C++等语言的语法高亮显示功能。
· coreutils:包含GNU的常用命令,利用ls--color参数可以实现和Linux一样的彩色终端功能。
(6)下载GNU的开发工具
除了Solaris 10发行版本的Companion CD外,从www.sunfreeware.com站点上也可以下载上述工具的二进制包。sunfreeware站点上提供了Solaris7/8/9/10各主要版本的免费工具的下载。
1.2.5 Solaris的硬件系统架构
Solaris支持多种系统架构:SPARC、x86和x64。x64即AMD64及EMT64处理器。在版本2.5.1的时候,Solaris曾经一度被移植到PowerPC架构,但是后来又在这一版本正式发布时被删去。与Linux相比,Solaris可以更有效地支持对称多处理器,即SMP架构。Sun同时宣布将在Solaris 10的后续版本中提供Linux运行环境,允许Linux二进制程序直接在Solaris x86和x64系统上运行。Solaris传统上与基于Sun SPARC处理器的硬件体系结构结合紧密,在设计上和市场上经常捆绑在一起,整个软硬件系统的可靠性和性能也因此大大增强。然而SPARC系统的成本和价格通常要高于PC类的产品,这成为Solaris进一步普及的障碍。可喜的是,Solaris对x86体系结构的支持正得到大大加强,特别是Solaris 10已经能很好地支持x64(AMD64/EMT64)架构。Sun公司已推出自行设计的基于AMD64的工作站和服务器,并随机附带Solaris 10操作系统。
1.SPARC硬件
SPARC全称为“可扩充处理器架构”(Scalable Processor ARChitecture),是RISC微处理器架构之一。它最早于1985年由Sun设计,也是SPARC国际公司的注册商标之一。这家公司于1989年成立,其目的是向外界推广SPARC,以及为该架构进行符合性测试。此外该公司为了扩阔SPARC设计的生态系统,SPARC国际也把标准开放,并授权予多家生产商采用,包括德州仪器、Cypress半导体、富士通等。由于SPARC架构也对外完全开放,因此也出现了完全开放源代码的LEON处理器,这款处理器以ⅤHDL语言写成,并采用LGPL授权。SPARC架构原设计给工作站使用,之后应用在Sun、富士通等制造的大型SMP服务器上。
1987年,Sun和TI公司合作开发了RISC架构的微处理器——SPARC,这是业界出现的第一款有可扩展性功能的微处理器。SPARC(Scalable Processor ARChitecture),即可扩展性处理架构,SPARC处理器为Sun的产品提供了强劲的动力。
Sun出版版本7的SPARC Architecture是第一个SPARC处理器。这个16MHz,32位SPARC 86900“Sunrise”处理器配置了20000个Fujitsu gate-array芯片,供给Sun 4/260工作站动力。
1990年SPARC国际出版版本8的SPARC Architecture,以几种关键改进譬如硬件multiply/divide的MMU作用,支持对于128位浮点运算。
出版版本9规格于1993年被推出,增加了支持对于64位地址和数据类型,包括处理器从Sun(UltraSPARC)到Fujitsu(SPARC64)。多年来,主导产业的SPARC Architecture供给各种各样的系统动力包括服务器、工作站、膝上计算机、ⅤME/PCI委员会、存储系统、网络开关和数字照相机。
在SPARC处理器之后不久,随后出现了64位高性能的UltraSPARC处理器,为Sun公司的工作站和服务器提供了发展原动力。Sun的系统架构提供了一种非常平衡的性能,系统部件(和内存)组合起来加速了应用序列的每个部分;高速I/O和网络,与高速互连部件一起提高了数据获取速度。UltraSPARC CPU提供了超级计算能力,并驱动数据流通过互连部件(UPA,Gigaplane Bus和Fireplane Interconnect)维持高速处理。
对于要求高级图形和多媒体能力的系统,Sun的UltraSPARC是第一种集成了2-D和3-D影像和图形的处理器。ⅤIS是一组加速多媒体、影像处理和网络应用的指令集,这使得UltraSPARC处理器与众不同。ⅤIS RISC指令集扩展了SPARC-v9架构。ⅤIS是嵌入于UltraSPARC处理器中的单指令多数据(SIMD:Single Instruction Multiple Data)代码。UPA连接UltraSPARC处理器、内存、I/O子系统和图形卡。为多任务、多处理器环境特别设计,UPA连接适用于大量数据在系统中高速流动,增强了整个系统的性能。
UltraSPARC IIe微处理器采用0.18μm6层金属连线工艺,370引脚、49.5mmCPGA封装;内部集成了256-KB二级高速缓存、32位标准66MHz PCI总线、高性能SDRAM控制器和内存接口。该处理器的功耗性能是专为嵌入应用而优化的,对1.5伏的400MHz处理器来说,其功耗估计最多为8瓦,而1.7伏的500MHz处理器,功耗最多则为13瓦。此外,附加的内置功率管理功能使休眠状态时最多耗能3瓦,符合Energy Star的要求。图1-5是Sun UltraSPARC II处理器。
图1-5 Sun UltraSPARC II处理器
而Sun开发的Solaris操作系统也是为SPARC设计的系统之一,除Solaris之外,NeXTSTEP、Linux、FreeBSD、OpenBSD及NetBSD系统也提供SPARC版本。现时最新版本的SPARC为第8版及第9版。Sun的UltraSPARC Ⅲ微处理器可提供更加灵活的扩展方法。芯片可从两路处理扩展到数百路的处理操作,而无须重新设计大量的硬件及软件。UltraSPARC Ⅲ处理器采用Sun的独特设计方法,无须使用外部的存储器控制器。独立的控制器为系统总线增添了额外的负载,而UltraSPARC Ⅲ处理器与存储器直接对话,从而减少了这一负载。因此,存储器容量及性能可随着处理器的增加自然扩展。
UltraSPARC Ⅲ处理器就是针对新兴网络计算设计的,处理器具有更高的时钟频率,更少的延误时间,可提供因特网要求的极高性能。UltraSPARC Ⅲ处理器还支持高度灵活的多处理环境,因此,选择它作为新兴因特网业务的处理器,可快速扩展,满足不断增长的计算要求。UltraSPARC Ⅲ的工作频率有900MHz、750MHz和600MHz三种。与以前的UltraSPARC Ⅱ相比,UltraSPARC Ⅲ运行程序的速度要快一倍。
UltraSparc IIIi为每个处理器配备1MB的2级缓存,SPARC IIIi这个代号中的“i”所隐含的意思是“集成(Integration)”。也就是说,这个处理器具有极高的集成性,其中包括了存储及I/O控制器、大量的芯片内缓存,以及有效降低系统复杂度的系统总线。对于某些特定的应用,SPARC IIIi在降低成本方面效果十分显著。Sun公司的中低端服务器采用专用处理器SPARC IIIi,它是针对1~4个处理器的环境而专门设计的,同时确保了最高标准的RAS能力。因此,Sun UltraSPARC IIIi处理器仍然是低端UNIX服务器的上好之选。
Sun公司在其2002年年会上正式发布了采用0.13微米工艺和铜导体技术打造的64位UltraSPARC III Cu 1200处理器。由于采用了0.13微米制造工艺,新型1.2GHz的UltraSPARC III Cu处理器电耗比原先采用0.15微米技术打造的1.05GHz Sun处理器降低了14%,也就是从75W电耗降低到了53W电耗。降低幅度为30%。Sun以更低的耗散功率和更小尺寸的芯片,降低了系统的运行成本,使系统计算密度的潜力又一次获得提升,还特别改善了系统的RAS特性(可靠性、可用性和可维护性)。
Sun的UltraSPARC III Cu 1200新处理器,以及新一代服务器动态重构软件的发布,将网格计算提高到企业系统阶段。它比用于IBM Power4和Intel安腾2的180毫微米的生产工艺整整前进了一代。这一更精细的工艺技术还使处理器芯片尺寸大大减小,这使芯片制造成本再次降低,进一步巩固了UltraSPARC III处理器是业界最低功耗的64位处理器的地位。UltraSparc IⅤ使用了两个UltraSparc III核心。UltraSPARC Ⅳ目前仍然采用和UltraSPARC Ⅲ相同的生产制造工艺,只是在接口复用上重新设计,可以直接热交换原系统中的UltraSPARC Ⅲ系统板,直接获得性能的翻番。在各种复杂的应用中经过数个月的测试表明,UltraSPARC Ⅳ性能出色,运行稳定性也一如UltraSPARC Ⅲ,毕竟是同一种核心下的产物。首批UltraSparc IⅤ使用130纳米制造工艺,UltraSparc IⅤ处理器只有356平方毫米大小。其生命周期将延续到2006年。
当然,提升性能的主要方式就包含制造工艺,Sun在2004年内将和TI共同生产90纳米工艺的UltraSPARC Ⅳ,它不但会获得频率上的优势,更重要的是原本板载的16MB L2 Cache会集成在Die上(据猜测是2MB L2 Cache),这时配合板载的L3 Cache,将会成为Sun历史上最强悍的处理器,性能会在今天的基础上再增加一倍。UltraSparc IⅤ处理器于2004年6月份推出一款速度为1.2GHz的产品。Sun公司推出的UltraSparc IⅤ处理器在性能上要超出前代产品1.6~2倍,这对英特尔、IBM、AMD及其他公司的产品产生了极大的竞争力。
新一代UltraSPARC Ⅳ+处理器采用了德州仪器公司的90毫微米的工艺技术,它通过扩展的高速缓存、功能与转移预测机制(Branch Prediction Mechanism)、增强的预取能力(prefetching capabilities)和新型的计算能力等新技术,将现有的UltraSPARC Ⅳ处理器的应用吞吐量翻了一番。此外,UltraSPARC Ⅳ+处理器还将一个新的3级高速缓存层,与一个快速片上2MB二级高速缓存和一个大型32MB片外三级高速缓存组合在一起。
这些新的特性还与更高的运行频率(起始为1.8GHz)相结合,使UltraSPARC Ⅳ+比以往的UltraSPARC处理器有更高的吞吐量,大约是UltraSPARC Ⅳ处理器的每个线程性能的两倍。UltraSPARC Ⅳ+处理器采用了片上多线程技术(CMT),通过多个运算(或称线程)的同时进行,继续执行Sun的吞吐量计算战略,以进一步提高系统的性能。同时,还有一组新的RAS(随机存取存储器),使这一新的设计成为UltraSPARC系列处理器中最可靠的一员。
与UltraSPARC Ⅳ处理器一样,这第二代的UltraSPARC Ⅳ+处理器仍然保持了Sun系统传统的二进制兼容的特性,因此保护了客户在开发工具和应用软件方面的已有投资。Sun还向他的客户提供了使其系统性能和可靠性双升级的简易途径,系统的占地面积不变,电源功率和热包装仅有很小的变化。我们详细介绍了Sun的各型号CPU,Sun SPARC处理器比较如表1-1所示。
表1-1 SPARC微处理器规格
表1-2是支持Solaris 10的Sun公司产品线,表格中按类别列出了Solaris 10发行版支持的各种Sun硬件系统的SPARC平台名称和平台组。所有SPARC平台都是64位的,但它们既可以运行64位的应用程序,也可以运行32位的应用程序。这些平台在使用Solaris 10发行版时,没有其他特殊的安装或升级说明。表1-2中列出的平台是sun4v平台组的一部分。
表1-2 各种Sun硬件系统的SPARC平台名称和平台组
典型的Solaris SPARC工作站包含下面的部件。
·基本部件,包括主板、SCSI控制器和SBUS卡。
·显卡。
·使用SCSI总线或者IDE连接线和基本部件上的SCSI控制器相连的SCSI设备。
· CD-ROM驱动器,内部或者外部(SCSI或者IDE)。
· DⅤD-ROM驱动器,内部或者新的系统。
·音响和麦克风,外部设备。
·两个串行接口(A和B)。
·一个并行接口。
·内部或者外部磁带驱动器(DAT/DDS/QIC等)。
·鼠标(机械的或者光电的)和键盘。
下面比较两个典型的SPARC系统。
仔细分析两种SPARC系统:工作站(UltraSPARC 5)和服务器(UltraSPARC E-450),UltraSPARC 5系统是曾经流行的低端桌面模型。尽管它已经被新的、花费更少的Sun Blade 100取代,但在低端商业和家庭应用中它仍然非常受欢迎,UltraSPARC 5它支持270MHz~400MHz的UltraSPARC-IIi CPU。它内部建有16KB的指令和数据缓存,支持256KB~2MB的外部缓存。在内存和磁盘容量方面系统支持512MB物理内存,CD-ROM和一个1.44MB的软盘,两个硬盘驱动器系统有三个外围设备(两个串口和—个并口)并具有内置的以太网适配器10Mb/100Mb速度。UltraSPARC 5在性能上和桌面PC相当。
UltraSPARC E-450是工作组级别的服务器,支持对称多处理、更多的磁盘、高速总线、热切换、每个CPU有更多的缓存RAM。UltraSPARC E-450支持4个UltraSPARC-Iii CPU,速度在250MHz~480MHz。每个CPU内部有16KB的指令和数据缓存,外部缓存可以达到4MB。系统支持多达16个双内置内存模块(DIMMS),物理内存可以达到4GB。此外也可以在底盘上安装热插拔交换电源,从而可以使用两个不同的电源。系统有三个外围设备(两个串口和—个并口)并具有内置的以太网适配器10Mb/100Mb速度。一个用于备份的DDS-3的DAT磁带驱动器。
RISC小贴士
精简指令集计算机CPU的一种设计模式,也被称为RISC(Reduced Instruction Set Computing的缩写)。常见的精简指令集微处理器包括AⅤR、PIC、ARM、DEC Alpha、PA-RISC、SPARC、MIPS、Power架构等。早期,这种CPU指令集的特点是指令数目少,每条指令都采用标准字长、执行时间短、CPU的实现细节对于机器级程序是可见的等。实际上在后来的发展中,RISC与CISC在争吵的过程中相互学习,现在的RISC指令集也达到数百条,运行周期也不再固定……虽然如此,RISC设计的根本原则——针对流水线化的处理器优化——没有改变。RISC的三个要素是:一个有限的简单的指令集;CPU配备大量的通用寄存器;强调对指令流水线的优化。
基于以上三要素的RISC机器的特征如下。
(1)使用等长指令,目前的典型长度是4个字节。
(2)寻址方式少且简单,一般为2~3种,最多不超过4种,绝不出现存储器间接寻址方式。
(3)只有取数指令、存数指令访问存储器。指令中最多出现RS型指令,绝不出现SS型指令。
(4)指令集中的指令数目一般少于100种,指令格式一般少于4种。
(5)指令功能简单,控制器多采用硬布线方式,以期更快的执行速度。
(6)平均而言,所有指令的执行时间为一个处理时钟周期。
(7)指令格式中用于指派整数寄存器的个数不少于32个,用于指派浮点数寄存器的个数不少于16个。
(8)强调通用寄存器资源的优化使用。
(9)支持指令流水并强调指令流水的优化使用。
(10)RlSC技术的复杂性在于它的编译程序,因此软件系统开发时间比CISC机器长。
RISC与CISC的主要特征对比如表1-3所示。
表1-3 RISC与CISC的主要特征对比
2.Intel硬件
如果Solaris只是为运行在SPARC硬件上而设计的,那么Sun可以在SPARC上赚到钱,为什么Sun还要支持Intel版本呢?对于初学者而言,世界上的Intel系统要比SPARC系统多。Sun和Intel还有历史上的关系,Intel在80386和80486中支持SunOS4.x。然而,正是因为这样,Sun开发了SPARC的CPU,它是现在UltraSPARC系列CPU的先驱。基于Intel的系统也可以在工作站环境中运行,比SPARC系统要便宜得多。因为Sun的生意主要在服务器硬件上,所以它为Intel工作站开发可靠的(它自己的高端服务器也支持)操作系统。
对于很多潜在的Solaris用户来说,即便是他们想要获得UNIX操作系统的特性,但SPARC系统对于他们来说还是太昂贵了。一般来说,各种组织总是要充分利用他们现有的在PC硬件上的投资。然而,一些PC操作系统并不能满足他们的需要。虽然PC已经成为桌面计算机的事实标准,但基于PC解决方案的投资有时候并不能让用户满意,因为PC操作系统缺乏稳定性,尤其是出现各种特定于应用程序的问题,即便操作系统也可能出现问题。还有一些其他问题,包括系统可能在进行重要商业操作的时候缺乏可靠性。尽管Intel的CPU允许对这些造成失败的操作进行逻辑上的隔离(例如保护模式),但这需要操作系统的支持,操作系统厂商并没有完美地完全实现它。换句话说,PC硬件可以胜任任务,但操作系统从来没有完全利用它的能力。也许是过多的失败导致很多有才能的开发人员并不更正现有的PC操作系统中的错误,因为大多数的PC操作系统都具有专利权。也就是说,操作系统厂商要求用户报告操作系统的错误,在错误得到确认后才进行改正。此外,一些所谓的“标准”硬件经常会产生错误,它们经常和应用程序和服务器软件不兼容。例如,在80286CPU系统被吹捧和IBM兼容的时候,大多数使用ISA总线,但是实际上IBM在它们的PS/2系统上使用微通道体系结构(MicroChannelArchitecture,MCA)作为总线。然而,PC硬件已经形成了一些标准,比如PCI总线,PC上的数据吞吐量已经极大地改进了性能指数。
1.2.6 OpenSolaris简介
OpenSolaris是一个由Sun发起的开放源代码计划,用来建立以Solaris操作系统为主的开发者社区,专案的适用对象主要是开发者(也就是软件设计师、程序员)、系统管理者(资讯管理师、资管师、资管员)及使用者(用户),透过这些人期望能使Solaris获得进一步的发展与强化。此开放源代码专案已有超过12000人上专案官方网站(OpenSolaris.org)并注册成为社区会员,其中有超过11000名会员都不是Sun Microsystems的员工(表示不是强迫自己公司同仁去充量注册才造就为数众多的会员),由此可知OpenSolaris的用户团体社区(User Group Community)相当活络,且仍在持续成长中,有越来越多来自全球各地的人加入响应。此外在官方网站上也有12个OpenSolaris的技术社区与专案已发起并取得进展。
1.历史
实际上,OpenSolaris的计划是从2004年年初开始的。一个受过多种训练所组成的团队从各种角度来考量此专案:授权方式、商业模型、管理方式、协同开发程序、源代码分析、源代码管理、工具、市场行销、网站应用设计,以及社区发展等。到了2004年9月,由18位非Sun Microsystems的社区成员共同成立了先期发展计划(Program),之后参与人数逐渐增加,经过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操作系统的源代码被公开释出,不过仍有部分不公开,而只提供二进制的执行程序码,未公开的原因据说是这些程序的源代码涉及协力业者(也称第三方业者)的知识产权,所以Sun Microsystems方面也无权公开。至于释出的OpenSolaris源代码,几乎与正在使用与研发中的Solaris源代码相同。
到了2005年4月4日,Sun Microsystems宣布了五名CAB的成员,其中两名从先期计划的社区中推选而来,另有两名由Sun公司指派,另一名则由Sun公司自广大开放源代码社区中选定。2005年、2006年间OpenSolaris的CAB成员有:Roy Fielding、Al Hopper、Rich Teer、Casper Dik,以及Simon Phipps。2006年2月10日Sun Microsystems签署了OpenSolaris的章节,正式将OpenSolaris社区推升成一个独立团体,并由OpenSolaris管理委员会(OpenSolaris Governing Board,简称OGB)来负责(详见Sun的Blog),而首任的OGB人员也来自于之前的CAB,他们的工作是建立及确认OpenSolaris社区的管理,且这样的阶段性工作任务于2006年6月30日告结。
工作的内容包括建立管理文件或“规章”,如今这些都已经进入程序(意思是:步上轨道了)。此后管理工作团队(Governance Working Group)由OGB与三名受邀者共同组成,这三名受邀人士分别是:Stephen Hahn、Keith Wesolowski(Sun Microsystems内Solaris单位的程序员),以及Ben Rockwood(在OpenSolaris社区中表现卓越杰出的一员)。
2.源代码
目前,OpenSolaris开放的源代码主要包括以下几部分。
· ON(OS/Net)Sources:ON意为OS和Network,即操作系统核心及网络协议栈组成的内核源代码。
· JDS(Java Desktop System):一个基于Gnome的桌面环境,这部分与ON相对独立。按照之前OpenSolaris.org公开的Roadmap,其他ON以外的源代码和文档也将陆续开放。
3.授权方式
Sun已将Solaris的多数源代码以Common Development and Distribution License(CDDL,共有开发及散布授权)授权方式来开放,CCDL授权是以Mozilla Public License(MPL,Mozilla公共许可授权)1.1版为基础所研拟成的新授权许可方式,所以CDDL与MPL相同,两者都与普及的GNU General Public License(GPL,通用公共许可授权)不兼容(或说:不兼容)。不过CDDL确实是属于“开放源代码且可自由授权”的一类。CDDL是由Sun公司所提创的,之后将提案送交给开放源代码促进会(Open Source Initiative,OSI)审核,并在审议获得通过(2005年1月)核准的一种新开放源代码授权法。关于“自由软件授权”的定义,则以自由软件基金会(Free Software Foundation,FSF)的叙述为依据(详见此)。此外要提醒的是,关于MPL授权法,自由软件基金会也表示:“...So,a module covered by the GPL and a module covered by the CDDL cannot legally be linked together.We urge you not to use the CDDL for this reason.”。意思是:若有一个软件模组采行了GPL授权,那么就不能采行CDDL授权的软件模组进行链接(link),若执意交混使用此两种不同授权的软件模组,则自由软件基金会将对此向你发出抗议。另外,Mozilla Application Suite(也称Mozilla Suite)及Mozilla Firefox已经改变他们的授权方式,允许使用者在三种授权方式中任选其一:MPL、LGPL及GPL。
4.发行版本
· SchilliX,Live CD型态的OpenSolaris。
· Belenix,Live CD型态的OpenSolaris。
· marTux,Live CD型态、Live DⅤD型态的OpenSolaris(第一个以支持SPARC硬件架构平台所发行、发布、散布的OpenSolaris)。
· Nexenta,一个以Debian为基础的发行版本,结合了GNU软件及Solaris的SunOS核心。
· Polaris,将OpenSolaris的源代码,以支持PowerPC硬件(也称硬件)架构平台来进行调整、修改,并重新编译(Recompile)而成的OpenSolaris,简单而言,即是转移、改写(port)出一套供PowerPC硬件执行的OpenSolaris,而其名称Polaris即是将PowerPC的首字母“P”,再加上Solaris的“olaris”而成的,不过Polaris在英文中也有“北极星”的意思,虽然这只是巧合,如同培基编程语言:BASIC其实是由五个字词的首字母缩写而成的,并非原意就想取名为“基础编程语言”(Polaris网站)。
· Portaris,一个非正式、非官方的移植改写(port),将Gentoo的Portage转移改写到OpenSolaris上。