Solaris支持多种系统架构:SPARC、x86和x64。x64即AMD64及EMT64处理器。在版本2.5.1的时候,Solaris曾经一度被移植到PowerPC架构,但是后来又在这一版本正式发布时被删去。与Linux相比,Solaris可以更有效地支持对称多处理器,即SMP架构。Sun同时宣布将在Solaris 10的后续版本中提供Linux运行环境,允许Linux二进制程序直接在Solaris x86和x64系统上运行。
预测及自我修复技术是通过联机错误检测和自动恢复提供的一种应急方案。Solaris 10能够通过Solaris Fault Manager提前删除故障组件,从而使CPU、存储器和I/O问题可以在几秒钟内得到诊断和纠正。硬件和应用程序监控对系统管理员和用户是透明的,并且所有服务信息和相关性均存储在一个中央存储库中,因此能使错误报告得到简化
DTrace是一种实时调试和性能调优的工具,传统的UNIX或Windows有一些系统工具可以提供一些系统信息,但缺乏跟踪每个用户和每个进程的能力,DTrace允许编程人员通过观察UNIX用户/内核间的控制流来看其应用程序与内核间的交互活动,DTrace有简单易学的D语言,可构建自定义程序以动态跟踪系统,并使得对有关操作系统的任意问题提供即时简明的回答成为可能。
Solaris 10是最具有里程碑意义的。从此,Solaris走向了开源,代码不再专门由Sun公司的操作系统专家编写。也就是说,下一个版本的Solaris将是由开源社区的众多自由软件开发者编写的。
Sun Microsystems是由Stanford和Berkeley两所大学的毕业生创建的,他们使用Stanford大学的硬件和Berkeley大学的软件来开拓企业工作站市场。他们希望通过提供空前的CPU速度和成熟的桌面操作系统来和大型机厂商直接竞争。对于一个给定的价格而言,使用Sun工作站可以获得比使用任何大型机都高的性能。这一成功破坏了传统的使用哑终端和非常智能但非常昂贵的大型机系统进行通信的客户/服务器市场。
图1-3绘出了UNIX系统的高层次的体系结构。图中心的硬件部分向操作系统提供基本服务。操作系统直接与硬件交互,向程序提供公共服务,并使它们同硬件特性隔离。当我们把整个系统看成层的集合时,通常将操作系统称为系统内核,或简称内核,此时强调的是它同用户程序的隔离。因为程序是不依赖于其下面的硬件的,所以,如果程序对硬件没做什么假定的话,就容易把它们在不同硬件上运行的UNIX系统之间迁移。比如,那些假定了机器字长的程序就比没假定机器字长的程序更难以搬到其他机器上。外层的程序,诸如shell及编辑程序(vi),是通过引用一组明确定义的系统调用而与内核交互的。这些系统调用通知内核为调用程序做各种操作,并在内核与调用程序之间交换数据。图1-3中出现的一些程序属于标准的系统配置,就是大家所知道的命令。但是由名为a.out的程序所指示的用户自有程序也可以存在于这一层。此处的a.out是被C编译程序产生的可执行文件的标准名字。其他应用程序能在较低的程序层次之上构筑而成,因此它们存在于图1-3的最外层。比如,标准的C编译程序cc就处在图1-3的最外层;它引用C预处理程序、两次编译程序、汇编程序及装入程序(称为连接-编译程序),这些都是彼此分开的底层程序。虽然图1-3对应用程序只描绘了两个级别的层次,但用户能够对层次进行扩充,直到级别的数目适合于自己的需要。确实,为UNIX系统所偏爱的程序设计风格鼓励把现存程序组合起来去完成一个任务。
Richard Stallman建立了GNU项目,要创建一个能够自由发布的类UNIX系统。20年来,这个项目不断发展壮大,包含了越来越多的内容。现在,GNU项目开发的产品,比如Emacs,GCC等已经成为各种其他自由发布的类UNIX产品中的核心角色。1990年,Linus Torvalds决定编写一个自己的Minix内核,初名为Linus'Minix,意为Linus的Minix内核,后来改名为Linux,此内核于1991年正式发布,并逐渐引起人们的注意。当GNU软件与Linux内核结合后,GNU软件构成了这个POSIX兼容操作系统GNU/Linux的基础。今天GNU/Linux已经发展成为最为活跃的自由/开放源码的类UNIX操作系统。1994年,BSD UNIX走上了复兴的道路。BSD的开发也走向了几个不同的方向,并最终导致了FreeBSD、OpenBSD和NetBSD的出现。图1-2是UNIX进化史。
UNIX的诞生和Multics(Multiplexed Information and Computing System)是有一定渊源的。Multics是由麻省理工学院、AT&T贝尔实验室和通用电气合作进行的操作系统项目,被设计运行在GE-645大型主机上,但是由于整个目标过于庞大,糅合了太多的特性,Multics虽然发布了一些产品,但是性能都很低,最终以失败而告终。
1965年时,贝尔实验室(Bell Labs)加入一项由奇异电子(General Electric)和麻省理工学院(MIT)合作的计划;该计划要建立一套多使用者、多任务、多层次(multi-user、multi-processor、multi-level)的MULTICS操作系统。直到1969年,因MULTICS计划的工作进度太慢,该计划被停了下来。当时,Ken Thompson(后被称为UNIX之父)已经有一个称为"星际旅行"的程序在GE-635的机器上跑,但是反应非常慢,正巧被他发现了一部被闲置的PDP-7(Digital的主机),Ken Thompson和Dernis Ritchie就将"星际旅行"的程序移植到PDP-7上。而这部PDP-7(如图1-1所示)就此在整个计算机历史上留下了芳名。