Conceitos sobre o X-Window
Este é um artigo afim de mostrar os conceitos do ambiente X-Window. Abordaremos perguntas simples como o que ele é, quando foi desenvolvido e como ele funciona.
Visão geral do X
O sistema X-Window (sim! sem o "s"), também chamado de X, fornece os
ambientes gráficos do *nix. Apesar de rodar em muitos outros sistemas
operacionais como: Windows NT, Windows, MacOS, DOS...
Todos nós estamos acostumados com o Windows e que pelo fato dele aceitar todas as opções de hardware, o X deva aceitá-las também. Infelizmente isso em muitos casos não é verdade e só quem teve uma experiência dessas sabe como isso é frustrante. Mas, não desanime, pois essa é uma das partes que mais tem avançado a compatibilidade com o hardware.
O X Window começou como um exercício acadêmico no Projeto Athena do Massachusetts Institute of Tecnology. O objetivo era vincular uma grande variedade de estações de trabalho diferentes de vários fornecedores.
Em vez de oferecer o link em nível de sistema operacional, a decisão foi criar uma camada de software em que janelas gráficas baseadas em C fossem capazes de existir em qualquer sistema operacional. Assim, nasceu o X Window.
Atualmente, sob a supervisão da X Consortium Inc., uma entidade sem fins lucrativos, o sistema X Window é amplamente disponibilizado para o público de informática, que representa sua ampla adoção no mundo *nix. Infelizmente, fiquei sabendo que o X esta para mudar de licença apartir de suas novas versões.
Fiel a suas raízes, o sistema X Window executa o processamento gráfico em uma arquitetura de múltiplos processos. O processo principal, chamado simplesmente de X, é o próprio X Server. O servidor lida com solicitações locais (daí seu uso em uma estação de trabalho Linux única) e solicitações via rede baseadas em TCP/IP.
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.
O X Server controla monitor, mouse e teclado permitindo que aplicativos gráficos - chamados X Clients - criem janelas e as ocupem. À primeira vista, é tão básico que parece não requerer nenhuma explicação. O processo X é o único autorizado a desenhar pontos na tela ou rastrear o mouse.
Programas aplicativos conectam-se ao X server através de um link de comunicação, normalmente um soquete de rede TCP/IP. Pelo fato de usar esse tipo de comunicação, os programas que rodam em outras estações podem ser visualizados na sua máquina.
Diferentemente dos ambientes Macintosh e Windows, o X torna o gerenciador de janelas um processo separado. Na verdade, a vantagem de separar o gerenciador de janelas é que você pode escolher entre uma variedade de gerenciadores existentes o que melhor lhe convém.
O principal objetivo de se executar um gerenciador de janelas é controlar como você move e redimensiona a janela, além do que é ele que põem aquela barrinha com o título no topo das janelas.
Alguns gerenciadores de janelas do ambiente X:
Sempre que executamos o X, estamos acionando o X Server. O X Server como já dito é um servidor que pode atender tanto pedidos locais como via rede. O fato dele ser usado por muitos apenas localmente e sem o fechamento da porta onde ele aguarda ordens de outros pontos da rede pode deixar sua máquina vulnerável.
Em teoria apenas o mesmo usuário que abriu a sessão X pode fazer requerimentos para o servidor. Assim, se um programa mal intencionado está operando, pode bater fotos da sua tela e enviar pelo correio. Já pensou se tiram fotinhas suas teclando a senha do banco? Com o número da conta e agência em cada uma das fotos para não haver erros?
Infelizmente, esse seria mais um dos inúmeros erros que um usuário pode cometer.
Todos nós estamos acostumados com o Windows e que pelo fato dele aceitar todas as opções de hardware, o X deva aceitá-las também. Infelizmente isso em muitos casos não é verdade e só quem teve uma experiência dessas sabe como isso é frustrante. Mas, não desanime, pois essa é uma das partes que mais tem avançado a compatibilidade com o hardware.
História
O X Window começou como um exercício acadêmico no Projeto Athena do Massachusetts Institute of Tecnology. O objetivo era vincular uma grande variedade de estações de trabalho diferentes de vários fornecedores.
Em vez de oferecer o link em nível de sistema operacional, a decisão foi criar uma camada de software em que janelas gráficas baseadas em C fossem capazes de existir em qualquer sistema operacional. Assim, nasceu o X Window.
Atualmente, sob a supervisão da X Consortium Inc., uma entidade sem fins lucrativos, o sistema X Window é amplamente disponibilizado para o público de informática, que representa sua ampla adoção no mundo *nix. Infelizmente, fiquei sabendo que o X esta para mudar de licença apartir de suas novas versões.
X em Rede
Fiel a suas raízes, o sistema X Window executa o processamento gráfico em uma arquitetura de múltiplos processos. O processo principal, chamado simplesmente de X, é o próprio X Server. O servidor lida com solicitações locais (daí seu uso em uma estação de trabalho Linux única) e solicitações via rede baseadas em TCP/IP.
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.
O X Server controla monitor, mouse e teclado permitindo que aplicativos gráficos - chamados X Clients - criem janelas e as ocupem. À primeira vista, é tão básico que parece não requerer nenhuma explicação. O processo X é o único autorizado a desenhar pontos na tela ou rastrear o mouse.
Programas aplicativos conectam-se ao X server através de um link de comunicação, normalmente um soquete de rede TCP/IP. Pelo fato de usar esse tipo de comunicação, os programas que rodam em outras estações podem ser visualizados na sua máquina.
Gerenciador de Janelas
Diferentemente dos ambientes Macintosh e Windows, o X torna o gerenciador de janelas um processo separado. Na verdade, a vantagem de separar o gerenciador de janelas é que você pode escolher entre uma variedade de gerenciadores existentes o que melhor lhe convém.
O principal objetivo de se executar um gerenciador de janelas é controlar como você move e redimensiona a janela, além do que é ele que põem aquela barrinha com o título no topo das janelas.
Alguns gerenciadores de janelas do ambiente X:
- AfterStep, uma dentre as diversas variantes do Fvwm, um gerenciador semelhante ao S.O NeXT.
- LessTif, semelhante ao SO dos PC´s da Macintosh.
- Fvwm/Fvwm95, muito semelhante ao Windows 95.
- Scwm, configurado usando a linguagem Scheme.
- Twm/tom´s, ambiente básico e funcional.
- Olvwm, foi o padrão dos sistemas SUN durante muito tempo.
- AmiWm, para aqueles que usavam o Amiga (você se lembra??) e gostam da sua interface (são loucos hehehehe) bem objetiva.
- Enlightenment, um super gerenciador de janelas, nele o usuário personaliza TUDO!!!
- K Desktop Environment (KDE), ambiente gráfico muito difundido no mundo Linux, pois apresenta um conjunto de aplicativos consistentes para o usuário e programadores.
Problemas com o X?
Sempre que executamos o X, estamos acionando o X Server. O X Server como já dito é um servidor que pode atender tanto pedidos locais como via rede. O fato dele ser usado por muitos apenas localmente e sem o fechamento da porta onde ele aguarda ordens de outros pontos da rede pode deixar sua máquina vulnerável.
Em teoria apenas o mesmo usuário que abriu a sessão X pode fazer requerimentos para o servidor. Assim, se um programa mal intencionado está operando, pode bater fotos da sua tela e enviar pelo correio. Já pensou se tiram fotinhas suas teclando a senha do banco? Com o número da conta e agência em cada uma das fotos para não haver erros?
Infelizmente, esse seria mais um dos inúmeros erros que um usuário pode cometer.
[]'s
DarkInner7