我的 Ubuntu 18.04 有/dev/tty{0..63}
(和/dev/ttyS{0..31}
)。这是否意味着我有 63 个虚拟控制台(/dev/tty0
不是独立的虚拟控制台,也/dev/ttyS{0..31}
可能不是虚拟控制台)?
但我只能/dev/tty{1..7}
通过Ctrl++Alt访问F{1..7}。这个数字是7吗,因为有一些文件类似于/etc/ttys
它指定设备列表,init
读取文件并为文件中的每个终端设备分叉一个子级,每个子级执行getty
并getty
打开终端设备?
为什么这个帖子提及 7(“8 以上未使用或至少是非交互式的(此处它们仅显示闪烁的光标)。”),而另一个帖子同一作者提到 11 或 12(“它们/dev/ttyN
的12<N<64
用途是什么?”)?JdeBP 好心地向我指出了这些帖子。
谢谢。
答案1
我的 Ubuntu 18.04 有 /dev/tty{0..63} (和 /dev/ttyS{0..31})。这是否意味着我有 63 个虚拟控制台(/dev/tty0 不是独立的虚拟控制台,而 /dev/ttyS{0..31} 可能不是虚拟控制台)?
是的,您有 63 个虚拟控制台。 /dev/tty0
对应于当前活动的任一者,并且/dev/ttyS*
是串行连接。
但我只能通过 ctrl-alt-F{1..7} 访问 /dev/tty{1..7}。这个数字是 7 是因为 init 仅分叉 7 个子进程来运行 getty 吗? (大概有一些类似于 /etc/ttys 的文件,它指定设备列表,init 读入该文件并为文件中的每个设备分叉一个子设备)
大部分是正确的。您实际上可以访问其中的任何一个,但为了可靠地访问数字大于键盘上功能键数量的控制台,您需要使用该chvt
命令。
为什么这篇文章提到 7(“8 以上未使用或至少是非交互式的(这里它们仅显示闪烁的光标)。”),而同一作者的另一篇文章提到 11 或 12(“/dev/ttyN 是什么? 12人份
7 是大多数较旧的 Linux 系统上使用的实际数字。前六个用于实际的文本登录,第七个用于图形环境。使用 systemd 的较新系统会按需分配控制台,在配置了图形环境的系统上,第一个控制台默认是图形环境。
但是,您通常可以(轻松)通过按住 Ctrl 和 Alt 键并按键盘上相应编号的功能键来访问 12 个虚拟控制台,因为大多数现代键盘都有 12 个功能键。在某些键盘上,您可能可以轻松访问 15 个(某些较旧的键盘有 15 个功能键),而在某些键盘上,通过向组合键添加其他修饰键可能会获得更高的数字。
至于为什么有 63 个设备,这很大程度上是设备编号分配方式的人为因素。为虚拟控制台分配了 64 个编号,并且需要第一个编号,以便代码可以轻松地寻址当前活动的虚拟控制台。