Nos anos 70, tínhamos um terminal de hardware com interface CUI (interface de usuário de caracteres) para entrada / saída.
Agora, temos emuladores de terminal ( Ctrl+ Alt+ Fn) no mundo Unix / Linux.
No Ubuntu OS, vejo sete emuladores de terminal, onde a GUI ocupa o 7º emulador de terminal ( Ctrl+ Alt+ F7).
Por exemplo, este é o meu primeiro emulador de terminal ( Ctrl+ Alt+ F1)
$ tty
/dev/tty0
Por que o Unix / Linux fornece vários emuladores de terminal?
Respostas:
Pela mesma razão, seu emulador de terminal da GUI provavelmente suporta guias (por exemplo, GNOME Terminal) e, se não (por exemplo
rxvt
), pelo mesmo motivo, iniciar uma segunda instância de aplicativo de terminal da GUI não apenas puxa a primeira para o primeiro plano e sai, forçando você a usar a primeira instância.Uso rotineiramente pelo menos três janelas de terminal no meu trabalho e muitas vezes mais:
Editor de texto para o lado do servidor do sistema em que estou trabalhando
Editor de texto para o lado do cliente do mesmo sistema
Janela de comando para executar o servidor
Raramente preciso de um quarto terminal para executar o programa cliente, pois ele geralmente é executado em outro local (aplicativo Web, aplicativo GUI nativo, aplicativo móvel etc.), mas se eu estivesse desenvolvendo um cliente CLI para meu aplicativo servidor, teria um terminal separado aberto para ele também.
No passado, antes de
sudo
se tornar popular, eu mantinha umroot
terminal aberto o tempo todo.Atualmente, raramente uso caixas Unix / Linux interativamente no console sem uma GUI, mas geralmente as executo sem acesso e as acesso através do SSH. Meu cliente de terminal SSH de escolha suporta guias, configuradas como acima.
Um dos meus projetos atuais de hobby me faz usar um terminal de vidro antigo de vez em quando, o que significa que eu não tenho mais várias janelas de terminal, então finalmente estou aprendendo um pouco sobre o GNU
screen
, um programa que eu nunca tinha muito uso antes, pois eu tinha vários terminais do console ou vários terminais da GUI. E o quescreen
faz? Entre outras coisas, você pode configurá-lo para fornecer vários terminais virtuais em uma única tela, assim como o Linux faz com Ctrl- Alt- .Fxfonte
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.
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
etmux
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 exemplotelnet
,ssh
). Quando usado no console físico, consoles virtuais ainda são úteis como são funcionais em algumas situações ondescreen
/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
elxc-console -t 0 -n container
respectivamente.fonte
Suponho que uma boa razão para ter emuladores de terminal extras é que, se você fizer algo errado na sua interface gráfica e ela se tornar inutilizável, você poderá rapidamente mudar para um emulador de terminal e corrigir todos os problemas que está tendo na interface gráfica. Na verdade, isso acontece com bastante frequência quando você está fazendo alterações no gerenciador de janelas ou em outros recursos da interface gráfica. Suponho que também seria útil ter mais alguns terminais, no entanto, ter 6 overtop da interface gráfica principal parece um pouco excessivo.
Também me corrija se estiver errado, mas não é possível executar vários comandos como usuários diferentes em um único emulador de terminal?
fonte
Muitas das outras perguntas parecem responder por que o recurso foi introduzido.
Ainda assim, a questão real é:
"faz", não "fez".
Portanto, focando no horário atual, eis alguns motivos atuais:
Por exemplo, lembro que Alt-Ctrl-F2 é o editor de texto que analisa um arquivo de texto (por exemplo, documentação) e Alt-Ctrl-F3 é usado para procurar rapidamente outro arquivo (por exemplo, um arquivo de configuração), e Alt-Ctrl-F4 é usado para um prompt de comando, enquanto a área de trabalho gráfica pode ser dividida entre navegação na web, e-mail, music player etc.
Em resumo, simplesmente não há muitas razões para não apoiar isso. Há algum benefício que algumas pessoas apreciam, pelo menos algumas vezes, e não muito custo.
Na verdade, remover o suporte para isso pode ser mais trabalhoso do que deixar o suporte lá. Embora a remoção do suporte provavelmente seja simples, se algo falhar, identificar e corrigir o problema pode ser um pouco desafiador. Portanto, a redução da quantidade de esforço necessária (para desenvolver a próxima versão de um sistema operacional) é mais um motivo para deixar as coisas como estão. Isso significa que esse recurso pode permanecer disponível.
fonte
Primeiro, o que você perguntou é sobre um recurso de um kernel chamado Linux. Não é do Unix em geral, e não do Gnu.
Quanto ao motivo, você teria que perguntar aos autores. No entanto, meu palpite é que isso permite que um administrador de um dispositivo não em rede (aqui eu incluo um RS232 como um tipo de rede), faça o login e faça algum trabalho administrativo, sem desconectar outro usuário.
fonte