Por que o UNIX/Linux fornece vários terminais?

Por que o UNIX/Linux fornece vários terminais?

Na década de 1970, tínhamos um terminal de hardware com interface CUI (character user interface) 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 sétimo emulador de terminal ( Ctrl+ Alt+ F7).

Por exemplo, este é meu primeiro emulador de terminal ( Ctrl+ Alt+ F1)

$ tty
/dev/tty0

Por que o Unix/Linux fornece vários emuladores de terminal?

Responder1

Por que o UNIX/Linux fornece vários emuladores de terminal [no console]?

Pela mesma razão, seu emulador de terminal GUI provavelmente suporta guias (por exemplo, Terminal GNOME) e, se não (por exemplo,rxvt), pelo mesmo motivo, iniciar uma segunda instância de aplicativo de terminal GUI não apenas coloca a primeira em primeiro plano e sai, forçando você a usar a primeira instância.

Eu uso rotineiramente pelo menos três janelas de terminal em meu trabalho, e geralmente mais:

  1. Editor de texto para o lado servidor do sistema em que estou trabalhando

  2. Editor de texto para o lado cliente do mesmo sistema

  3. Janela de comando para executar o servidor

Raramente preciso de um quarto terminal para executar o programa cliente, já que ele geralmente é executado em outro lugar (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.

Antigamente, antes de sudose tornar popular, eu mantinha um rootterminal aberto o tempo todo.

Raramente uso caixas Unix/Linux interativamente no console sem uma GUI atualmente, mas frequentemente as executo sem cabeça e as acesso por SSH. Meu cliente de terminal SSH preferido suporta guias, configuradas como acima.

Um dos meus atuais projetos de hobbyme fez usar um bem antigoterminal de vidroocasionalmente, o que significa que não tenho mais várias janelas de terminal, então finalmente estou aprendendo um pouco sobreGNUscreen, um programa que eu nunca usei muito antes, já que tinha vários terminais de console ou vários terminais GUI. E o que faz screen? Entre outras coisas, você podeconfigure-o para fornecer vários terminais virtuaisem uma única tela, assim como o Linux faz com Ctrl- Alt- .Fx

Responder2

Este é um recurso fornecido por quase todos, senão todos, Unix e Unix, como rodar em hardware x86. Curiosamente, os consoles virtuais foram introduzidos primeiro em Unix pela Microsoft Xenix no início dos anos 80 e também estavam disponíveis em CP/M simultâneo.

Este recurso foi posteriormente integrado no AT&T SVR4 Unix, Solaris e emprestado por BSDs e Linux.

Por que o UNIX/Linux fornece vários emuladores de terminal?

Quando foram introduzidos pela primeira vez, não havia ambiente gráfico disponível para as máquinas que executavam essas implementações 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 rodando Xenix era um exagero se o objetivo fosse apenas que um único usuário executasse vários programas interativos simultaneamente. Os terminais virtuais forneceram uma solução elegante e conveniente para esse problema.

Outras implementações Unix forneceram posteriormente 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 foi geralmente mantido apenas porque ainda era conveniente poder mudar para um console caso o ambiente gráfico estivesse congelado ou disfuncional por algum motivo.

Observe que os utilitários gostam screene tmuxvieram muito depois dos terminais virtuais para generalizar a mesma funcionalidade. A vantagem deles é que eles podem ser usados ​​não apenas no console físico local, mas também em qualquer sessão, seja local ou remota (por exemplo, telnet, ssh). Quando usados ​​no console físico, os consoles virtuais ainda são úteis, pois são funcionais em algumas situações em que screen/ tmuxnão posso ajudar, como se o X11 estiver congelado ou se uma janela capturou o foco e não o libera.

A virtualização baseada em contêiner, como zonas Solaris ou Linux LXC, também fornece um método para conectar-se ao console do contêiner por meio de zlogin -C zonee, lxc-console -t 0 -n containerrespectivamente.

Responder3

Suponho que uma boa razão para ter emuladores de terminal extras é que se você fizer algo errado em sua interface gráfica e ela se tornar inutilizável, você poderá mudar rapidamente para um emulador de terminal e corrigir todos os problemas que estiver enfrentando na interface gráfica. Na verdade, isso acontece com bastante frequência quando você faz alterações no gerenciador de janelas ou em outros recursos da interface gráfica. Suponho que também seria útil ter mais alguns terminais, porém ter 6 overtops da interface gráfica principal parece um pouco excessivo.

Corrija-me também se estiver errado, mas não é possível executar vários comandos como usuários diferentes a partir de um único emulador de terminal?

Responder4

A primeira coisa que você perguntou é um recurso de um kernel chamado Linux. Não do Unix em geral, e não do Gnu.

Quanto ao porquê, você teria que perguntar aos autores. No entanto, meu palpite é que ele permite que um administrador de um dispositivo sem rede (aqui incluo um RS232 como um tipo de rede) faça login e faça algum trabalho administrativo, sem desconectar outro usuário.

informação relacionada