15 FreeBSD连载:文件的属性

文件系统与磁盘操作文件在Unix下是一个非常重要的概念,Unix下不但使用文件来保存数据,而且使用文件来保存目录信息、表示硬件设备等 。Unix的文件名对大小写敏感,例如 “FOO” 和 “foo” 是两个不同的文件,而且文件名可长达255个字符 。
文件是按照分级的形式组织起来,每一级称为一个目录,其内容使用一个特殊的目录文件保存,而第一级目录为根目录,这就形成了一种树状结构,最下面是根目录 “/”,根目录下放有普通文件和其子目录,如: “/usr/” 、“/var/” 等,而在不同的子目录下又有自己的文件和子目录 。
/目录:目录树的根,用于保存系统的内核文件和系统启动文件,它所在的文件系统为根文件系统 。
/dev目录:用于保存系统的设备文件,占用大致固定的硬盘空间,位于根文件系统中 。
/etc目录:用于保存系统的配置文件,包括passwd,rc等非常重要的文件,也被放置到根文件系统中 。
/bin和/sbin目录:保存了用于系统维护目的的执行文件,其中/sbin中的文件通常直接用于系统维护,/bin为提供管理员使用系统的基本工具 。也必须放置在根文件系统上,在系统运行在单用户模式时,只有根文件系统安装到系统上时,就能够运行这些程序进行系统维护任务 。
/tmp目录:用于存放程序运行产生的临时文件,这个目录也是每个用户都可写的,在系统启动时将自动清空这个目录 。当系统运行较大型的服务程序时,会要求较大的/tmp空间,会超过根文件系统的空间,因此可以在其他文件系统中创建另一个临时文件目录,使用符号连接等方法进行维护 。
/usr目录:用于保存系统正常运行时使用的多种文件,其中/usr/bin放置系统执行文件,/usr/sbin放置系统维护程序,/usr/local放置非标准的应用程序,/usr/share放置系统中的文档和其他数据文件,/usr/src中放置系统的源代码,/usr/X11R6放置X Window系统、应用程序和数据文件 。由于这些内容非常多,/usr目录通常为一个单独安装的文件系统,占用一个硬盘分区,称为usr文件系统 。随着系统任务的增长,/usr目录中的内容也会迅速增多,还要考虑将其较大的子目录分离出来,例如/usr/local目录 。
/var目录:用于保存系统运行时产生和使用的数据文件,例如/var/log目录用于放置系统日志,/var/db/pkg目录用于放置系统软件包的安装记录 。很多应用程序也使用它来放置数据文件,如news服务器等 。这个目录下文件会随系统的运行而不断变化,其中的很多文件会不断增大,占用大量的磁盘空间 。应该将这个目录分离出来,这样即使某个进程在这个目录下没有限制的产生数据文件,填充整个文件系统,也不会影响其他目录下的数据存储,例如用户在自己目录下的数据存储 。由于/var目录的大小会随着应用程序的需要改变,对于提供网络服务的服务器,/var占用磁盘分区应该大一些 。
/home目录:使用它用于维护用户的个人目录,它的大小由用户数量及用户的活跃程度决定,也需要有足够的空间才能提供正常的服务 。通常这个目录保存在usr文件系统中,而在根目录下使用连接来维护 。当用户数量增加的很多的时候,应该让它位于一个单独的文件系统中 。
这些目录开始就设计为保存不同的数据,而各个目录会使用不同的磁盘分区 。习惯于Dos/Windows的使用者会不习惯这种使用多个文件系统的方式,而只使用一个文件系统,这种做法是不对的 。多文件系统可以用于分隔不同的任务,分隔系统风险,增加可靠性,对于用作服务器的FreeBSD系统是必需的 。
Unix的树状目录结构十分标准,那类文件应该放置到那个目录中都有一定的习惯 。当然在不同的Unix中,具体文件的位置也有细微的差别,事实上在Unix发展的过程中,标准目录树结构的也有几次较大的改动,但是基本结构是相同的 。由于FreeBSD有统一的版本,所有的开发者都使用同一个源代码树,而且使用统一的Packages Collection机制来维护应用软件,因此FreeBSD的目录结构更为整齐、干净 。

推荐阅读