【发布时间】: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/* 用于 ttyecho 可以向 tty 发送输入,cat 可以从 tty 接收输出。
/dev/vcs* 用于 VT 的屏幕cat 可以获取屏幕中的文本,但在 X 下使用它会得到全为零(非空)。
/dev/fb* 用于帧缓冲区cat 可以获取屏幕中的整个像素,但在 X 下使用它会得到全为零(非空)。听说X server不使用framebuffer,那它用什么?
请告诉我哪里错了。
【问题讨论】:
标签: linux linux-kernel linux-device-driver framebuffer tty