1.3 Solaris
Solaris是Sun公司发布的计算机操作系统,它是UNIX操作系统的衍生版本之一。2005年6月14 日,Sun公司将Solaris 10 的源代码以CDDL许可证方式开放,这一开源版本称为OpenSolaris(本书中简称为Solaris)。Solaris 10的主要特性综合介绍如下。
(1)兼容性和可移植性
Solaris 10上二进制兼容Solaris 2.6,Solaris 7/8/9的应用。此外,Solaris在不同的处理器架构上的源代码兼容,即SPARC、x86和x64平台都使用同一套源代码库,绝大部分源代码是与平台无关的。
(2)可观察性
Solaris 10建立了一套新的跟踪系统DTrace,这是一个动态的、可观察的系统。用户可以根据自己的需求选择所要观察的对象,可以动态地打开和关闭观察点。这套系统有足够的能力来收集感兴趣的任何数据,为用户提供风格一致的统计分析视图。这套系统有很好的性能,打开这套系统不会对应用程序性能产生什么影响。
(3)安全性
Solaris 10 的安全机制包含4 个关键部分:容器(container)、精细(且向上兼容的)权限系统(privilege system)、可信扩展(trusted extensions)以及密码框架(cryptographic framework)。
(4)ZFS
ZFS文件系统是下一代数据中心首选的数据管理系统。作为一个先进的文档系统,Solaris ZFS可以自动检测和修改细小的数据错误或遭遇意外侵害的数据,以提供信息的完整性。Solaris ZFS还因为不需要卷管理器而大大简化了数据的管理,而卷管理器是目前数据管理事务中最耗时、最费钱的部分。
像其他的操作系统一样,Solaris内核提供一个虚拟机环境,允许多个程序在硬件平台上并行执行。每个程序有它自己的虚拟机环境,该虚拟机环境有自己的执行上下文和状态。每个Solaris进程可以有一个或多个执行线程共享进程的虚拟内存环境,并且实际上每个线程在进程的环境内独立执行。Solaris内核调度程序管理这些线程的执行(相对于通过调度进程进行管理),透明地为它们在一个或多个处理器上分配时间片。
Solaris内核实现了一套核心的操作系统功能,以及可加载模块形式的内核子系统及服务。进程通过使用系统调用(system call)访问这些内核服务。Solaris模块框架支持7种类型的可加载内核模块:调度类、文件系统、可加载系统调用、可执行文件格式的加载程序、流模块、总线或者设备驱动程序,以及其他的各种各样的模块。
如图1-4所示,Solaris内核被分为如下几个主要组成部分并以模块化方式实现。
● 系统调用。系统调用允许用户进程访问内核工具。系统调用层由共同的系统调用处理程序构成,它将执行导引到适当的内核模块。
● 进程和线程。进程管理工具实现进程的创建、执行、管理和终止。调度程序实现把机器的处理器资源在系统的线程间分配的功能。调度程序允许为不同的行为和调度要求装入不同的调度类。
● 内存管理。虚拟内存系统管理物理内存到用户进程和内核的映射。Solaris内存管理层被分为两层:公共内存管理功能和针对特定硬件的组件。针对特定硬件的组件位于硬件地址转化层(Hardware Address Translation,HAT)。
● 资源管理。Solaris内核包含为应用分配特定系统资源(处理器、内存、网络)的基础设施和管理框架。资源管理可以最大化利用系统硬件,支持多个、虚拟化、分离的执行环境。
● 文件系统。Solaris操作系统实现了虚拟文件系统框架,通过它多个文件系统类型可以同时被配置到Solaris内核中。常规的、基于磁盘的文件系统、网络文件系统和伪文件系统在文件系统层实现。
● I/O总线和设备管理。Solaris I/O框架以层次结构模块实现了总线连接节点驱动程序(依赖于特定总线的体系结构,例如PCI总线)和设备驱动程序(总线上特定的设备,例如以太网卡),反映出总线/设备连接的物理布局。
图1-4 Solaris内核结构