Unix 文件系统:属性与权限深度解析
1. Unix 文件系统的容量与限制
在 Unix 系统中,文件系统的管理涉及到诸多限制和特性。首先,由于使用随机访问文件定位系统调用的现有软件都需要更新,这使得系统的升级并非易事。为避免大规模升级,大多数供应商允许在新系统中继续使用旧的 32 位大小,只要不超过 2GB 的限制即可。
当创建 Unix 文件系统时,出于性能考虑,通常会预留一定比例(约 10%)的空间供以 root 身份运行的进程使用。此外,文件系统本身需要空间来存储索引节点表(inode table),还有一些特殊的底层块只有磁盘控制器硬件才能访问。因此,磁盘的有效容量通常只有磁盘供应商标称容量的 80% 左右。
在某些系统中,可以使用特定命令来减少预留空间。例如,在 BSD 和商业 Unix 系统上可以查看 tunefs(8) 的手册页,在 GNU/Linux 系统上可以查看 tune2fs(8) 的手册页。
另外,ulimit 内置 shell 命令可以控制系统资源限制。使用 -a 选项可以打印所有资源的值。例如:
$ ulimit -a Show the current user process limits ... file size (blocks) unlimited ...不过,由于本地管理策略的不同,你的系统可能会有所差异。在一些 Unix 站点,还会启用磁盘配额(可查看 quota(1) 的手册页了解详细信息),这会进一步限制单个用户可占用的文件系统空间总量。