use*_*550 4 linux operating-system tty linux-kernel
到现在为止,我已经花了至少10个小时试图了解Linus Akesson着名的博客文章,我仍然在苦苦挣扎.所以让我怀疑我对tty/ptty的怀疑是一系列简短的问题.
1)用户空间或内核空间中的tty/ptty是什么?
2)什么是tty/ptty与设备或驱动程序或某些编号或东西的连接?
3)tty似乎与某个过程的控制终端有关,什么是关系,是与终端相关的每个过程?
4)总的来说,我仍然不明白这个终端概念适合的位置.一个进程想要从stdio中读取一些内容,但它只是从所需的设备文件中读取它.tty打算如何解决这个问题究竟是什么?
5)我在某处读到有人试图将tty从用户空间移动到内核空间.这是一个历史性的残留物,而不是一个强大的设计特征.
澄清(可能会回答你的一些问题):我认为你的意思是pty(而不是ptty)是伪tty /伪终端.
tty(/ dev/ttyx) - 代表电传打字机 - 是原始终端(用于输出的行式打印机和用于输入的键盘!).终端基本上只是一个使用文本输入和输出的用户界面设备.
pty(/ dev/pty/n)是一个伪终端 - 它是一个软件实现,对于附加程序来说就像终端一样,但它不是直接与"真实"终端通信,而是将输入和输出传输到另一个终端.程序.它是telnet/SSH甚至GNOME终端的终点.
例如,当您进入远程计算机并运行ls时,ls输出将发送到伪终端,其另一端连接到SSH守护程序.
编辑:据我所知,tty和pty是usermode.但他们代表终端司机.我的意思是:设备文件/ dev/tty1是第一个虚拟控制台.大多数代码都存在于drivers/char中,文件为tty_io.c和n_tty.c以及vt.c(内核源代码).与字符设备相比,为了打开那些文件,tty_open例程被调用,并且相信我,它比打开字符设备更麻烦......
Tty/pty代表上面提到的终端驱动程序,但它们代表串行端口(你说的"编号").我对它知之甚少,所以我不想说不正确的数据...但你可以在网上搜索它(或者其他人可以从这里继续)
编辑2:你已经改变了问题,所以现在看起来我说的是脱离背景......无论如何,即使现在,tty也有许多不同的角色.终端驱动程序是用户内核可以"通信"的方式.有一些技术,如终端驱动程序,字符设备等.
如果您还有问题请评论,不要更改整个帖子....