为什么这么多虚拟控制台?
有这么多虚拟控制台的原因是什么?
我会理解是否有一个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。
为什么不更多? 运行top
或htop
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。