Sun是最早的工作站厂商,一直在UNIX工作站领域不断发展。其操作系统SunOS是基于4.2BSD开发的,直到SunOS 4。但是在此之后,Sun将操作系统的开发工作转向了System V。这个新版本为Solaris 2,或者称为SunOS 5,因此也可以将SunOS 4称为Solaris 1.0,但是SunOS 4与Solaris 2分属两个流派,其中的差别是比较大的。值得一提的是,Sun的版本号从Solaris 2.6之后发生了改变,Solaris 2.7的版本号直接变成了Solaris 7,把前面的“2”取消了。Sun Solaris主要针对Sun的处理器Sparc来开发,但是也开发了用于x86平台上的系统Solaris x86。与运行在工作站上的Solaris相比,Solaris x86的性能要差很多。
分区是一个文件
在5.1节中介绍过UNIX系统的特点,其中一点说道:“所有的事物,包括硬件本身,都是文件”,当然分区也不例外。
在UNIX系统中,分区同样也是一个文件。
UNIX并不像Windows那样使用驱动器名如“C:”、“D:”来表示分区。在整个UNIX系统上,不管有多少个硬盘、多少个分区,系统下只有一个根目录,叫作“root”,并标记为“/”。
root下任何一个子目录,都可以是一个硬盘或一个分区,而且可以随时改变。
下面就以Solaris为例,谈谈UNIX的路径组织结构。
系统中最高一级目录是根目录,即“/”。Solaris系统中有一些固定的默认子目录,如硬盘设备文件存储在/dev目录下,字符设备文件存于rdsk子目录下,块设备文件存在dsk子目录下。表5-1是Solaris系统中常用的默认目录。
表5-1 Solaris系统中常用的默认目录
默认目录 | 描述 |
/ | 根目录,整个文件系统结构的开始 |
/dev | 包含诸如磁盘、键盘、显示器、磁带机等本地设备的驱动程序 |
/export/home或/home | 用户起始目录的挂载点,用户目录用于存储用户的工作文件。默认情况下,/home目录是自动挂载的文件系统。在独立系统上,/home目录可能是本地磁盘分区上的UFS文件系统 |
/usr | 可以与其他用户共享的系统文件和目录,包含系统的一些命令、工具、库文件等 |
/etc | 包含系统配置文件,如用户口令等 |
/opt | 第三方软件的可选挂载点 |
/var | 保存经常变化的文件,包括系统日志、vi和ex备份文件以及uucp文件等 |
/kernel | 包含系统结构的kernel文件 |
/tmp | 临时文件,每次引导系统或取消挂载,/tmp将会删除这些文件 |
图5-1详细描述了一个Solaris系统下的树形目录结构。
图5-1 Solaris系统下的树形目录结构
分区的命名
在之前学习的系统中,把硬盘内划分的一个个区域称为分区(Partition),但是在Solaris系统中,硬盘内的这些区域被称为“切片(Slice)”。
在随后对Solaris系统结构的讲解中,我们将使用“切片”表示Solaris系统的分区,请读者记住并习惯这种称呼。
在安装Solaris系统时,系统会在硬盘上创建一个磁盘标签,磁盘标签中就会描述该硬盘的切片数量及每个切片的地址、大小等信息,这个结构称为切片表。在切片表中有多个切片表项,每个切片表项描述一个切片。
在Solaris Sparc架构下,一块硬盘可以有8个切片,被描述为切片0~7;而在Solaris x86架构下,一块硬盘最多可以有16个切片,被描述为切片0~15。
UNIX系统引导之后,并不像Windows那样能够直接识别和访问硬盘中的分区,UNIX还需要把分区挂载(Mount)之后才能访问。下面列举一个在Solaris中挂载一个切片的例子。例如将切片/dev/dsk/c0t3d0s4挂载到/export/home目录上,具体命令为:
# mount/dev/rdsk/c0t1d0s4/export/home
在上面的例子中,“/dev/dsk/c0t3d0s4”是一个硬盘逻辑设备的命名结构,其中“/dev”是指设备目录,“/dsk”是指原始磁盘设备子目录,“c0t3d0s4”是一个具体的切片。Solaris对一个切片的命名规则如cwtxdysz,其结构的具体含义为:
- cw即Controller Number,指控制器号,标识被硬盘控制的加到系统上的逻辑顺序。c0代表第一个硬盘控制器,c1代表第二个硬盘控制器,以此类推。
- tx即Target Number,指目标号,是位于控制器内的地址,通常在外围设备的背面能找到目标号。
- dy即Disk Number,指硬盘号,代表连接在目标上的设备的逻辑单位号。d0代表第一个硬盘,d1代表第二个硬盘,以此类推。对嵌入式SCSI控制器,硬盘驱动号总是0。
- sz即Slice Number,是指切片号。s0代表第一个切片,s1代表第二个切片,以此类推。
在Solaris系统中,每一个切片都必须挂载到某个目录下才能访问,而在Solaris磁盘标签的切片表中,每个切片表项所描述的切片与切片的挂载点一般有一个固定的对应关系,比如0号切片表项所描述的是挂载在根目录下的切片,即存储操作系统的文件及目录的切片。切片表项与切片挂载点的对应关系见表5-2。
表5-2 切片表项与切片挂载点的对应关系
切片表项 | 挂载点及说明 | 切片表项 | 挂载点及说明 |
0 | 根切片,存储操作系统的文件和目录 | 4 | /export/swap/切片 |
1 | Swap切片,提供虚拟内存或交换空间 | 5 | /opt/切片 |
2 | 整个磁盘,包括磁盘标签和所有的切片 | 6 | /usr/切片 |
3 | /export/切片 | 7 | /home/切片 |