首 页 | 网络测试 | 网络市场 | 网络技术 | 业界动态 | IT文摘 | 服务中心 | 网速测试 | IP查询 | 发布广告 | 什么是测试点

黄金文字广告位火热
招租中,小小投入,
意想不到的效果!  
欢迎投放广告。

  o 您现在的位置:首页  -> 网络技术 -> 技术前哨 -> 正文

 

认识FreeBSD操作系统结构


世界网络教研室整理

5 磁盘组织

FreeBSD 查找文件的最小单位是文件名。 而文件名区分大小写,这就意味着 readme.txt 和 README.TXT 是两个不相同的文件。 FreeBSD 不凭文件扩展名 (.txt) 去识别这个文件是 程序、 文档, 或是其他格式的数据。

各种文件存放在目录里。 一个目录可以含有许许多多的文件,允许含有其他的目录,同样允许您添加不同层次的目录在里面。 可以轻松地组织您的数据。

可以通过文件或目录名来指定文件和目录, 在目录名后面加上一个斜线, /, 如果需要的话。 如果您有一个名为 foo 的目录, 它包含另一个目录 bar, 后者包括一个叫 readme.txt 的文件, 则全名, 或者说到文件的 路径 就是 foo/bar/readme.txt。

在文件系统里目录和文件的作用是存储数据。 每一个文件系统都有且只有一个顶级目录 根目录, 这个根目录则可以容纳其他目录。

您也许在其他的一些操作系统碰到类似这里的情况, 当然也有不同的情况。 举些例子, MS-DOS® 是用 \ 分隔文件名或目录名, 而 Mac OS® 则使用:。

FreeBSD在路径方面不使用驱动器名符号或驱动器名称, 在FreeBSD里您不能这样使用: c:/foo/bar/readme.txt。

为了代替(驱动器名符号), 一个文件系统会指定 根 文件系统,根文件系统的根目录是 /。 其他每一个文件系统 挂接在根文件系统下。 无论有多少磁盘在FreeBSD 系统里,每个磁盘都会以目录的方式加上。

假设您有三个文件系统, 名为 A、 B 和 C。 每个文件系统有一个根目录,而各自含有两个其他的目录, 名为 A1, A2 ( B1, B2 和 C1, C2)。

看看 A 这个根文件系统。 假如您用 ls 命令来查看这个目录您会见到两个子目录: A1 和 A2。 这个目录树是这个样子:

一个文件系统必须挂到另一个文件系统的某一目录, 所以现在假设把 B 文件系统挂到 A1目录, 那 B 根目录因此代替 了 A1,而显示出 B 目录(的内容):

无论B1 或 B2 目录在那里而延伸出来的路径必须为 /A1/B1 或 /A1/B2。 而在 /A1 里原有的文件会临时隐藏。 想这些文件再出现把 B 从 A 挂接释放。

把 B 挂接在 A2 那图表的样子就是这样子:

这个路径分别是 /A2/B1 和 /A2/B2 。

文件系统能把顶部挂接上另一个文件系统上。 继续这个例子, 把 C 文件系统挂接在 B 文件系统里的 B1 目录, 排列如下:

或者把 C 文件系统挂接在 A 文件系统里的A1目录:

假如您熟悉 MS-DOS 并知道 join 命令, 尽管不相同,其实是相似的。

这方面不是普通知识而且涉及到您自己所关心的, 当您安装FreeBSD并在以后添加新磁盘时,您必须知到该如何新建文件系统和挂接上。

(FreeBSD系统)它有一个主要的根文件系统, 不需要另外新建立,但当需要手工处理时,这是一个有用的知识。

多样性文件系统的益处

• 不同的文件系统可用不同的 挂接参数。 举些例子, 仔细想一下,根文件系统能用只读的方式挂接上, 防止不经意删除或编辑到一个危险的文件。把各用户能写入的文件系统分开, 像/home这样,由另外的文件系统分别用 nosuid 参数挂接,这个参数防止 suid/guid 在执行这个文件系统中的文件时生效, 从而缓解了一些安全问题。

• FreeBSD 对一个文件系统的文件布局自动优化, 并依赖文件系统的使用习惯。所以一个文件系统应有一个针对大量小型文件频繁写入的优化,另外大型文件系统的优化也应落实。

• FreeBSD 的文件系统能够在断电时尽可能避免损失。 然而,在关键点时的电源失效仍然可能会破坏文件系统的结构。 将您的文件系统分成多个有助于分散风险,并方便备份和恢复。

统一文件系统的益处

• 文件系统是固定大小的。 当安装FreeBSD时新建一个文件系统并设定一个大小,您会在稍后发觉到必须去建一个大的分区。 如果配置不当, 则需要备份、 重新创建文件系统,然后再恢复数据。

重要: FreeBSD 提供了 growfs 命令。这使得能够实时地调整文件系统的大小, 因而不再受其限制。

文件系统是和分区一一对应的。 这里的分区和常用的术语分区 (例如, MS-DOS 分区) 的意思并不一样, 这是由于 FreeBSD 的 UNIX® 传统造成的。 每一个分区使用一个从 a 到 h 的字母来表示。每个分区只能包含一个文件系统,这意味着文件系统通常可以由它们在文件系统目录结构中的挂接点, 或对应的分区字母来表示。

FreeBSD 的 交换分区 也需要使用磁盘空间。 交换分区是给 FreeBSD 作 虚拟内存 使用的,这样能令您的计算机有更多的内存可使用, 当FreeBSD在运行而内存不够的时候,它会把其他一些可转移的数据转移到交换分区, 空出内存的位置以供使用。

某些 partitions 的用途是确定的。

分区 约定
a 通常指定为根文件系统
b 通常指定为交换分区
c 通常它和所在的 slice 大小相同。 c 分区上工作时必定会影响到事整个 slice (举个例子,坏块扫描器)。您通常不愿意在这个partition建立文件系统。
d 分区 d 曾经有特殊的含义,不过这种意义在现时的系统上已不再适用, 因此 d 可以和任何其它普通的分区一样使用了。

每一个包含了文件系统的分区被保存在 FreeBSD 称为 slice 的部分上。 Slice 是一个 FreeBSD 术语, 通常被叫做分区, 再次强调, 这是由于 FreeBSD 的 UNIX 背景。 Slices 有其编号, 从1到4。

Slice 编号在设备名后面, 并有一个 s 前缀, 从 1 开始。因此 “da0s1” 是第一个 SCSI 驱动器的第一个 slice。 每个磁盘上只能有四个物理的 slices, 但您可以在物理 slice 中使用适当的类型来创建逻辑 slice。 这些扩展 slice 编号从 5 开始, 因此 “ad0s5” 是第一个 IDE 磁盘中的第一个 扩展 slice。 文件系统所使用的设备应该占满 slice。

Slices, “专项指定” 物理驱动器, 和其他驱动器都包含partitions, 那几个的partitions都是用字母从 a 到 h来标定的,而这些字母都在驱动器名字之后,所以 “da0a” 是指首个da设备的 a partition, 而那个就是 “专项指定”。 “ad1s3e” 是指IDE磁盘第三个slice的第五个partition。

从在系统里的首个IDE磁盘图表可以显示出FreeBSD的见解。假设磁盘大小为4 GB,它里面包含了两个2 GB 大小的slices (但在MS-DOS叫partitions)。 首个slice是一个MS-DOS磁盘叫C:,而第二个slice是FreeBSD配置好的slice。 FreeBSD配置好的slice有三个partitions和另一个交换分区。

这三个partitions各自控制一个文件系统。 partitiona 用于根文件系统, partitione 用于 /var 目录层, partitionf 用于 /usr 目录层。

[1][2][3][4][5][6][7][8][9]