Universidade Federal Fluminense Pólo Universitário de Rio das Ostras Instituto de Computação Graduação em Ciência da Computação Trabalho de Informática I Sistemas de Janelas em LINUX Bruno Cordeiro Paes Julio Fontoura Gonçalves de Lima Kássio Maciel Kienitz Professor orientador: Otton Teixeira da Silveira Filho 23 de Maio de 2005 Números de página 1. O Sistema de janelas X Pág. 3 o Histórico e visão geral Pág. 3 o Funcionamento Pág. 4 o Xfree e Xorg Pág. 5 2. Gerenciadores de Janelas Pág. 7 Pág. 8 o KDE Pág. 8 o Gnome o WindowMaker o BlackBOX Pág. 9 Pág. 10 Pág. 11 o IceWM Pág. 13 o Xfce Pág. 13 o ALDE Pág. 14 o XPde Pág. 14 Pág. 15 o AfterStep o Enlightenment Pág. 17 Bibliografia Números de página 1 - O sistema de janelas X • História e uma visão geral O conceito moderno da interface de apontar e clicar foi inventado pelo Xerox em 1977 e popularizado pela versão de Apple Macintosh em 84, o X11 em 86 e o MSWindowns em 95. A interface básica do Sistema X de janelas. Ultimamente o Sistema X de Janelas vem sendo utilizado para prover o às interfaces gráficas para o usuário em muitas plataformas inclusive o LINUX. Este sistema é executado sobre o sistema operacional com arquitetura cliente-servidor e conceitos importantes de multi-usuários, multi-máquina e acesso remoto. Números de página Desenvolvido no MIT (Massachussets Institute of Technology) nos anos 80, o sistema de janelas X foi à base para a aparição de todos os outros sistemas de janelas da atualidade. Seus conceitos de janelas, ícones, botões, decorações (bordas das janelas), como forma de controlar aplicações rodando em um sistema transformou-se na metáfora mais empregada em toda a indústria, com o uso do mouse substituindo o teclado na manipulação de propriedades e adicionando uma idéia de terceira dimensão na visualização de processos. O principal conceito desse ambiente é a estrutura de cliente-servidor, ou seja, o X-Windows fornece um ambiente que não está vinculado a um único sistema. Os aplicativos podem rodar em diferentes servidores e máquinas de uma rede e aparecer em qualquer terminal ou estação da rede. Essa é a grande diferença entre o Windows e X Windows. No Windows o ambiente gráfico é vinculado ao terminal que ele está sendo rodado, já no XWindows isso não acontece, você pode rodar um numa máquina e exportar para outra. O grande trunfo do X é a flexibilidade em sua interface. Um servidor X por si só é bem simples, não tem fundo colorido nem visuais gráficos modernos. Somente um gerenciador de janelas com botões de funcionalidades simples. Em virtude dessa capacidade de funcionar em rede, podemos fazer com que uma estação execute o trabalho e mostre os resultados em outra. Você poderia fazer com que o OpenOffice fosse aberto usando a estação do seu chefe, mas a visualização do aplicativo será feita na sua máquina. Em resumo, deixa 'sua máquina livre e a estação do seu chefe faz o trabalho. Números de página •Funcionamento O sistema X funciona com um modelo cliente-servidor, de forma inteiramente independente do sistema operacional. O servidor controla diretamente o display (vídeo) e dispositivos de entrada (teclado, mouse, digitalizadores,...) em favor das aplicações, que são os clientes. Rigorosamente falando, X é apenas a coleção de protocolos para determinar como será essa comunicação entre os servidores e os clientes. Um servidor pode ser rodado localmente, na mesma máquina onde está o programa (cliente), ou remotamente, via vários protocolos de transporte, que na realidade não fazem parte do sistema X. Somente o servidor precisa ser dependente do hardware, os clientes (programas) não precisam ter conhecimento implícito ou explícito da arquitetura que está sendo usada, mas somente dos protocolos, que são apresentados na forma de uma API (Application Programming Interface) conhecida como Xlib. Para manipular melhor o ambiente gráfico, teremos window managers (gerenciadores de janelas), que são simplesmente clientes como um programa qualquer. Existem inúmeras opções de window managers em Linux, como por exemplo, para citar alguns mais populares: kde, gnome, afterstep, enlightenment, fvwm, blackbox, vtwm, olvwm, fvwm95, icewm, wmx. Cada um destes apresenta uma distinta forma de apresentar e tratar com os outros programas, para iconizar, esconder as janelas indesejáveis formando "desktops virtuais", apresentar decorações como barras com botões de controle, ou diversas metáforas de controle como drag-anddrop. O sistema de janelas X tem grande variedade de gerenciadores de janelas, cada qual com características que os diferenciam dentre os demais. Para manter compatibilidade das aplicações nestes diversos ambientes, existe uma padronização descrita no documento ICCCM (Inter-Client Communications Números de página Conventios Manual). Sem os gerenciadores de janelas, as aplicações ficariam sem decorações. • Xfree x Xorg Atualmente estão em uso no mundo Linux duas versões diferentes do X, o Xfree e o Xorg. O Xfree o projeto mais antigo e tradicional, o grupo que originalmente portou o X para o Linux e foi o principal mantenedor do projeto desde então. Com o passar o tempo, começaram a surgir críticas, principalmente direcionadas à demora para incluir correções e atualizações nos drivers existentes. Isto foi se agravando com o tempo, até que uma decisão dos desenvolvedores em fazer uma pequena mudança na licença em vigor a partir do Xfree 4.4 foi à gota d'água para que um consórcio formado por membros de várias distribuições desenvolvedores descontentes com o modo de desenvolvimento antigo se juntassem para criar um fork do Xfree, o X.org. O X.org utilizou inicialmente a última versão de desenvolvimento da série 4.3 do Xfree, disponibilizada antes da mudança da licença. Desde então foram incluídos muitas atualizações e correções, como novos drivers e vários recursos cosméticos, como, por exemplo, suporte a janelas transparentes. Inicialmente as diferenças eram pequenas, mas como o X.org tem o apoio das principais distribuições e está sendo desenvolvido num ritmo muito mais rápido, a tendência é que ele substitua inteiramente o Xfree num futuro próximo. Números de página 2 - Gerenciadores de Janelas Gerenciadores de janelas são programas que controlam como as janelas devem ser apresentadas, a forma como os botões se posicionam, quais são suas funções, o que pode acontecer dentro de uma janela e coisas do gênero. Quando solicitamos um programa a um gerenciador de janelas no Linux, o mesmo abre uma janela e coloca o programa dentro dela. Já que não precisamos nos preocupar com especificações de janelas, visto que o XFree é o responsável por essa tarefa, não precisamos ser grandes programadores para desenvolver uma própria interface gráfica para Linux. Essa simplicidade oferecida pelo sistema de código-fonte aberto do XFree foi responsável pelo surgimento de várias interfaces gráficas para o sistema. Ao contrário do Windows, no Linux podemos escolher a interface gráfica que mais nos agrada em termos de beleza e facilidade de uso. Já existem cerca de 20 gerenciadores de janelas para o Linux. Dentre os mais populares podemos citar: Kde, Gnome, AfterStep, Enlightnment, WindowMaker, IceW, BlackBox, Fvwm90. Números de página Alguns gerenciadores: • KDE The K Desktop Environment, ou simplesmente KDE por ser um sistema completo e fácil de usar, é hoje, o principal ambiente gráfico da grande maioria das distribuições linux. Sua interface lembra muito o Windows, com menus e icones, totalmente customizável, podendo-se aplicar vários temas, deixando-o com a sua cara com muita facilidade. Seu navegador padrão é o Konqueror que é indicado como a cópia mais fiel do Internet Explorer, copiando muitas vezes, até os mesmos bugs e problemas, mas que não o tornam um mal navegador. Possui ainda aplicativos de ótima qualidade como Kicq (cliente ICQ para KDE), Kmail (ótimo programa de email, superando em várias funções o Outlook do windows), o próprio Konqueror, entre outros. Números de página • Gnome Gnome - Padrão em várias distribuições também, como Mandrake entre outras, o Gnome tornou-se muito popular por sua agilidade e excelentes programas padrões. Bem parecido com o KDE, ele também tem como base o uso de uma barra de tarefas e ícones na área de trabalho, constando como poucas das diferenças, o seu tamanho, a quantidade de programas, e por isso, a rapidez ao ser executado. Tem como Navegador padrão o Galeon, um ótimo navegador, que também pode ser utilizado no KDE (e vice-versa), com poucos bugs é o navegador preferido da maioria dos usuários Linux, lembra muito o Konqueror ou Internet Explorer, porém é mais leve, e com menos problemas. • WindowMaker Outro sistema feito em linguagem C, que resulta em rapidez e qualidade. Assim como o BlackBox, o sistema não se utiliza muito de ícones, mas fica a Números de página critério do usuário adicioná-los, com uma facilidade maior em relação à do BlackBox. WindowMaker é um sistema criado e planejado por um brasileiro, que realmente emplacou, e hoje já vem em pacotes de distribuições famosas como Red Hat e Conectiva. É uma ótima alternativa se você procura um sistema rápido, desde que não se importe muito com a estética. Por ser um sistema que visa rapidez nos seus processamentos, o WindowMaker pode ser considerado, digamos, feio, por algumas pessoas, mas nada que não possa ser melhorado com a adição de ícones e um bom papel de parede. Coloque no seu 486 e com certeza terá ótimos resultados. Ele vem com poucos programas, e segue a mesma regra de qualquer outro ambiente gráfico: se você possui os pacotes do KDE e do Gnome instalados em sua máquina, ele conseguira rodar todos os aplicativos de tais ambientes, muitas vezes com mais rapidez. Números de página • BlackBox ou FluxBox BlackBox é outro gerenciador de janelas disponível em versão para Linux e que tem a economia de recursos como ponto forte. Se você realmente tem pouca memória disponível, ou se deseja manter o máximo de memória possível para suas aplicações sem abrir mão de um mínimo de funcionalidade do ambiente gráfico, não pode deixar de experimentar o BlackBox. Apesar de sua aparência espartana, o Blackbox tem todos os recursos necessários para manipular as suas janelas, incluindo múltiplas áreas de trabalho (de maneira análoga à do IceWM), menus configuráveis para acesso às aplicações, e uma barra de tarefas simplificada, que indica o nome da área de trabalho ativa, da janela selecionada, informa a hora certa e permite navegar, de forma simples, entre as aplicações correntemente em execução. A figura 3 mostra a barra de tarefas e o menu indicando as aplicações em execução Uma das razões para a maior economia de memória oferecida pelo Blackbox é que ele não tem suporte a carregamento de imagens. Isso significa que, ao contrário de outros gerenciadores de janelas como o IceWM e o WindowMaker, não é possível definir um belo pixmap para ser usado como padrão de preenchimento dos menus e barras de título das janelas - é necessário se contentar com os preenchimentos baseados em gradientes. Números de página • IceWM O IceWM foi construído tendo em mente os objetivos de bom desempenho e flexibilidade. Mesmo sendo minimalista em seu conceito, apresenta muitos dos confortos dos ambientes gráficos mais volumosos, tais como suporte a temas, barra de tarefas bastante funcional, incluindo até mesmo applets como um relógio, monitor de bateria e indicador de chegada de e-mail. Outra característica importante do IceWM é a presença de áreas de trabalho similares às do WindowMaker. As áreas de trabalho funcionam como múltiplas telas, sendo que você abre as suas janelas de aplicação na tela que mais lhe convier, e a cada momento escolhe qual área deseja visualizar. Enquanto desenvolvo este artigo, tenho o editor de textos aberto na área de trabalho denominada de "Shell", e um navegador aberto na área de trabalho "Web", e estou constantemente alternando entre as duas. Este modo de operação é bem mais confortável do que a alternativa de manter todas as janelas em um único ambiente de trabalho, sobrepondo umas às outras e minimizando algumas, pois pode-se organizar logicamente o espaço visual. Números de página A barra de tarefas do IceWM lembra bastante a do Windows 95, exceto pela presença dos botões que alternam entre as várias áreas de trabalho. À esquerda temos um botão que aciona um menu de opções, incluindo aí os aplicativos mais comuns do sistema (este menu pode ser editado para incluir seus aplicativos preferidos). Além disso, a barra mostra os aplicativos que estão em execução, e informa a hora certa, o status da conexão ppp, e outros pequenos confortos. Números de página • Xfce Outro gerenciador de janelas leve para sistemas UNIX-like, foi feito para ser rápido e leve, e manter boa aparência e ser fácil de utilizar.Tem estrutura modular e pode ser moldado pelo usuário para melhor se adaptar ao tipo de utilização. A decoração e os temas suportam arquivos.PNG como base.O gerenciador de arquivos é rápido e integrado com o browser de redes do samba. • ALDE – Alternative Linux Desktop Enviroment Foi desenvolvido como ambiente de usuário gráfico para Linux, inclui um systema de janelas que roda no topo da estrutura de dispositivos do systema. Ele incrementa poder gráfico aos sistemas Linux e contem uma estrutura C++/JAVA Números de página orientada ao objeto e facilmente extensiva, provendo várias ferramentas para desenvolvimento de aplicações gráficas. Números de página • XPde È um gerenciador de janelas para Xfree86, que tenta facilitar o utilização de Linux por usuário de MSwindows XP. Ele não é uma emulação de Windows XP simplesmente copia a interface ao nível de visualização. • AfterStep Gerenciador de janelas que emula a aparência do ambiente NeXTSETP, facilitando a utilização do LINUX por usuários deste e somando outras fermentas de trabalho. Números de página • Enlightenment Gerenciador de janelas voltado para utilizações gráficas, é extremamente configurável, tem como vantagem a utilização da maioria dos comandos também via teclado. Números de página Tabela Comparativa entre os principais gerenciadores de janelas e o console em relação à memória ram. Utilizando uma arquitetura de 32MB. Tabela 1 Gerenciador Memória livre (Kbytes) Modo texto 30764 BlackBox 0.40.9 23540 IceWM 0.9.42 23416 WindowMaker 0.60.0 20904 KDE 1.1.1 8376 GNOME 1.0.7 4660 Números de página Bibliografia: http://www.guiadohardware.net/tutoriais/097/index6.php http://www.guiadohardware.net/tutoriais/076/ http://pt.wikipedia.org/wiki/KDE http://pt.wikipedia.org/wiki/GNOME http://www.vivaolinux.com.br http://br-linux.org http://www.pcforum.com.br http://www.kde.org http://www.gnome.org http://www.windowmaker.org http://www.xpde.com http://www.xfce.org Números de página http://www.afterstep.org http://www.enlightenment.org Números de página