虚拟终端有主端吗?

Jam*_*mes 2 terminal-emulator terminal console pty

当我打开一个终端模拟器(xterm例如)时,xterm会有一个主端(/dev/ptmx)和一个从端(/dev/pts/#)。

但是当我打开一个虚拟终端(按Ctrl+Alt+F#)时,虚拟终端是否也连接到了一个主机?还是直接连接到/dev/tty#没有主站的从站()?

小智 5

没有主人(因此它也不是奴隶)。

当您使用 时xterm,该xterm过程在一端执行按键和像素之间的转换工作,并在另一端模拟串行端口字节流。内核将东西来回传递给xterm通过 pty 主节点。

当您使用 时tty1,内核会自己做所有这些事情。中的代码drivers/tty/vt/keyboard.c解释按键,并drivers/tty/vt/vt.c解释输出。里面的所有逻辑xterm实现类似 VT100 行为的那里复制。

由于此实现位于内核中,因此它可以直接与相关的低级驱动程序(GPU、键盘所在的 USB 总线等)对话,而无需通过用户空间进程进行中继。如果不涉及另一个用户空间进程,就不需要 tty 的“主端”。