编辑:在链接的重复问题中,答案是 shell = 命令行解释器。塔南鲍姆说事实并非如此。因此,链接的问题并不能解决我的问题:Tanenbaum 为什么这么说以及他暗示了什么样的“壳”?
阅读 Andrew S. Tanenbaum 的“现代操作系统”,第 3 版,第 10 页,1.2.2 下,我看到以下内容:
这些原始的控制卡是现代 shell 和命令行解释器的先驱。
我多年来一直每天使用 Linux,并且熟悉命令行解释器的概念,即 Bash、Sh、Tcsh、Zsh、Csh。现在,我一直确信“shell”等于“Bash”等于“命令行解释器”。另外,我知道我输入的命令会运行,结果会由属于上面列表的具体可执行文件返回给我。然而,塔南鲍姆将这些列为单独的类别。
因此,问题是:到底什么是“壳“,它与”有什么不同命令行解释器”,或者也许这两个概念只是在本书的上下文中有所不同?也许这里提到的是 GUI shell?
答案1
这是相当广泛的。
Shell 是用户和 Unix 内核之间的接口。
在过去,shell 与 CLI 类似,即sh
, csh
,tcsh
是 CLI。
如今,有了图形用户界面(X-window 的子级、苹果的 finder、amiga 的工作台),您无需了解即可运行主机ls
,因此在某种程度上 GUI 也可以称为“shell”。
然而,bash 和friend 属于CLI 和shell 系列,而Gnome、KDE 等都属于GUI 系列。
答案2
我也没有看到塔南鲍姆声称有类似的说法。例如,不同版本http://odi-tele.com/mirrors/tanenbaum/tanenbaum/Operating-System-Extended-Machine.html有这样的文字:
这些原始的控制卡是现代作业控制语言和命令解释器的先驱。
但我不知道这是 rev.4(猜测)还是更旧的版本,但看起来似乎很混乱,所以被更改了。