Plan 9 和 FreeBSD 都采用基于文件系统的方法来实现网络配置的统一用户空间接口。 这张纸例如,描述了为 FreeBSD 设计和实现的此类接口的优点,从安全性到可用性。
Linux系统上有类似的实现吗?如果没有,是否有特殊原因无法在 Linux 上完成/不可行?
答案1
Linux 不仅一“用于网络配置的统一用户空间界面”,它具有许多其中......每个都针对不同类型的用例进行了优化。
- 网络管理器您可能会发现它是当今大多数知名桌面和服务器发行版的默认设置。对于可能只需要一个带有 DHCP 或静态 IP 地址的有线网络接口的嵌入式系统来说,这有点过大了。如果我没记错的话,它的早期版本被广泛分发(我认为是由 Fedora 发布的)并受到了很多仇恨,因为它不是相当为那时的黄金时间做好准备。
- systemd-networkd包含在 systemd 软件套件中。它比 NetworkManager 更轻量级,显然最初是为嵌入式系统用例而设计的。我不认为它具有 NetworkManager 可以拥有的那种桌面环境集成。
- 网络计划由 Canonical(Ubuntu 的制造商)引入,作为底层使用的任何网络配置接口之上的一种上层管理层。它似乎在云服务提供商类型的环境中最有用,因为它可以提供统一的接口,以自动方式为多种类型的发行版部署网络配置
...还有很多其他人。
人们没有理由不能为 Linux 开发一个类似 NetFS 的系统:使用 FUSE 很容易实现,因为网络配置文件系统不太可能需要高性能。
但你知道:
另外,我不明白为什么要代表配置网络接口作为创建目录将特别有用。当然,它允许您重复使用相同的“动词”(命令),但代价是使您的“名词”概念(文件和目录,其中一些现在实际上是具有自己特殊规则的 IP 地址)。复杂的。
Unix 风格的操作系统之所以能长期受到青睐,很大一部分原因在于它的结构鼓励用户构建自己的“动词”(shell 别名、脚本、自定义程序)来满足他们的需求。在我看来,试图回到最少的“动词”集而不是开发适合任务的最佳“动词”是没有抓住要点的。
这也让我想到锤子定律:“如果你唯一的工具是一把锤子,那么你很容易把所有东西都当作钉子来对待。”