首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >虚拟终端有主终端吗?

虚拟终端有主终端吗?
EN

Unix & Linux用户
提问于 2017-05-14 15:40:41
回答 3查看 447关注 0票数 2

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

但是,当我打开一个虚拟终端(通过按下Ctrl+Alt+F#)时,虚拟终端是否也连接到一个主机上呢?或者它是否直接连接到一个没有主程序的从级(/dev/tty#)?

EN

回答 3

Unix & Linux用户

发布于 2017-05-14 16:25:15

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

当您使用xterm时,xterm进程在一端的按键和像素之间进行转换,并在另一端模拟串行端口字节流。内核通过pty主服务器来回地向xterm传递内容。

当您使用tty1时,内核本身就是这样做的。drivers/tty/vt/keyboard.c中的代码解释按键,drivers/tty/vt/vt.c解释输出。在xterm中实现is 100类行为的所有逻辑都在那里复制。

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

票数 6
EN

Unix & Linux用户

发布于 2017-05-14 16:18:42

在这一点上,“是的,有主”和“不,没有主”都是正确的,因为您对语义感兴趣。

是的,有一个主程序:控制台驱动程序本身。字符编码,奴隶端看到和发送熊之间非常少和根本没有关系,与你的键盘到底发生了什么。真正的硬件正在经历许多层的重定向、重解释和重绘,从而呈现出80年代中期硬件的幻象。

不,没有主程序:主程序可以对从端看到的内容进行编程控制,如果不替换内核的相关部分,您就无法做到这一点。您可以运行加载键来控制击键的解释方式,但是没有普通程序可以将自己插入数据流中。

票数 3
EN

Unix & Linux用户

发布于 2017-05-16 00:25:46

注意术语:在这里,有两种不同的方法可以将终端称为“虚拟”。

终端模拟器创建一个虚拟终端,但它通常不是“虚拟终端”,而是伪终端。终端模拟器打开/dev/ptmx并获取终端的终端接口(称为“主端”);在终端中运行的应用程序在/dev/pts中使用终端的应用程序接口(称为“从端”)。

Linux所称的“虚拟终端”(vt)也称为控制台。它是虚拟的,因为有多个vt共享相同的键盘和屏幕。这里没有主从设备的概念,因为应用程序端只有一个设备。终端端由内核在内部处理(可以说主端隐藏在内核中)。

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/365012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档