在看《orange‘s,操作系统的实现》这本书的时候,第七章同时出现了tty和console这两个名词。我查了一些网页,但都解释不清,结合自己的思考,给出了一些理解。
tty,包括鼠标、键盘、触摸屏等,它们都是字符设备,通常用来输入。
console,它的作用是用来显示结果的,通常console是显示屏,它只能输出,不能输入。
terminal的作用是与用户交互的,因此可以接收tty设备的输入。包括一套可以显示出来的图形界面来接收输入,再外加对这些输入的基本处理。
windows开机后的界面就是我们面临的一个terminal,这个界面提供了一套对鼠标单击、双击、、拖动、敲击键盘等的支持,并且支持双击打开各种应用程序,并将结果通过屏幕显示给我们看到。
在linux中,terminal比较直观的例子,是命令窗口。而console的直观例子就是显示屏。我们在命令窗口中敲命令,就会在屏幕上得到显示。比如ls以下,能看到文件夹中的内容,这是显示在屏幕上的。
我们可以简化理解为:通常情况下,terminal接收tty的输入,并且进行处理,结果通过console来显示。
需要说得是:这三个词都可以翻译为终端,因此linux下很难区分这三个概念,特别混乱。