为什么这么多虚拟控制台?

有这么多虚拟控制台的原因是什么?

我会理解是否有一个GUI崩溃但除了默认值还有6个? 它们适用于什么? 我甚至看不到任何用法,除非GUI冻结。

简答:为什么不呢? (隐含的笑容,请)

更长的一个:我想这主要是历史事物。 在我用VC支持启动的第一个linux中配置了getty 6个虚拟控制台,我真的忘记了(我认为是1990年左右)。 然后,当您启动图形环境(手动, 使用startx )时,它会在第一个免费VC上打开,这个VC恰好是#7。 我当时仍然在风险投资方面完成了大部分工作:编辑器的速度要快得多,有时我使用的VC比标准的6更多, 我的笔记本电脑并不是一个图形怪物 ……

例如,我曾经运行过三个编辑器(一个程序,它的输入数据,一个描述它的TeX文件),一个用于编译的VC,另一个用于阅读手册,另一个用于通过telnet连接到我的邮件服务器。

我怀疑仍然使用六个虚拟控制台的理由是让所有人都使用#7上的图形VC,这样你就可以在手册“ Ctrl-Alt-F7 ”而不是“ Ctrl-Alt-Fx ,其中x是第一个免费的VC”。

作为旁注,你可以(我想 – 从未尝试过)减少风险投资。 简单地做

  sudo bash -c "echo 'manual' >> /etc/init/tty6.override" 

按照新贵手册停止VC#6。

为什么不更多? 运行tophtop in one(给出cpu / memory用法静态), ssh到2或3中的其他系统,在另一个系统中运行一些自动化任务,保留一个空闲以防万一,再登录多个用户,运行cmatrix on一,用另一个启动GUI –

 startx -- :1 

(有些图形有这个错误)

http://mostlylinux.wordpress.com/troubleshooting/ttysessions/

当你真正开始使用这个function7 tty(第七个是默​​认)似乎很少 – 你可以添加更多。

减少数量: 如何减少TTY的数量?

根据Unix哲学,所有/dev/tty*条目都称为device file 。 它们充当用户和实际设备之间的链接,但它们的目的可能略有不同。

虚拟控制台

/dev/tty123这样的设备文件可以用来通过常规/dev/tty123与系统进行交互。这些是虚拟终端。 Ubuntu系统配置为默认打开TTY 1到6,但可以手动打开更多,例如:

 sudo openvt -c 9 -s "bash" 

这将在/ dev / tty9上以root身份打开bash并立即切换到该TTY。 要在没有sudo和非root的情况下执行相同操作,您必须更改要打开的tty的所有权。 例如,

 $ sudo chown xieerqi:tty /dev/tty8 $ openvt -c 8 -l 

这会在tty8上使用我的默认shell登录。 然而,在我的测试中,似乎这只能通过TTY工作,所以如果你通过终端模拟器这样做,那可能行不通(我得到了Couldn't get a file descriptor referring to the console错误而且只有sudo openvt -c 8 -l从模拟器为我工作)

从历史的角度来看,在创建所有奇特的终端多路复用器之前,这是一个有用的function – 你可以在这些控制台上产生多达62个命令(可能是服务器),让它们运行,同时在第63个工作。 如今,它可能没有必要。

默认情况下会创建多个设备文件。 活动的是1到6,但是可以通过编辑/etc/default/console-setup 来改变它们的数量 ,特别是这部分:

 # Setup these consoles. Most people do not need to change this. ACTIVE_CONSOLES="/dev/tty[1-6]" 

ttyS *设备

这些是用于串行控制台的设备文件,即UART(也称为RS-232)。 在过去,许多计算机系统都带有串行端口。 如今,这主要可以在服务器类型的计算机上找到。 多个ttyS设备可用于RS-232集线器,允许通过USB或以太网管理多个设备。

对于电气工程师(这是我在大学里主修的),我们使用串行端口与微控制器和开发板(例如Arduino)进行交互。 单端口计算机,如Raspberry Pi,也使用它。 如今,使用USB到UART电缆建立串行连接,并通过screen在终端打开控制台,如下所示:

 screen /dev/ttyUSB0 115200 # the number is baud rate or speed 

注意,Arduino和Raspberry将为串行连接创建自己的设备文件, /dev/ttyUSB0/dev/ttyACM0

vcs *设备

根据man vcs这些是控制台存储设备。 简单来说,如果你做sudo cat /dev/vcs1你会看到/dev/tty1屏幕上的内容,至少达到该终端中最大行数。

减少控制台数量

如果不改变tty.h库并重新编译内核( 参考和另一个 ),则无法减少实际设备文件的数量。 但是,可以通过以下命令手动删除这些设备:

 sudo bash -c 'for num in $(seq 10 63 ) ; do MAKEDEV -v -d "tty$num" ; done' 

但是,这有点毫无意义 – 设备文件不会占用任何空间,也不会影响系统性能。

实用性是真实的。 在真正的多用户Linux系统中可以同时运行多个程序,如果每个程序都在自己的虚拟终端中运行,您可以查看每个程序。 登录到每个用户时,如果需要,您可以以不同的用户身份登录。 现在,许多人以单用户的角度来到Linux,但由于Linux诞生了多用户,因此从未放弃过该function。