今天看到有人问终端和控制台的区别,而且这个问题比较有普遍性,因此想抽出一点时间来解释一下这两个术语的区别。本人水平有限,本身也是从各种资料上看到的,难免有错,如果发现错误,请来信指正。
终端,英文叫做terminal ,通常简称为term
,比如我们在X下的xterm.控制台,英文叫做console。要明白这两者的关系,还得从以前的多人使用的计算机开始。大家都知道,最初的计算机由于
价格昂贵,因此,一台计算机一般是由多个人同时使用的。在这种情况下一台计算机需要连接上许多套键盘和显示器来供多个人使用。在以前专门有这种可以连上一
台电脑的设备,只有显示器和键盘,还有简单的处理电路,本身不具有处理计算机信息的能力,他是负责连接到一台正常的计算机上(通常是通过串口),然后登陆
计算机,并对该计算机进行操作。当然,那时候的计算机操作系统都是多任务多用户的操作系统。这样一台只有显示器和键盘能够通过串口连接到计算机的设备就叫
做终端。
而控制台又是什么回事呢?学机电的人应该知道,一台机床,或者数控设备的控制箱,通常会被称为控制台,顾名思义,控制台就是一个直接控制设备的台面(一个
面板,上面有很多控制按钮)。在计算机里,把那套直接连接在电脑上的键盘和显示器就叫做控制台。请注意它和终端的区别,终端是通过串口连接上的,不是计算
机本身就有的设备,而控制台是计算机本身就有的设备,一个计算机只有一个控制台。计算机启动的时候,所有的信息都会显示到控制台上,而不会显示到终端上。
也就是说,控制台是计算机的基本设备,而终端是附加设备。
当然,由于控制台也有终端一样的功能,控制台有时候也被模糊的统称为终端。计算机操作系统中,与终端不相关的信息,比如内核消息,后台服务消息,都可以显
示到控制台上,但不会显示到终端上。
以上是控制台和终端的历史遗留区别。现在由于计算机硬件越来越便宜,通常都是一个人独占一台计算机超做,不再连接以前那种真正意义上的“终端设备了”,因此,终端和控制台的概念也慢慢演化了。终端和控制台由硬件的概念,演化成了软件的概念。
现在说的终端,比如linux中的虚拟终端,都是软件的概念,他用计算机的软件来模拟以前硬件的方式。比如在linux中,你用alt+f1 ~ f6
可以切换六个虚拟终端,就好比是以前多人公用的计算机中的六个终端设备,这就是为什么这个叫“虚拟终端”的原因。当然,现在的linux也可以通过串口
线,连接一个真正的终端,现在这种终端设备已经非常罕见了,但是还存在,只是一般人很难见到。也有人利用以前的老电脑(386,486)装上一个串口通信
软件,连上一台计算机,来模拟一个终端来用。这样可以达到一台电脑多人使用的目的。
简单的说,能直接显示系统消息的那个终端称为控制台,其他的则称为终端。但是在linux系统中,这个概念也已经模糊化了。
比如下面这条命令:echo "hello,world" > /dev/console
这条命令的目的是将"hello,world"显示到控制台上/dev/console是控制台设备的设备名。在linux中,在字符模式下,你无论在哪
个虚拟终端下执行这条命令,字符hello,world都会显示在当前的虚拟终端下。也就是说,linux把当前的终端当作控制台来看待。可
见,linux中已经完全淡化了控制台和终端的区别。但是在其他的UNIX类系统中,却很明显的有虚拟终端和控制台的区别。比如freeBSD系统。
在freebsd中,只有第一个“终端”才是真正的控制台。(就是说按alt+f1得到的那个虚拟终端),你无论在哪个虚拟终端上执行上面的那条命令(哪
怕是通过网络连接的伪终端上执行这条命令)。hello,world字符总会显示到第一个“终端”也就是真正的控制台上。另外,其他的一些系统内部信息,
比如哪个用户在哪个终端登陆,系统有何严重错误警告等信息,全都显示在这个真正的控制台上。在这里,就明显的区分了终端和控制台的概念。其他UNIX中也
是这样的。比如Tru64 unix 在X下有一个控制台模拟软件,你无论在哪里输入echo "hello,world" >
/dev/console命令,hello,world总会显示在这个控制台模拟器中。我们在X界面下用的那些输入命令的软件,比如xterm
,rxvt,
gnome-terminal等等,都应该被称为终端模拟软件。请注意它和控制台模拟软件的区别。linux中好象没有控制台模拟软件。在X中的终端模拟
软件中输入的echo "hello,world">/dev/console
命令的输出信息,都会输出到启动该X服务器的虚拟终端上。比如,你用字符方式登陆系统。进入第一个虚拟终端,然后startx启动X服务器。再打开
xterm 来输入 echo "hello,world">/dev/console
命令,那么字符串hello,world就显示在第一个虚拟终端上。你按ctrl+alt+f1,回到那个启动X服务器的终端,就可以看到
hello,world字符串。
现在该明白终端和控制台的区别了吧。再简单的说,控制台是直接和计算机相连接的原生设备,终端是通过电缆、网络等等和主机连接的设备。
在以前的硬件终端设备中,由于生产厂家不同,所遵循的标准不同,因此有不同的型号标准。比如vt100等。这里的vt100就是一个标准,那么现在我们所
说的终端,往往不是真正的硬件终端了,而是终端模拟软件了,因此不同的终端模拟软件可能符合不同的标准,还有一些终端模拟软件符合很多种不同终端的标准。
比如gnome的终端模拟软件gnome-terminal,他提供好几中标准可供用户选择。用户只要设置一下就可以了。
现在,由于原先的这些设备在我们的视线中渐渐淡出,控制台和终端的概念也慢慢谈化。普通用户可以简单的把终端和控制台理解为:可以输入命令行并显示程序运行过程中的信息以及程序运行结果的窗口。 不必要严格区分这两者的差别。
分享到:
相关推荐
多个关键字请用空格分隔,最多填写5个。点击右侧Tag快速添加
10.6.2 与 PT 终端建立控制台会话.pka
对于正在华为3com网络工程师学习的的人来说,控制台测试程序必备资料,这部超级终端绝对优秀,质量保证,通俗易懂,结构严谨。
linux串口驱动开发的详细文档,讲述了串口驱动的配置,串口驱动刚接触的童鞋必看
Zigbee终端控制台,相同的程序分别用c++和java编写
欢迎使用Windows终端,控制台和命令行存储库此存储库包含以下源代码:Windows终端Windows控制台主机(conhost.exe)两个项目之间共享的组件ColorTool欢迎使用Windows终端,控制台和命令行存储库该存储库包含以下源...
hydrogen-launcher, 发射终端和jupyter控制台连接氢
利用串口终端作为Linux控制台,可以免去额外的键盘,显示卡和显示器,同时可将 Linux主机作为一个任意用途的嵌入式黑匣。 将串口终端连接到计算机的串口上并不困难,可以参考Linux的HOWTO文档和以及inittab和agetty...
xterm终端的Docker Web控制台
Linux终端控制台体系及串口驱动分析
linux下tty,控制台,虚拟终端,串口,console(控制台终端)详解实用.pdf
终端控制台中的日历生成器应用程序使用具有源代码功能的 Python 基本图形用户界面 该项目包含显示应用程序实际图像的基本 GUI。 基本功能 该项目包含使应用程序按预期工作的基本功能。 用户友好的界面 该项目是在一...
用于Jupyter内核的基于终端的控制台前端。 该代码基于单进程IPython终端。 用pip安装: pip install jupyter-console 使用conda安装: conda install -c conda-forge jupyter_console 开始: jupyter console ...
获取终端/控制台高度和宽度的可靠方法,因为并非在所有平台,环境和node.js版本上都以相同的方式计算或更新终端/控制台。 安装 使用安装: $ npm install --save window-size 用法 var size = require ( 'window-...
欢迎使用Windows终端,控制台和命令行存储库 该存储库包含以下源代码: Windows控制台主机( conhost.exe ) 两个项目之间共享的组件 显示如何使用Windows控制台API的 相关存储库包括: () 安装并运行Windows ...
讲述Linux 控制台参数,printk将信息输出到控制台的过程
使用带有源代码功能的Python在终端控制台中进行战舰战争游戏 基本图形用户界面 该项目包含显示应用程序实际图像的基本 GUI。 基本功能 该项目包含使应用程序按预期工作的基本功能。 用户友好的界面 该项目是在一个...
今天小编就为大家分享一篇python 执行终端/控制台命令的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
本文主要讲解了Linux系统下的终端、控制台、tty、pty简单介绍,虽然是基础内容但非常重要,大家一定要理解
查看godoc以获得一些示例用法:http://godoc.org/github.com/ttacon/chalk该api很干净,有默认的Colors和TextStyles可以混合使用粉笔Chalk是用于控制台/终端样式的go包输出。 查看godoc以获得一些示例用法:...