pts与tty
在使用ubuntu的时候,如果输入ps –e ,会出现:
2358 pts/0 00:00:00 su
2368 pts/0 00:00:00 bash
2789 tty1 00:00:00 bash
2837 ? 00:00:00 gnome-terminal
2838 ? 00:00:00 gnome-pty-helpe
2839 pts/1 00:00:00 bash
2873 pts/2 00:00:00 bash
2905 pts/0 00:00:00 ps
之类的信息,其中tty1和pts/0是何东东?
在计算机的发展史上,关于人机接口,有2个主要概念,一个是终端;另一个是控制台
终端分为 字符哑终端 和 图形终端
控制台 是另外一个人机接口,不通过终端与主机相连, 而是通过显示卡-显示器和键盘接口分别与主机相连。
在PC机上,没有终端的概念,仅有控制台,而且是1个。
我们所看到的这些tty1-7和pts/0实际上都是虚拟的终端,由getty来虚拟的。而tty7是由Xorg来管理的,如下:
892 tty7 00:00:10 Xorg
894 ? 00:00:00 hald-addon-acpi
895 ? 00:00:00 hald-addon-inpu
944 tty4 00:00:00 getty
946 tty5 00:00:00 getty
956 tty2 00:00:00 getty
957 tty3 00:00:00 getty
961 tty6 00:00:00 getty
另外,扩展一下:
在UNIX系统中,计算机显示器通常被称为控制台终端(Console),关于/dev/console 应该来说更像一个缓冲结果。实现对内核的打印,比如说内核把要打印的内容装入缓冲区,然后由console来决定打印到哪里吧(比如是tty0还是串口等)。
在kernel中,console这个结构中有个device。 如果,我们来个专门打印内核的设备(比如通过串口),我们把那个串口register_console,那么/dev/console就到这个串口设备了。这时,内核打印就到这个串口设备了,而用户的打印还是和上面的/dev/tty相关,如果/dev/tty对应/dev/tty0,那么用户打印还在窗口中出现。所以说/dev/console是用来外接控制台的。
好,比较明白了吧,在打印时候的路径为:console->tty->tty?
评论
发表评论