计算机文件系统中,根目录指文件系统的最上一级目录,它是相对子目录来说的;它如同一棵大树的“根”一般,所有的树杈以它为起点,故被命名为根目录。以微软公司开发的Windows操作系统为例:打开这台电脑(我的电脑、计算机),双击C盘就进入C盘的根目录。双击D盘就进入D盘的根目录。

不同操作系统上的根目录

Unix完全抽象了这个树层次结构的本质,在Unix类Unix系统中,根目录用/(斜杠)符号表示。虽然根目录通常称为/,但目录条目本身没有名称,它的名称是初始目录分隔符(/)之前的“空”部分。所有文件系统条目(包括已挂载的文件系统)都是此根的“分支”。

DOSOS/2Microsoft Windows下,每个分区都有一个驱动器号分配(比如C分区被标记为C:\),并且上面没有公共根目录。 DOS、OS/2和Windows确实支持更抽象的层次结构,其中分区可以挂载在另一个驱动器的目录中,尽管这个功能平时很少使用。这可以在DOS中就可以通过JOIN命令实现,该命令很早就被添加到DOS中,也可以在所有Windows版本中使用。在某些情况下,也可以引用包含所有已安装驱动器的根目录,但它不能直接包含文件,因为它在任何文件系统上都不存在。

在类UNIX操作系统中,每个进程都有自己的根目录。对于大多数进程,这与系统的实际根目录相同,但可以通过调用chroot系统命令调用来更改它。这通常用于创建隔离环境以运行需要传统库的软件,有时还可以简化软件安装和调试。 Chroot并不意味着用于增强安全性,因为内部的进程可以透过第二次chroot来获得足够权限,逃出chroot的限制。[1]FreeBSD提供了一个更强大的jail()系统调用,它支持操作系统层虚拟化,并且还用于安全目的,以限制进程可以访问文件系统层次结构的一个子集的文件。

参考文献

  1. ^ What chroot() is really for. Lwn.net. [2014-02-12]. (原始内容存档于2020-11-12).