AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 421632
Accepted
Pyjong
Pyjong
Asked: 2018-02-04 04:47:25 +0800 CST2018-02-04 04:47:25 +0800 CST 2018-02-04 04:47:25 +0800 CST

Quais aplicativos gráficos podem ser executados no terminal?

  • 772

O que exatamente torna um aplicativo gráfico executável no ambiente de terminal? Em relação ao X11, o que você precisa fazer para tornar o aplicativo executável a partir do tty?

Como é que programas como omxplayer, minecraftou geditnão podem ser executados a partir de tty, mas, por exemplo, "anões bêbados raivosos" (um jogo de python) ou emulador retroarch podem?

É claro que esses são apenas exemplos, não quero que você explique por que eles especificamente funcionam ou não. Mas suspeito que haja algum denominador comum. Se puder, entre em detalhes, mas apenas links para a literatura/artigos corretos também são bem-vindos. Obrigado.

--EDITAR--

Ok, houve algum mal-entendido. Para esclarecer: vamos supor que o Xorg esteja rodando no tty7 e estamos tentando executar programas gráficos em um terminal diferente (digamos, tty1) que não tenha uma instância do Xorg rodando.

x11
  • 3 3 respostas
  • 4597 Views

3 respostas

  • Voted
  1. Sergiy Kolodyazhnyy
    2018-02-04T10:17:06+08:002018-02-04T10:17:06+08:00

    Na verdade, o que você (ou mais corretamente, os aplicativos GUI que você executa) precisa geralmente de duas coisas.

    • acesso ao X11servidor viaxhost
    • fornecer DISPLAYvariável de ambiente.

    O exemplo de trabalho prático é uma das minhas respostas antigas em que o pai-OP solicitou mostrar a mensagem do terminal (supondo ssh) para as crianças conectadas via GUI.

    Com alguns ambientes de desktop que usam DBUS, você também pode precisar fornecer variável de ambiente para sessão DBUS. Esse tipo de sugestão é frequentemente visto em perguntas sobre a execução de aplicativos/mensagens GUI para usuários de /etc/rc.local.

    • 6
  2. Best Answer
    jlliagre
    2018-02-04T20:59:27+08:002018-02-04T20:59:27+08:00

    Se um terminal é capaz de exibir um aplicativo gráfico ou não, depende de dois fatores, a capacidade do terminal e o design do aplicativo gráfico.

    Nos tempos antigos, onde os terminais eram dispositivos reais conectados a computadores por meio de linhas seriais, a maioria dos terminais, especialmente os que realmente imprimiam texto em papel, também conhecidos como teletipos, eram capazes apenas de exibir texto.

    Já existiam alguns "aplicativos" gráficos capazes de imprimir coisas parecidas com aquela:

    From: pk6811s_acad_drake_edu (Paul Kline)
    [Here bingle and boobie.]
    "They're 'just' pixellated art, but they're original and not overly long.
    Best when viewed with light characters on dark background."
    
     Frank Sinatra
    
    "The old crooner himself:"
         QB"   .  . ....^FBQQBQBQ
         #^   ..../,, ,/yyBQBDBt`"B
       B"  ._L_yQ&Qy&&QQBQQDlL;S; (Q
      B^   /DQQQBQQQQQQBQBDQQD1:   "B
     Q~   ,GQBDQDQQQQQQBBQQDQ&EC    7B
     D    lQQQQQBQBQQQQQQQQBBID('    {
     E   .iDDBQQBQQQQBBBQBQQDQ1!:    (
     3   .(BQBBQBBQQQQBBQBBBDBS'     }                     I'm
     Q   '~~<MMBQQBBQBP"""<BD1EL.    Q                   dreaming
     Q    LuL `7QBBB?../LL;.!JDL     Q                    of a
    "  ,  ,__&L.DBBEEL1L_,'EylEE!  ,U                     white
    1 :s&yyQQQ6-DQBBQ&QQQQQQQQJY!  lyB1Q                Christmas.
    S  ?DDQQBD'.QQBDQDBQBQQQDD1<  LIQDG
    Q   j8BQE2 LQQBE9EBBEBQQES{! /BQSE
     Q_ 'TS7L  <#P~^,G1?TXC3({!  3PEy
      Q, ,_>'.,___yBD1DU;,'('''  yQ
       L "Qy,  'IIIZl',L/&;!;:  LQ
       Q; FD(  (`IE2L/QDB&lY!   6Q
        Q, (/. `!?"21iQDU&/~   L FB
         Q_ (EL/&&QDBQBDJ"   ,y^  `FB
          Qy 75EEBBQESf`   _yB^      "M
          Q7  `'^""~`   _yQQM'         `"FQ
          F;         _yQQQQF              Q
    

    Depois vieram os terminais baseados em CRT, como o DEC VT100, que implementou um padrão que a maioria dos emuladores de terminais atuais seguem. Esses terminais eram essencialmente de texto, embora houvesse suporte para alguns caracteres gráficos, mas eles eram incapazes de exibir gráficos (alta resolução). Uma exibição de 80 colunas e 25 linhas também pode ser considerada como um dispositivo de baixa resolução de 2.000 pixels (80x25), mas a velocidade das linhas seriais impedia que essa abordagem fosse muito útil.

    Costumava haver também terminais capazes de exibir gráficos nativamente, por exemplo aquele :

    insira a descrição da imagem aqui

    Atualmente, a maioria dos aplicativos gráficos executados em Unix e Linux são baseados no protocolo X11 no nível inferior. Este protocolo requer um servidor compatível com X11 para rodar no computador que controla a tela. Este servidor está assumindo o controle do console subjacente ou de um dos terminais virtuais em todas as implementações, portanto, até certo ponto, todos os aplicativos gráficos estão sendo executados a partir de um ambiente de terminal, geralmente tty7, mas é claro que este terminal perde seus recursos originais assim que como X11 assume o controle.

    O console usado pela maioria dos sistemas operacionais Unix/Unix fornece algum suporte para aplicativos gráficos. No Linux, esse suporte está disponível por meio do linux framebuffer (fbdev - /dev/fb0). Ele é usado, por exemplo, para exibir o pinguim do Linux, Tux, no momento da inicialização.

    insira a descrição da imagem aqui

    Costumava haver alguns aplicativos que usavam diretamente esse dispositivo como o doom, mas agora, a maioria dos aplicativos gráficos usa o X11, que também depende do fbdev. Alguns aplicativos muito versáteis como vlc e mplayer são capazes de usar diretamente o frame buffer do Linux.

    Existem também bibliotecas que implementam uma camada gráfica apresentando um dispositivo gráfico às aplicações, mas que na verdade são exibidas em consoles de texto, não muito diferente do que se fazia nos anos 60 nos teletipos e nos anos 80 no PC conectado ao BBS. Uma bem conhecida é a libcaca com a qual você pode até assistir a um filme em um terminal com o mplayer...

    insira a descrição da imagem aqui

    Por fim, alguns emuladores de terminal também oferecem suporte a gráficos. Um notável é o venerável xterm que fornece uma janela do emulador Tektronix 4014 capaz de exibir gráficos vetoriais com o gnuplot e outros aplicativos/bibliotecas:

    insira a descrição da imagem aqui

    • 3
  3. Hauke Laging
    2018-02-04T07:34:44+08:002018-02-04T07:34:44+08:00

    Os aplicativos gráficos não são executados em um terminal. Eles rodam em um servidor X. Este servidor X não precisa estar conectado a um tty, embora normalmente esteja.

    Portanto, não é o aplicativo conectado a um tty, mas apenas o servidor X. Você pode iniciar um servidor X apenas em um tty, não em um aplicativo.

    IIRC, você pode fazer um servidor X executar um único aplicativo. Mas não posso dar detalhes sobre isso.

    • 2

relate perguntas

  • uso do chaveiro gnome sem uma sessão x

  • Arch Linux: executando o VirtualBox (VM) sem um gerenciador de janelas

  • erro de falta de dois pontos xrdb

  • Tornar as coisas maiores sem alterar a resolução? [AMIGO]

  • O encaminhamento SSH X11 funciona apenas ao usar

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve