¿Por qué tantas consolas virtuales?

26

¿Cuál es la razón de tener tantas consolas virtuales?

¿Entendería si hubiera uno en caso de que la GUI se bloquee pero 6 más además del predeterminado? ¿Para qué son? Incluso no veo uso para ninguno de ellos, excepto cuando la GUI se congela.

Hinklo
fuente
Estoy de acuerdo con la respuesta de Mateo a continuación. ¿Por qué no más? Me encuentro teniendo los 6 abiertos y deseando más (y la GUI a menudo permanece "apagada" en la pantalla de inicio de sesión).
Haziz

Respuestas:

16

Respuesta corta : ¿por qué no? (sonrisa implícita, por favor)

Más largo : supongo que es sobre todo una cuestión de historia. Hubo 6 consolas virtuales configuradas gettyen el primer linux que arranqué con soporte de VC, realmente olvidé cuándo (fue alrededor de 1990, creo). Luego, cuando comenzó el entorno gráfico (a mano, constartx ), se abrió en el primer VC libre, que resultó ser el # 7. Y todavía hacía la mayor parte de mi trabajo en VC en ese momento: los editores eran mucho más rápidos y en algún momento usé más VC que los seis estándar, y mi computadora portátil no era exactamente un monstruo gráfico ...

Por ejemplo, solía ejecutar tres editores (un programa, sus datos de entrada, un archivo TeX que lo describe), un VC para compilar, otro para leer un manual y otro conectado a través de Telnet a mi servidor de correo.

Sospecho que la razón para seguir usando seis consolas virtuales es dejar el VC gráfico en el # 7 para todos, para que pueda escribir en los manuales " Ctrl-Alt-F7" y no " Ctrl-Alt-Fxdónde xestá el primer VC gratis".

Como nota al margen, puede (supongo --- nunca lo intentó) recortar los VC. Simplemente hacer

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

para detener VC # 6, siguiendo el manual inicial .

Rmano
fuente
Es posible recortar el número de tty activos , pero no los archivos del dispositivo en sí (a menos que la gente quiera recompilar los núcleos). Vea mi respuesta a continuación
Sergiy Kolodyazhnyy
9

¿Por qué no más? Ejecutar topo htopen uno (proporciona estadísticas de uso de CPU / memoria), ssha otros sistemas en 2 o 3, ejecutar alguna tarea automatizada en otro, mantener una libre por si acaso, iniciar sesión en varios usuarios en algunos más, ejecutar cmatrixen uno, iniciar el GUI en otro con -

startx -- :1

(algunos gráficos tienen errores con esto)

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

Cuando realmente comienza a utilizar esta función, 7 tty (la séptima es la predeterminada) parecen ser muy pocas, y puede agregar más.

Para reducir el número: ¿Cómo puedo reducir el número de TTY?

Mateo
fuente
8

Todas las /dev/tty*entradas son algo conocido como device file, de acuerdo con la filosofía de Unix. Sirven como un enlace entre el usuario y el dispositivo real, pero su propósito puede diferir ligeramente.

Consolas virtuales

Los archivos de dispositivo como /dev/tty123pueden usarse para interactuar con el sistema a través de un shell normal. Esos son terminales virtuales. El sistema Ubuntu está configurado para abrir por defecto TTY 1 a 6, pero uno puede abrir manualmente más, por ejemplo:

sudo openvt -c 9 -s "bash"

Eso se abrirá bashcomo root en / dev / tty9 e inmediatamente lo cambiará a ese TTY (si se hace en la terminal local, pero si lo hace a través de una sshsesión remota , en cuyo caso es posible que necesite usar chvt 9, donde 9 está /dev/tty9en este ejemplo). Para hacer lo mismo sin sudoque sea root, deberá cambiar la propiedad de tty que desea abrir. Por ejemplo,

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

Eso me iniciaría sesión con mi shell predeterminado en tty8. Sin embargo, en mis pruebas, parece que esto funciona solo a través de TTY, por lo que si lo hace a través del emulador de terminal, eso podría no funcionar (recibí un Couldn't get a file descriptor referring to the console error y solo sudo openvt -c 8 -lfuncionó para mí desde el emulador)

Desde el punto de vista histórico, antes de que se crearan todos los sofisticados multiplexores de terminales, esta era una característica útil: podía generar hasta 62 comandos (tal vez servidores) en esas consolas y dejarlos correr, mientras trabajaba en la 63a. Hoy en día, podría no ser tan necesario.

Hay varios archivos de dispositivo creados por defecto. Los activos son del 1 al 6, pero uno puede modificar su número editando /etc/default/console-setup, específicamente esta parte:

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

dispositivos ttyS *

Estos son archivos de dispositivo utilizados para consolas en serie, también conocido como UART (también conocido como RS-232). En el pasado, muchos sistemas informáticos vendrían con puerto serie. Hoy en día, esto se puede encontrar principalmente en el tipo de servidor de las computadoras. Múltiples dispositivos ttyS podrían ser útiles con los concentradores RS-232, que permiten administrar la conexión de múltiples dispositivos a través de USB o Ethernet.

Para los ingenieros eléctricos (que es en lo que me estoy especializando en la universidad), utilizamos el puerto serie para interactuar con microcontroladores y placas de desarrollo (Arduino, por ejemplo). Las computadoras de puerto único, como Raspberry Pi, también lo usan. Hoy en día, la conexión en serie se establece utilizando un cable USB a UART, y abriendo la consola en la terminal de la siguiente screenmanera:

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

Tenga en cuenta que Arduino y Raspberry crearán su propio archivo de dispositivo para la conexión en serie, /dev/ttyUSB0o/dev/ttyACM0

dispositivos vcs *

De acuerdo con man vcsestos son los dispositivos de memoria de la consola. En palabras simples, si lo hace sudo cat /dev/vcs1, verá lo que está en la pantalla /dev/tty1, al menos hasta la cantidad máxima de líneas en ese terminal.

Disminución del número de consolas.

Disminuir la cantidad de archivos reales del dispositivo no es posible sin alterar la tty.hbiblioteca y volver a compilar el kernel ( Referencia y otro ). Sin embargo, la eliminación de esos dispositivos se puede hacer manualmente a través de este comando:

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

Sin embargo, esto no tiene sentido: los archivos del dispositivo no ocupan espacio y no influyen en el rendimiento del sistema.

Sergiy Kolodyazhnyy
fuente
Los comentarios no son para discusión extendida; Esta conversación se ha movido al chat .
terdon
6

La practicidad es real. Puede haber múltiples programas ejecutándose simultáneamente en el sistema Linux verdaderamente multiusuario, y puede visitar cada uno de ellos si cada uno se ejecuta en su propio terminal virtual. Cuando inicia sesión en cada uno, puede iniciar sesión como usuarios diferentes, si es necesario. Ahora, concedido, muchas personas llegan a Linux con una perspectiva de usuario único, pero desde que Linux nació multiusuario, esa capacidad nunca se descartó.

K7AAY
fuente