什么是终端、控制台、Shell程序和内核()

作为新手, 在学习Linux时, 我们对诸如Terminal, Console, Shell和Kernel之类的术语的实际含义感到困惑。有时我们会混淆它们的用法, 这在技术上是不正确的, 因此清楚地掌握每个单词的实际含义以及应在何处使用它们非常重要。
1.终端:
对于具有Linux OS的用户, 当我们单击以打开名称为” Terminal” 的图标时, 将打开一个窗口, 因此简单来说, 矩形框或窗口称为终端。随着现代计算机的发明, 我们有了名为” Terminal” 的应用程序, 只需单击即可打开它, 但是在80年代, 它以前被称为” Terminal Emulators” , 它不是软件程序而是硬件, 是一种常规输入输出设备, 由键盘和监视器组成。现在, 这很混乱, 这就是一台计算机!但是不, 终端的目的不是要处理信息(像典型的计算机一样), 而是将命令发送到另一个系统。该终端是一个程序, 可为用户提供简单的命令行界面, 并执行以下两个任务:

  • 以命令的形式接受用户的输入
  • 在屏幕上显示输出
我们可以说终端是一个愚蠢的东西, 所以它不知道如何处理输入, 因此它需要另一个程序来处理它, 在大多数情况下, 它是Shell。
什么是终端、控制台、Shell程序和内核()

文章图片
什么是终端、控制台、Shell程序和内核()

文章图片
2.控制台:
【什么是终端、控制台、Shell程序和内核()】对于Windows OS, “ 控制台” 执行与终端相同的操作, 因此对于Windows OS, 我们可以说控制台是终端的别名。但是控制台不是直接打开的, 而是我们需要通过命令提示符打开, 然后在屏幕上打开控制台或矩形框。
什么是终端、控制台、Shell程序和内核()

文章图片
3.Shell
在终端上编写命令后, 当我们按Enter键时, 终端会将这些命令传递给另一个程序, 以弄清楚用户想要做什么, 并且在大多数情况下, 该程序是Shell, 它构成了Shell的外层。 Linux OS, 执行以下功能:
1.
解释最终用户给出的命令
2.
检查命令的语法, 然后检查命令是否被正确使用。
3.
如果一切正确, 则Shell会将命令转换为内核可理解的形式, 并将其传递给内核。
否则, 它返回一条错误消息
4.
$提示符出现在终端上, 等待下一个命令, 而不管先前的命令是否正确。
Shell是最终用户与内核之间的中介者或接口。我们可以选择各种Shell程序, 分别是TCSH, KSH, Seashell, Bash等, 但是大多数Linux系统和Mac上的默认程序是GNU Bash。
什么是终端、控制台、Shell程序和内核()

文章图片
什么是终端、控制台、Shell程序和内核()

文章图片
4.内核
这是一个计算机程序, 构成了Shell之后操作系统的最内部组件。只要Shell程序将用户的命令转换为内核可理解的形式, 内核便会借助其2个组件(分别是与应用程序软件和设备硬件交互的OS库和设备驱动程序)来负责执行命令。以下是电子C程序执行流的示例通过操作系统直到硬件:
应用程序软件:编写一个C程序, 该程序从键盘上获取输入
操作系统: Shell:执行程序的命令由最终用户给出
内核:从Shell程序获取解释的命令 操作系统库:read()函数, 由于scanf()调用而被调用。
键盘设备驱动程序:被调用
硬件:用户在键盘上输入输入
通过上表, 很明显, 内核充当了应用程序软件和硬件之间的接口。内存分配和处理器分配也将由内核处理。

    推荐阅读