访问更高的 TTY 和 getty 的角色

Gra*_*ent 1 tty getty

在尝试理解 TTY 时,我有一些黑暗区域。

  • 在我的系统上,我有/dev/tty[1-63]. 正在udev创建这些字符设备吗?以及如何访问它们(例如可以使用 Ctrl+Alt+F2 访问 tty2)?/dev/tty40例如,我如何访问?

  • 据我了解,当我访问/dev/tty1, 时agetty被调用,然后调用login. agetty电话之外的真正作用是login什么?

Gil*_*il' 5

这些是虚拟控制台,在 Linux 中称为虚拟终端(VT)。有一个硬件控制台(一个屏幕和一个键盘),但 Linux 假装有多个(多达 63 个)。在给定的时间点,单个 VT处于活动状态;键盘输入被路由到该控制台,屏幕显示该控制台显示的内容。

您可以使用该命令chvt在 VT 之间切换(您需要直接访问当前的虚拟控制台,如果远程登录或在 X 下运行,您将无法访问)。您还可以使用loadkeys由 X 服务器加载或由 X 服务器加载的键映射设置的键绑定。默认情况下,在 X 之外,Alt+切换到控制台编号n和+ +切换到控制台编号n +12;+和+切换到上一个/下一个控制台。FnAltShiftFnAltLeftAltRight

需要分配一个控制台才能切换到它。您可以使用openvt分配一个控制台(这需要 root)并deallocvt取消分配一个。

getty程序与虚拟控制台没有直接关系,特别是与 VT 分配无关。getty 的作用是准备控制台(设置串口参数,可能会黑屏,显示欢迎信息等)并调用login,然后等待登录会话终止并重复。简而言之,getty 的作用就是login循环调用。

您不必运行 getty 即可使用控制台。例如,您可以在控制台上使用openvt. 您可以在新控制台上使用startx.