如果任何 Nix 系统都有 3 层,那么 Web 服务器位于哪里?

如果任何 Nix 系统都有 3 层,那么 Web 服务器位于哪里?

我是 Linux 新手。我想这里的每个人都知道 Dennis Ritchie 的 Unix 基本层次结构:内核、Shell 和实用程序。

假设服务器包(例如 LAMP)不是内核的一部分,也不是其 shell(服务)的一部分,那么它实际上位于哪一层?

我不会说这些是实用程序,因为它们有自己的实用程序来控制它们(在 shell 终端或 shell GUI 中,它们本身就是实用程序)。

因此,我得出的结论是,服务器软件实际上位于 shell/实用程序层“之间”的某个位置,如果我们遵循 Ritchie 的层次结构,您认为这是正确的吗?

答案1

内核和用户(用户=非内核)之间的区别非常明显:它们具有不同的接口,它们运行在不同的处理器模式下,...

用户领域内的进一步分离并不那么清晰。 shell 是一个程序,其工作是运行其他程序。根据这个定义,Web 服务器可能是也可能不是 shell,具体取决于它的用途:提供静态文件的 Web 服务器不是 shell,运行 Web 应用程序的 Web 服务器是 shell。

我的建议是不要太重视这个层次结构。它在特定环境(典型的 20 世纪 70 年代早期计算机)中有意义,但它不是一个普遍有用的概念。

答案2

我不熟悉 Ritchie 的分层,但一般来说,如果一个层依赖于另一个层,你会将事物放入单独的层中。在 UNIX/Linux 中,一切都取决于内核,因此它应该位于 shell/utilities/server 下面的一层。但 Web 服务器和 shell 是相互独立的(大多数情况下,尽管服务启动/停止也需要 shell)。一般来说,分层是一种主观的结构化机制,并不总是只有一个正确的答案。

相关内容