Fórum da semana 4 - perguntas e respostas

Uso do terminal

 
Imagem de PAULO CESAR COSTA SOARES
Uso do terminal
por PAULO CESAR COSTA SOARES - quinta, 13 Nov 2014, 09:33
 

Já que passo abrir varias janelas do terminal simultaneamente, posso rodar vários comandos ao mesmo tempo ou existe algum impedimento?

Imagem de Tatiane Ortiz Rocha
Re: Uso do terminal
por Tatiane Ortiz Rocha - quinta, 13 Nov 2014, 10:37
 

Linux no Windows

Carlos E. Morimoto criou 13/jul/2007 às 10h21

0

Introdução

Outro dia havia comentado sobre o Wine, um programa, ainda em desenvolvimento que permite rodar aplicativos Windows dentro do Linux, simulando a API nativa do Windows. Se ficou curioso, você pode ler o artigo aqui: http://www.hardware.com.br/artigos/avanco-wine/

O inverso, ou seja, rodar aplicativos Linux dentro do Windows também é possível, desde que você transforme a sua máquina Windows num terminal X. Existem várias formas de fazer isso, mas provavelmente a mais prática é usar o VNC.

Se você chegou a utilizar o VNC no Windows, provavelmente ficou decepcionado com a velocidade de atualização da tela e com a possibilidade de abrir um único terminal, que mostra a mesma área de trabalho que quem estiver na frente do micro verá. Não é à toa que a versão Windows do VNC é geralmente apresentada como uma simples ferramenta de administração remota. Realmente não serve para muita coisa além disso. Para detalhes de como utilizar o VNC no Windows leia: http://www.hardware.com.br/artigos/administracao-remota/

No Linux as coisas são um pouco diferentes. Graças à forma como o X gerencia os dados a serem mostrados no vídeo, o VNC torna-se muito mais rápido e eficiente e ganha o suporte a múltiplos terminais. Basta lembrar que o X foi originalmente desenvolvido justamente para esta função, possibilitar o uso de um terminal gráfico Unix em computadores com pouco poder de processamento, isso ainda na década de 70.

Usando uma rede de 10 megabits é possível usar uma máquina Linux remotamente com quase a mesma qualidade que teria sentado na frente dela. Com o detalhe de que o cliente VNC roda numa janela do Windows (também é possível usa-lo em tela cheia), o que permite que você use a máquina Linux ao mesmo tempo que roda outros programas. Melhor ainda, como o cliente apenas mostra a imagem da tela, você pode abrir vários aplicativos na máquina Linux, sem que a máquina Windows fique lenta. Obviamente, para isso você precisará ter uma máquina Linux configurada ligada em rede com a máquina Windows. Veja um exemplo no screenshot abaixo:

gdh1
Isto tem duas utilidades. A primeira é claro a possibilidade de ter uma workstation Linux dentro do Windows e rodar ao mesmo tempo seus aplicativos preferidos das duas plataformas. Mas existe outra idéia interessante, que seria usar máquinas antigas como terminais X. Como o cliente VNC é muito leve e existe para vários sistemas, bastaria que o terminal tivesse potência para rodar um sistema operacional qualquer (Linux, Windows, ou até mesmo DOS). Como os aplicativos rodam no servidor, um simples 486 poderia "rodar" aplicativos pesados, limitado apenas pelo desempenho do servidor, que poderia ser uma máquina mais parruda, compartilhada entre vários terminais. Rodar o servidor VNC não impede que alguém utilize a máquina Linux normalmente.

Instalar o VNCserver no servidor Linux é razoavelmente simples. Comece baixando o programa aqui: http://www.downloads-guiadohardware.net/download/vnc-3.3.3r2_x86_linux_2.0.zip

Descompacte o arquivo e copie os arquivos:

vncpasswd
vncserver
Vncviewer
vncviewer
Xvnc

... de dentro da pasta que será criada para o diretório "/usr/local/bin" (você precisa de permissões de root para isso, use o comando "kdesu konqueror" para abrir o gerenciador de arquivos com privilégios de root))

Se quiser habilitar o recurso de acesso via browser, crie o diretório "vnc" dentro da pasta "/usr/local" e copie a pasta classes para dentro da pasta (o caminho ficará "/usr/local/vnc/classes").

Feito isso, abra o arquivo "vncserver" que foi copiado e altere as linhas:

$geometry = "1024x768";
$depth = 8;


.. para a resolução e quantidade de cores que deseja usar. A resolução pode ser qualquer uma, não necessariamente uma das resoluções padrão. Se for maior que a resolução de vídeo do cliente, a janela ocupará apenas parte da tela e se for maior aparecerão barras de rolagem.

Se você quiser usar a janela do VNC junto com a barra de tarefas do Windows, como no screenshot que coloquei acima, você deve usar uma resolução um pouco menor que a padrão. No meu caso por exemplo o cliente usa 1024x768 então usei:

$geometry = "1014x710";
$depth = 16;


Como pode notar, aproveitei para aumentar também a resolução de cores, de 8 para 16 bits. Naturalmente, ao usar 16 bits de cor a velocidade de atualização da tela cairá um pouco.

Depois de salvar o arquivo, abra um terminal e use o comando "vncserver" para iniciar o VNC. Da primeira vez que for executado, o programa pedirá que você defina uma senha de acesso. Pode ser qualquer coisa com 6 caracteres ou mais. A senha naturalmente serve para impedir que qualquer um possa se conectar à sua máquina, sem autorização.

Para acessar o servidor, baixe o VNC for Windows no Link: http://www.downloads-guiadohardware.net/download/vnc-3.3.3r9_x86_win32.zip

Você pode baixar versões para outros sistemas operacionais (inclusive Windows CE e Palm) em: http://www.uk.research.att.com/vnc/

Basta descompactar o arquivo e executar o vncviewer.exe. Forneça o endereço IP do servidor, seguido por um ":" e o número do terminal (ou display). Cada vez que você executa o vncserver no servidor será criado um terminal virtual diferente. O primeiro terminal recebe o número 1, o segundo 2, e assim por diante. É possível criar um número teoricamente infinito de terminais na mesma máquina Linux e cada um permite a conexão de um cliente diferente, respeitando naturalmente as limitações de velocidade do servidor e principalmente da rede. Para chamar o cliente VNC no Linux basta usar o comando "vncviewer" num terminal.

gdh2
Da primeira vez que se conectar ao servidor você terá uma surpresa desagradável. O gerenciador de janelas default do VNC é o TWM, um gerenciador antigo e com poucos recursos:

gdh3
Para mudar isso, abra o diretório .vnc, que será criado dentro do seu diretório de usuário (/home/nome_do_usuario/.vnc) da primeira vez que rodar o vncserver e edite o arquivo "xstartup". Lembre-se que todos os diretórios cujo nome começa com "." são ocultos, não se esqueça de marcar a opção "mostrar todos os arquivos" no gerenciador de arquivos.

Basta substituir o "twm" na última linha pelo nome da interface gráfica que gostaria de utilizar. A minha preferida nesse caso é o "blackbox", que por ser leve e não utilizar imagens nem ícones nos menus é a que oferece um melhor desempenho via rede, ao mesmo tempo em que permite abrir muitos terminais, sem acabar com a memória RAM do servidor. Na falta do blackbox você pode usar qualquer outra interface que tenha instalada, mas eu não recomendo usar a dupla KDE e Gnome, que por serem muito carregadas de bitmaps tornam o acesso via rede muito lento.

O arquivo ficará assim:

#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
xterm -geometry 80+24+10+10 -ls -title "$VNCDESKTOP Desktop" &
blackbox &

Como disse, você pode utilizar qualquer interface gráfica que tenha instalada na máquina, bastando substituir o "blackbox" pelo comando adequado. Alguns exemplos são:

startkde : para abrir o KDE (em algumas distribuições o comando é apenas kde)

gnome-session : usar o Gnome

afterstep
: usar o afterstep

wmaker
: Window Maker

E assim por diante.

Para que a alteração surta efeito, feche o terminal virtual que havia sido criado com o comando vncserver -kill :1 e chame novamente o vncserver. O mesmo comando pode ser usado sempre que você desejar fechar os terminais virtuais criados.

Você pode inclusive criar vários terminais com diferentes resoluções e diferentes interfaces gráficas. Para isso, basta alterar a resolução de tela no /usr/local/bin/vncserver, alterar a interface gráfica no xstartup e digitar novamente o comando vncserver depois de cada alteração.

Assim você poderá ter o terminal 1 com 1024x768 e KDE, o terminal 2 com 800x600 e BlackBox e assim por diante. Outro ponto importante a considerar, caso você pretenda usar vários terminais simultâneamente é a velocidade da rede. Como disse, 10 megabits são satisfatórios para rodar o VNC, mas se você tiver uma rede de 10 megabits e 5 terminais, o desempenho já não será tão bom, pois os 10 megabits serão divididos entre todos.

Neste caso, o ideal seria primeiro migrar para uma rede de 100 megabits e quando esta já começar a ficar lenta, instalar mais placas de rede no servidor e passar a utilizar um switch ao invés de um hub. Assim, você poderá aumentar o desempenho da rede a ponto de usar 10 ou até 20 terminais simultâneamente, limitado apenas ao desempenho do servidor. O Linux é robusto neste ponto, pois ao abrir o mesmo aplicativo em vários terminais diferentes, o servidor criará um único processo, compartilhado entre todos os terminais, carregando o aplicativo uma única vez.

Esta dica serve muito bem para quem gostaria de usar o Linux, mas ao mesmo tempo, por um motivo qualquer, não pode abandonar o Windows. Através do vncserver você pode ter não apenas uma, mais várias máquinas Linux virtuais dentro do seu Windows e de quebra poderá estudar redes e a integração de máquinas Windows e Linux. É algo em que vale à pena investir algum dinheiro.

Para trocar arquivos entre as duas máquinas facilmente eu recomendo o uso do Samba. Você encontrará informações sobre a configuração aqui: http://www.hardware.com.br/artigos/servidor-aplicativos/

Outra possibilidade é usar micros 486 como terminais leves para acesso à Web, ou mesmo algum trabalho de produção. Tudo o que você precisará fazer nesse caso é fazer uma instalação enxuta do Linux, apenas o suficiente para abrir o X e o vncviewer e acessar tudo apartir do servidor. Mesmo um 486 com 12 MB de memória poderia fazer um bom trabalho neste caso. Outra opção é usar o Windows 95, que talvez já esteja instalado nas máquinas, para abrir o VNC.

Se o seu objetivo for criar terminais diskless, usando máquinas antigas, dê uma olhada também no link http://www.ltsp.org que ensina a configurar o servidor e criar ROMs para os PCs inicializem através da placa de rede. O desempenho é semelhante ao do VNC, mas você economiza um HD por estação e não precisa se preocupar em instalar sistema operacional algum. Este recurso é usado com bons resultados na Universidade Federal do Paraná: http://www.inf.ufpr.br/~marcos/wsl01

Sem comentáriosPor Carlos E. Morimoto. Revisado 13/jul/2007 às 10h21

Espero que isto ajude.

Imagem de raphael ferreira
Re: Uso do terminal
por raphael ferreira - quinta, 13 Nov 2014, 10:51
 

Sim, não há nem uma restrição no uso de varios terminais, cada um vai executar os comandos lá introduzidos separadamente.

Imagem de Marcos Paulo Gonçalves
Re: Uso do terminal
por Marcos Paulo Gonçalves - quinta, 13 Nov 2014, 12:12
 

Raphael, quando a comandos como CD , LS, CP, NANO, VI, não tem problema nenhum pode abrir quantos seu computador suportar, mas a instalação e atualização de pacotes não poderá, exemplo instalar dois programas ao mesmo tempo com o apt-get install.

Caso seu sistema esteja se atualizando e você tentar mesmo que em um único terminal fazer a instalação de um programa você não ira conseguir.

 

Imagem de Paulo Sérgio Serrão
Re: Uso do terminal
por Paulo Sérgio Serrão - quinta, 13 Nov 2014, 11:40
 

Não tem qualquer problema em executar diferentes comandos em diferentes abas. Se algum recurso do sistema estiver a ser utilizado, o linux não deixa que o comando crie conflitos. O sistema protege-se

Imagem de Marcos Paulo Gonçalves
Re: Uso do terminal
por Marcos Paulo Gonçalves - quinta, 13 Nov 2014, 12:16
 

Paulo, quando a comandos como exemplo: CD , LS, CP, NANO, VI, não tem problema nenhum pode abrir quantos seu computador suportar, mas a instalação e atualização de pacotes não poderá, exemplo instalar dois programas ao mesmo tempo com o apt-get install.

Caso seu sistema esteja se atualizando e você tentar mesmo que em um único terminal fazer a instalação de um programa você não ira conseguir.

Imagem de Paulo Sérgio Serrão
Re: Uso do terminal
por Paulo Sérgio Serrão - quinta, 13 Nov 2014, 17:45
 

Eu sei por isso afirmei que "o linux não deixa que o comando crie conflitos. O sistema protege-se"

Cássio F M Druziani
Re: Uso do terminal
por Cássio Frederico Moreira Druziani - segunda, 24 Nov 2014, 16:10
 

Você pode executar diversas tarefas, desde de que não concorram com o mesmo arquivo com comandos diferentes. Assim, pode acontecer algum conflito como "um outro aplicativo está utilizando o arquivo no momento".