当我试图理解 TTY 时,我遇到了一些黑暗的地方。
在我的系统上,我有
/dev/tty[1-63]
.正在udev
创建这些字符设备吗?我如何访问它们(例如可以使用 Ctrl+Alt+F2 访问 tty2)?/dev/tty40
例如我如何访问?据我了解,当我访问 时
/dev/tty1
,agetty
被调用,然后调用login
.agetty
调用之外的真正作用是什么login
?
答案1
这些都是虚拟控制台,在 Linux 中称为虚拟终端(VT)。有一个硬件控制台(一个屏幕和一个键盘),但 Linux 假装有多个(多达 63 个)。在给定的时间点,单个 VT 是积极的;键盘输入被路由到该控制台,屏幕显示该控制台显示的内容。
你可以使用命令chvt
在 VT 之间切换(您需要直接访问当前的虚拟控制台,如果远程登录或在 X 下运行则无法访问)。您还可以使用通过loadkeys
X 服务器加载的键映射设置的键绑定。默认情况下,X外,Alt+切换到控制台号码Fnn和Alt++Shift切换到控制台号码Fnn+12;Alt+Left和Alt+Right切换到上一个/下一个控制台。
需要一个控制台已分配以便切换到它。您可以使用openvt
分配一个控制台(这需要 root)和deallocvt
取消分配一个。
该程序盖蒂与虚拟控制台没有直接关系,特别是与VT分配无关。 getty 的作用是准备控制台(设置串行端口参数,可能使屏幕空白,显示欢迎消息等)并调用login
,然后等待登录会话终止并重复。简单来说,getty的作用就是login
循环调用。
您不必运行 getty 即可使用控制台。例如,您可以使用 启动控制台上的任何程序openvt
。您可以使用 来在新控制台上启动 X 服务器startx
。