为什么用“ shell”一词来描述命令行界面?


28

我对“外壳”一词感到好奇。我想我知道它是什么(尽管“ shell”和“ terminal”之间的区别仍然很模糊),但是为什么选择“ shell”这个词来描述这种程序呢?

这看似无关紧要,但通常当“选择”一词使我困惑时,就表明我的理解存在差距。


终端是设备或I / O管道。外壳程序是一个可执行程序,它以交互方式实时地从终端接收用户输入,然后根据该程序执行操作。从技术上讲,无需直接交互使用的“外壳”是某种形式的脚本解释器。
LawrenceC

Answers:


8

Multics的词汇可以提供线索。这样定义了外壳:

Multics命令处理器以前称为外壳程序。该程序通过命令行传递给侦听器执行;它将行解析为命令名称和参数,找到并启动命令,然后使用PL / I字符串作为参数调用命令程序。通过调用cu_ $ set_cp(请参见缩写),用用户提供的程序替换默认的系统提供的外壳很简单。Unix Shell在Multics的意义上包含了Shell和侦听器的概念。

从词源和隐喻上来说,shell侦听器之间的关系都是有意义的[1]。

[1]“因为贝壳是权威,言语和听觉的象征,也就是说,是预言的象征……”



10

来自http://en.wikipedia.org/wiki/Thompson_shell#History

“命令行解释器的名称“ shell”和使外壳成为操作系统内核之外的用户程序的概念是在Unix的前身Multics中引入的。”

在Wikipedia兔子洞的更下方找到了这个地方:“ Louis Pouzin,介绍了Multics中使用的命令语言的术语shell”。

我没有完整阅读它,但是他在这里的文字可能会给您答案:http : //www.multicians.org/shell.html

编辑:确实没有解释。他只是“创造”了这个词。不是您想要的有趣故事,不是吗?


3
不尽人意,但是有时候就是这样。
埃里克·威尔逊

10

也许是因为它是表面,将内核屏蔽了用户?因此,内核将是外壳内的珍珠。


我一直听说外壳是保护层,可将用户与内核隔离。
Glorytoad11年

1

答案似乎在这里:

历史记录:显然,最初的Multics外壳(意义1)之所以被称为是因为它是一个外壳(意义3)。它不是通过启动单独的进程来运行用户程序,而是通过将程序动态链接到其自己的代码,将它们作为子例程调用,然后在返回时动态取消链接来运行用户程序。VMS命令解释器仍会执行类似的操作。

- 维基百科

即,“ shell”是Unix的前身Multics如何运行程序的一个很好的现实世界类比。


维基百科不是源。将其用作一体,会导致循环采购,即Wikipedia将站点用作其源,而本身又将Wikipedia用作源。就目前而言,这纯粹是猜测。
Evi1M4chine

0

据我了解,“外壳”是我们现在称为“主要用户界面”的较旧术语。现代的类似术语是“桌面环境”,因为实际上所有现代系统实际上都使用桌面隐喻。


1
有很多重叠,但这并不完全正确。每个外壳都是用户界面。但并非每个用户界面都是外壳。外壳是主要的用户界面,围绕着一切,一切从此开始。它是操作系统的主要用户界面。
Evi1M4chine

-2

内核是系统的核心,而外壳围绕着它,并且是内核与用户之间的接口。

在任何UNIX系统中,甚至在Linux系统中,shell都是系统管理员用来配置和管理系统的地方。

现代术语通常使用术语CLI或命令行界面来描述shell提示。这与GUI或图形用户界面有关。但是,任何真正的Sysadmin都知道您不应该使用GUI工具来配置UNIX / Linux,而只能直接在shell命令提示符下工作。

如今,当我们听到一些初级Linux爱好者说诸如“我使用linux,但我还没有真正了解CLI”之类的信息时,这一点就显得尤为重要。

正如老话所说:“如果无法在shell提示符下执行此操作,则无法执行。”


我因说实话而被否决。嗯...
Colinux
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.