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?

评论

此博客中的热门博文

提交了30次才AC ---【附】POJ 2488解题报告

n个进程共享m个资源得死锁问题证明