Por que um terminal virtual é "virtual" e o que / por que / onde é o terminal "real"?

170

Espero que a pergunta seja auto-explicativa.

Meu entendimento é que gnome-terminale konsolesão terminais virtuais , e eles basicamente servem ao mesmo objetivo, ou seja, um ambiente de linha de comando para vários intérpretes de comando opcionais. (Eu nem tenho certeza se essa é a maneira certa de ver isso.)

Presumo que o verdadeiro terminal é de onde eu sou teletransportado para occasionaly por mis-digitação Ctrl+ Alt+ F1, F2etc.

Mas "Existem dragões" naquele interior de tela preta, então estou fora daqui o mais rápido que posso pressionar Ctrl+ Alt+ F7(aprendi que em algum lugar: "Quando tudo estiver preto e escuro: pressione as teclas secretas para retornar :)

  • É / são o terminal "real" (s) o (s) que existem por trás dos Ctrl+ Alt+ F1, F2, chaves, etc?
  • E o que há de tão "real" entre eles e os "virtuais"?
  • E como eles diferem? É tão simples quanto "sem GUI" vs "GUI"?

PS são "console" e "terminal" sinônimos?

Peter.O
fonte
22
Não tema a linha de comando. Pode tornar sua vida muito mais fácil para algumas coisas quando você estiver mais familiarizado com ela.
Larry Coleman
1
Veja também: superuser.com/questions/96628/…
Matthew
8
@ Larry: Encorajado por suas palavras, eu me aventurei no covil do dragão (Ctrl + Alt + F1), e realmente entrei dessa vez! ... Houve um silêncio ... mas pude ver meu prompt de terminal personalizado (da terra) de X) .. Interessante eu pensei, e me senti corajosa o suficiente para chamar a besta: eu disse "eco $ TERM" ... e eis que! falou de volta para mim! Dizia "linux" ... Imediatamente percebi que ele é primo de "gnome-terminal" e "konsole" que responde "xterm" .. Então, afinal, não é um dragão, mas sim, é um terminal virtual emulando um terminal linux (real).
Peter.O
5
Não tenha medo do Console Linux: Ele é um poderoso dragão ainda domesticada, e ele é seu melhor amigo quando acidentes compiz;)
MestreLion
Além disso, você pode chamá-lo de primo gnome-terminal, afinal ambos servem ao mesmo propósito. Um primo que não depende de nenhum ambiente gráfico e está conectado a um dispositivo que lhe concede um pouco mais de poder.
MestreLion

Respostas:

136

Meu entendimento é que os terminais virtuais basicamente servem ao mesmo objetivo: ie. Um ambiente de linha de comando para vários intérpretes de comando opcionais

Isto não é estritamente verdade. Os terminais virtuais são apenas programas que enviam pressionamentos de teclas e recebem saída (isso é chamado de entrada padrão, saída padrão [e erro padrão]) para um processo em segundo plano. Esta é uma entrada básica → processamento → sistema de saída e está no coração do seu sistema operacional.


Um teletipo (ou teleprinter)


Homem que trabalha em um terminal de computador

Vamos ver se consigo explicar corretamente:

Em um sistema semelhante ao Unix, como o Linux, existe o conceito de "tudo é um arquivo" . Isso significa que, por exemplo, sua unidade de DVD é um arquivo (/ dev / sdb1), seu teclado é um arquivo (/ dev / input / keyboard) e assim por diante.

Outro conjunto desses arquivos mágicos são os TTYs, onde TTY significa Teletype. Uma máquina de escrever que envia pressionamentos de teclas para um computador, que por sua vez envia cartas de volta para o Type Ball . Isso representaria um dispositivo físico, uma máquina de escrever remota, da mesma maneira que / dev / lp0 pode representar sua impressora.


Um terminal de hardware, o VT100

As estações de trabalho Teletype seriam denominadas "Consoles" ou "Terminais", um terminal virtual, em vez de um terminal real, assim como qualquer aplicativo ou maquinaria que ofereça a mesma funcionalidade que essa organização do local de trabalho - que está acessando o computador enviando pressionamentos de tecla e recebendo saída de volta, imprimindo em um pedaço de papel. Você pode imaginar que um modem funciona de maneira muito semelhante.

Terminais, como o mostrado acima, são computadores baratos e simples que simulam a funcionalidade de um teletipo. Quando dizemos emulador de terminal hoje em dia, geralmente queremos dizer um programa que simula a funcionalidade de uma máquina desse tipo.

Ainda existem sistemas de computador baseados em terminal em uso. Na verdade, eles estão ficando cada vez mais populares . No passado, a razão para os terminais era que um computador em cada mesa era completamente ridículo - onde os computadores enchiam uma sala e eram imensamente caros. Agora, economiza dinheiro e facilita a administração.


um "thin client" - o equivalente moderno do VT100

Espero que isso seja útil. Por favor, alerte meu se eu cometi um erro.


Isso significa que Control-Alt-F1, F2, etc. também são terminais virtuais, e a única diferença entre eles e "gnome-terminal" / "konsole" é que eles não têm uma GUI?

Sim basicamente. A diferença entre o TTY1-7 e o gnome-terminal é que o sistema fornece os ttys, enquanto o gnome-terminal e o konsole estão rodando em um tty (que está executando o subsistema gráfico). Essa abstração pode ser aninhada ainda mais profundamente (por exemplo, encaminhamento x, usando o protocolo telnet para atuar como um terminal, ...), afinal, a interface humano-computador atua como qualquer outro arquivo. E pode ser canalizado, abstraído e movido da mesma maneira.

Stefano Palazzo
fonte
15
Sua resposta foi útil? ...Absolutamente!! ... muito bem explicado ... Eu nunca pensei em um teclado como um arquivo, mas faz sentido (um arquivo somente leitura) ... e "thin client" é um termo que eu ouvi falar em alguns podcasts, mas isso passou pela minha cabeça e achei que se referia a alguma nova arquitetura de CPU (a-la RISC) .. mas na verdade significa que boas idéias não desaparecem e que o CICS (ou pelo menos seus descendentes) ) ainda está vivo e bem ... muito interessante ... Graças (agora eu tenho um pouco mais de leitura para fazer ... você começou algo :)
Peter.O
19
Isso é um pouco aleatório e não tem muito a ver com Linux, mas mesmo assim: se você quiser aprender algumas noções básicas de como um computador realmente funciona, ouça twit.tv/sn - episódios 233, 235, 237, 239 e 241 . Uma série sobre "como os computadores funcionam desde o básico absoluto", onde básico significa "baixo nível". Muitas pessoas não sabem disso , é muito divertido.
Stefano Palazzo
1
@TokiTahmid whoops! Corrigido, muito obrigado. Não foi intencional, apenas um erro :)
Stefano Palazzo
4
Lembro-me de que o VT-100 foi considerado um terminal (vídeo), não um terminal virtual ou emulador de terminal. Muitos dispositivos que continham seus próprios microprocessadores eram considerados terminais, quaisquer que fossem os outros dispositivos emulados, desde que fossem projetados para fornecer entrada e saída diretamente ao usuário. Se a interface computador / humano for implementada em software em um dispositivo que não seja dedicado a ser um terminal, eu chamaria essa interface ou software de terminal virtual. O objetivo do dispositivo geral é a diferença, não a tecnologia nem o protocolo de comunicação usado.
perfil completo de John Gruber
2
@JohnSGruber Sua lembrança está correta: o VT100 e seus parentes são terminais de 'vídeo', para distingui-los do TTY em papel, a foto principal nesta resposta. Os três benefícios de um VT sobre um TTY eram muito mais silenciosos, sem desperdício de papel (mas sem rolagem que nem sempre era boa) e velocidade - o TTY era praticamente limitado a 110 baud (10 char / s) que os VT podiam ir tão alto quanto 19,200baud, iirc. Mais tarde, eles chegaram a criar "terminais inteligentes", um VT com a capacidade de processar um pouco o sinal recebido e adicionar cor ao texto e, até, por um preço, gráficos.
Spyweaver Gypsy
14

Certamente chamá-lo de "terminal virtual" é um retrocesso para quando havia terminais físicos conectados a servidores unix ...

RobotHumans
fonte
Tudo bem ... Isso faz sentido ... "naquela época" antes da existência de várias tarefas, e a própria idéia era abstrata e "virtual" ... Portanto, é a mesma idéia que uma máquina virtual versus um hardware " "
precisa saber é o seguinte
2
Isso significa que Control-Alt-F1, F2, etc. também são terminais virtuais, e a única diferença entre eles e "gnome-terminal" / "konsole" é que eles não têm uma GUI?
precisa saber é o seguinte
@ fred.bear: Dê uma olhada na Wikipedia .
Jamie Schembri
virtual porque a extremidade de entrada / saída humana do terminal realmente se conecta a um processo em execução (através de / dev / pts / *). Terminais não virtuais são coisas como o console de texto do Linux (back-end fornecido pelo código do kernel para transformar pressionamentos de tecla em caracteres de entrada de terminal e saída de terminal em caracteres na tela, incluindo o processamento de códigos de escape para cores, movimento do cursor etc.). Ou o exemplo mais antigo de um terminal não virtual, as portas seriais. Manipulação de terminal fornecida pelo que você conectou à sua porta serial. Você pode inicializar com o console de texto em uma porta serial.
Peter Cordes
13

Além das respostas acima, consulte esta explicação abrangente dos terminais. O TTY, apesar de sua aparente simplicidade, é conceitualmente uma parte bastante complicada do Linux.

Loevborg
fonte
1
Obrigado loevborg. É um artigo realmente interessante, que explica muito da terminologia "misteriosa" ... (por exemplo, um processo de "zumbi";)
Peter