【问题标题】:What is the relationship between framebuffer, VT, and tty?framebuffer、VT、tty是什么关系?
【发布时间】:2018-02-05 16:42:36
【问题描述】:

我现在正在研究Ctrl+Alt+F1~F7背后的机制是什么。

我发现了一些关于帧缓冲区、VT 和 tty 的信息。我知道帧缓冲区是对图形卡操作的一种抽象,而 tty(和 pts)是程序与之交互的东西。我也发现有人在说VT(virtual terminal),但不知道他们之间是什么关系。

在网上搜索后,我做了一个图。

我认为 VT 是一组显示器和键盘。如果我想在一组中使用多个 tty(一个 VT),我必须在 tty 之间切换,因为我只有一台显示器来显示它们。这是 VT 斯威奇。但是VT实际上是什么?驱动程序、模块还是其他?

我想如果我有两组显示器和键盘连接到我的计算机,我可以将它们组合成两个 VT。我可以在显示器 1 中显示我的 tty1 并使用键盘 1 控制它,并使用显示器 2 和键盘 2 控制 tty2。我也可以在两个 VT 中进行 VT Switch。这是真的吗?

我认为我可以将 framebuffer(fbcon + fbdev) 视为图形卡驱动程序,但它是为控制台设计的,而不是通用目的(专有驱动程序)。

另外,/dev 下还有一些特殊文件

/dev/tty*/dev/pts/* 用于 tty
echo 可以向 tty 发送输入,cat 可以从 tty 接收输出。

/dev/vcs* 用于 VT 的屏幕
cat 可以获取屏幕中的文本,但在 X 下使用它会得到全为零(非空)。

/dev/fb* 用于帧缓冲区
cat 可以获取屏幕中的整个像素,但在 X 下使用它会得到全为零(非空)。听说X server不使用framebuffer,那它用什么?

请告诉我哪里错了。

【问题讨论】:

    标签: linux linux-kernel linux-device-driver framebuffer tty


    【解决方案1】:
    1. 正确的 tty 和 pty 是终端。但差别不大。 pty 是伪终端。打开终端类型 tty 将返回 pts 终端。如果您使用过嵌入式 linux,tty 通常是物理的,您可以将 linux 控制台重定向到不同的 tty,它们是 uart 终端。如果您使用 9 针 UART 电缆。那么你可以使用 ttyX。
    2. vcs 是在 X-Server erra 之前使用的不同屏幕。或者现在在未安装 X 服务器(甚至 Wayland 服务器)的服务器中。在运行级别 3 和 5。尝试使用 CTRL + ALT + F3 访问 /dev/vc3。你可以 echo 和 cat 类似地。

    3. 帧缓冲区是图形子系统的一部分,它不应该与 cat 一起使用。是矩阵。它对任何连接的屏幕的抽象。供图形驱动程序和应用程序使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-08
      • 2016-09-21
      • 1970-01-01
      • 1970-01-01
      • 2011-05-30
      • 2011-05-24
      • 1970-01-01
      • 2013-07-27
      相关资源
      最近更新 更多