答案1
/etc/fstab
比 XML 和 JSON 要古老得多,而且很多程序都在使用它,因此更改其格式将是一场噩梦。
此外, /etc/fstab
由于它用于挂载所有必要的文件系统,因此需要在系统正常运行之前对其进行解析。因此,格式/etc/fstab
应尽可能简单,因为解析器不应依赖任何外部库。
解析 XML 相当困难,如果无法依赖外部库,您确实需要避免它。JSON 稍微容易一些,但仍然相当困难。
的语义/etc/fstab
非常简单,它们不包含任何树状数据结构或任何其他花哨的东西。您所需要的只是由六个值组成的记录。
空格分隔的值已经足够好了,而且即使您只有 C 标准库,它们也很容易解析。
因此没有理由使用 JSON、XML 或类似的东西。
答案2
你真的应该读一下 Eric Raymond 的Unix 编程艺术有时。你似乎假设 Unix 设计者/etc/fstab
如果知道 XML 的话就会使用它。相反,尽管 XML 当时还没有被发明,但他们很清楚它的类似前身,并且故意地拒绝了他们的配置文件,例如/etc/fstab
。
引用他的XML 小节:
XML 非常适合复杂的数据格式(对于这种格式,老式 Unix 传统会使用类似 RFC-822 的节格式),但对于较简单的格式来说就有些过头了。它尤其适合具有复杂嵌套或递归结构的格式,而 RFC 822 元格式无法很好地处理这种结构。
以及更下方的内容:
XML 最严重的问题是它与传统的 Unix 工具不兼容。想要读取 XML 格式的软件需要 XML 解析器;这意味着程序庞大而复杂。此外,XML 本身也相当庞大;在所有的标记中很难看到数据。
Unix 的理念是尽可能使配置易于编写脚本并易于阅读。您应该能够使用 awk、grep、sed、tr 和 cut 等工具处理配置文件,并轻松地使用脚本语言解析它们,而无需庞大的库。这是 Unix 成功的一个重要原因,不应低估。
尽管 Eric Raymond 称赞 XML 能够处理“具有复杂嵌套或递归结构的格式”,但 XML /etc/fstab
当然不需要这些结构,因此选择了最简单的文件格式。
因此,尽管 XML 确实有其用途,但您可能要考虑一下,世界上一些最聪明的程序员,他们是该领域的先驱,可能知道他们在做什么。也许 XML 并不总是最适合您自己的配置文件。
答案3
我现在能想到的主要原因是:
- 该
fstab
文件最常用的mount
命令是 mount
命令的历史可能在 1985 年之前开始- XML 成为 W3C 推荐标准1998 年 2 月 10 日