为什么Linux在这么多不同类型的计算机(台式机,笔记本电脑,服务器,嵌入式设备,移动电话等)上运行良好?是否主要是因为系统是开放的,所以可以对其一部分进行修改以在不同的环境中工作?还是Linux内核和/或系统的其他属性可以使该OS轻松在如此广泛的平台上工作?
为什么Linux在这么多不同类型的计算机(台式机,笔记本电脑,服务器,嵌入式设备,移动电话等)上运行良好?是否主要是因为系统是开放的,所以可以对其一部分进行修改以在不同的环境中工作?还是Linux内核和/或系统的其他属性可以使该OS轻松在如此广泛的平台上工作?
Answers:
尽管开放性当然是其中的一部分,但我认为关键因素是Linus Torvald坚持认为,只要做得好,所有工作(无论大小)都可以在主线Linux内核中占有一席之地。如果他决定在某个时候划一条线并说“好的,对于那种花哨的超级计算机硬件,我们需要一把叉子”,那么可能已经开发出完全分离的高端和小型系统变体。实际上,人们已经做了更加艰苦的工作,以使它们都可以相对良好地协同工作。
而且,通常不允许出现使一方不利于另一方的丑闻,这再次迫使人们以更困难但更正确的方式解决问题,事实证明,通常更容易解决问题一旦有任何需要,克拉奇便成为历史脚注。
问:Linux是通用系统。它提供PC,大型服务器,移动设备以及十多种其他设备。从您的特权位置来看,Linux将在哪个领域发挥最大的潜力?
答:我认为Linux的真正力量恰恰是它与一个利基市场无关。每个人都可以一起玩,不同的人和不同的公司在对他们重要的事情上有着完全不同的动机和信念。所以我什至对任何一个特定领域都不感兴趣。
Linux可扩展到许多不同类型的硬件,因为:
fork
是可能的,并且fork
不能在非虚拟内存系统上合理有效地完成。虽然所示的端口可能使用了Linux内核的一部分,并且可以运行某些Linux软件,但在大多数情况下,这些端口公开的API似乎与典型的Linux内核不同。(示例:内存映射-显然需要虚拟内存)
Linux Kernel可以很好地扩展,因为这就是事实。核心内核相对较小,可以完成所需的工作。设备驱动程序是可选的,对于较小的系统,可以不包含在内核中。除了最低内核要求之外,大多数功能都作为可选功能实现。
看一下安装在大多数内核旁边的配置文件。它将列出所有已打开的功能以及支持的驱动程序。
支持将驱动程序嵌入内核或作为可加载模块。这样可以将内核动态配置为运行它的硬件。这是许多发行版使用的方法。
除了拥有编译工具之外,为新硬件修改内核相对简单。对于新处理器,仅需要将相关代码实现为对现有功能的修改。新设备仅需要带有相关挂钩的新驱动程序。新文件系统同样是相对琐碎的修改。
代码库已得到很好的维护,以保持这种灵活性而无需外部分支。条件编译驱动了一个非常灵活的内核,该内核已被保持在最小限度内。
我缺乏详细的技术专长来支持此答案,但是我的经验表明,与我经常使用的其他操作系统(主要是Windows)相比,Linux具有很好的扩展性。因此,也许的问题是,为什么Windows的扩展性不如Linux。
如果以这种方式重申这个问题仍然对您有用,我建议市场力量鼓励Microsoft添加与最新,功能最强大的硬件相对应的功能,因为它们主要在最终用户购买新系统时出售更多的操作系统副本。 。因此,在任何时间点,我都发现最新版本的Windows在较旧的,功能较弱的硬件上的性能较差。
如果这简化了您的问题,请原谅我。