Esse é um recurso fornecido por quase todos, se não todos, Unix e Unix, como rodando em hardware x86. Curiosamente, os consoles virtuais foram introduzidos pela primeira vez em um Unix pelo Microsoft Xenix no início dos anos 80, e também estavam disponíveis no CP / M simultâneo.
Esse recurso foi posteriormente integrado ao AT&T SVR4 Unix, Solaris e emprestado por BSDs e Linux.
Por que o UNIX / Linux fornece vários emuladores de terminal?
Quando eles foram introduzidos pela primeira vez, não havia ambiente gráfico disponível para as máquinas que executavam essas implementações do Unix. Embora ter um terminal físico conectado a um servidor Unix central por meio de linhas RS232 fosse o padrão, conectar vários terminais a um PC padrão executando o Xenix seria um exagero se o objetivo fosse apenas um usuário executar múltiplos programas interativos simultaneamente. Os terminais virtuais forneceram uma solução elegante e conveniente para esse problema.
Outras implementações do Unix posteriormente forneceram o mesmo recurso para atender à mesma necessidade.
Quando os ambientes gráficos, especialmente o X11, se espalharam, poder ver vários emuladores de terminal ao mesmo tempo na mesma tela foi uma melhoria significativa. No entanto, o recurso de console virtual geralmente era mantido, apenas porque ainda era conveniente poder alternar para um console, caso o ambiente gráfico estivesse congelado ou disfuncional por algum motivo.
Observe que os utilitários gostam screen
e tmux
vieram muito depois dos terminais virtuais para generalizar a mesma funcionalidade. Sua vantagem é que eles podem ser usados não apenas no console físico local, mas também em qualquer sessão, local ou remota (por exemplo telnet
, ssh
). Quando usado no console físico, consoles virtuais ainda são úteis como são funcionais em algumas situações onde screen
/ tmux
não pode ajudar, como se o X11 é congelado, ou se uma janela tem capturado o foco e não liberá-lo.
A virtualização baseada em contêiner, como zonas Solaris ou Linux LXC, também fornece um método para conectar-se ao console de contêineres através zlogin -C zone
e lxc-console -t 0 -n container
respectivamente.