我对“外壳”一词感到好奇。我想我知道它是什么(尽管“ shell”和“ terminal”之间的区别仍然很模糊),但是为什么选择“ shell”这个词来描述这种程序呢?
这看似无关紧要,但通常当“选择”一词使我困惑时,就表明我的理解存在差距。
我对“外壳”一词感到好奇。我想我知道它是什么(尽管“ shell”和“ terminal”之间的区别仍然很模糊),但是为什么选择“ shell”这个词来描述这种程序呢?
这看似无关紧要,但通常当“选择”一词使我困惑时,就表明我的理解存在差距。
Answers:
该Multics的词汇可以提供线索。这样定义了外壳:
Multics命令处理器以前称为外壳程序。该程序通过命令行传递给侦听器执行;它将行解析为命令名称和参数,找到并启动命令,然后使用PL / I字符串作为参数调用命令程序。通过调用cu_ $ set_cp(请参见缩写),用用户提供的程序替换默认的系统提供的外壳很简单。Unix Shell在Multics的意义上包含了Shell和侦听器的概念。
从词源和隐喻上来说,shell和侦听器之间的关系都是有意义的[1]。
[1]“因为贝壳是权威,言语和听觉的象征,也就是说,是预言的象征……”
来自http://en.wikipedia.org/wiki/Thompson_shell#History
“命令行解释器的名称“ shell”和使外壳成为操作系统内核之外的用户程序的概念是在Unix的前身Multics中引入的。”
在Wikipedia兔子洞的更下方找到了这个地方:“ Louis Pouzin,介绍了Multics中使用的命令语言的术语shell”。
我没有完整阅读它,但是他在这里的文字可能会给您答案:http : //www.multicians.org/shell.html
编辑:确实没有解释。他只是“创造”了这个词。不是您想要的有趣故事,不是吗?
答案似乎在这里:
历史记录:显然,最初的Multics外壳(意义1)之所以被称为是因为它是一个外壳(意义3)。它不是通过启动单独的进程来运行用户程序,而是通过将程序动态链接到其自己的代码,将它们作为子例程调用,然后在返回时动态取消链接来运行用户程序。VMS命令解释器仍会执行类似的操作。
- 维基百科
即,“ shell”是Unix的前身Multics如何运行程序的一个很好的现实世界类比。
据我了解,“外壳”是我们现在称为“主要用户界面”的较旧术语。现代的类似术语是“桌面环境”,因为实际上所有现代系统实际上都使用桌面隐喻。
内核是系统的核心,而外壳围绕着它,并且是内核与用户之间的接口。
在任何UNIX系统中,甚至在Linux系统中,shell都是系统管理员用来配置和管理系统的地方。
现代术语通常使用术语CLI或命令行界面来描述shell提示。这与GUI或图形用户界面有关。但是,任何真正的Sysadmin都知道您不应该使用GUI工具来配置UNIX / Linux,而只能直接在shell命令提示符下工作。
如今,当我们听到一些初级Linux爱好者说诸如“我使用linux,但我还没有真正了解CLI”之类的信息时,这一点就显得尤为重要。
正如老话所说:“如果无法在shell提示符下执行此操作,则无法执行。”