我真的不明白Linux中NetworkManager的意义。例如,为什么它会取代 Red Hat 中管理连接的旧方法?
答案1
主要是为了在有多种连接方法(许多不同的 Wi-Fi 网络、以太网、3G、蓝牙等)时使配置“正常工作”。
手动配置其中一些可能会很麻烦,特别是当您只是暂时需要它们时(例如在笔记本电脑上)。
当然,人们可以退回到旧的配置并手动或使用,例如system-config-network
(在 Red Hat 上)。还有其他网络配置工具(例如世界文化中心,尽管它不支持 3G 或蓝牙)可用。
答案2
这个问题确实很难回答,因为不同的人有不同的需求。对于某些目的,网络初始化脚本完全足够,但对于某些目的来说,它们不太实用,有些根本没有实现。
经典的 initscript 解决方案(包括 RH/Fedora 网络 initscript)通过在启动时或在管理员请求时配置接口来工作。没事儿。
initscript 解决方案通常与一些基于内核的触发器一起使用,这些触发器侦听内核事件(运营商事件、wifi 扫描结果等)并代表管理员执行任务。这是处理动态事件而不需要长时间运行的进程的好方法。
但即便是像 DHCP 客户端机器 initscript 解决方案这样的基本任务,也会启动长时间运行的守护进程。IPv6 路由器发现也是如此。情况甚至更糟,因为这些守护进程很难跟踪,因此开发人员通常会尝试避免向 initscript 解决方案添加新的动态功能。
大多数发行版现在都转向基于守护进程的网络配置解决方案,通常依赖于中央配置机构,该机构要么在一个进程中完成所有操作,要么正确启动和跟踪其他进程。对于 OpenWRT 用户来说是网络设备,对于简约网络设置的用户来说DHCPCD(尽管名称如此,但不仅仅是 DHCP 客户端),对于信息娱乐系统和一些笔记本电脑用户来说,它通常是康曼但对于大多数通用发行版来说是网络管理器。当然还有其他选择。
答案3
它是为了集成,好的旧方法太依赖资源而效率低下(文件编辑,服务重新启动..)。现在,事情正在与事件总线、共享 API 和类似的东西一起工作,所以出现了很多作为服务提供商的“管理者”。无论如何,如果您不使用改进的桌面管理器,您仍然可以手动完成所有操作。