Analogia: X-Window como um sistema operacional

Nesse artigo teremos uma breve introdução sobre sistemas operacionais e discutiremos características em comum entre o X-Window e um SO. A idéia é perceberemos o quão complexo e difícil é seu desenvolvimento.

[ Hits: 20.487 ]

Por: Ricardo Rodrigues Lucca em 04/09/2004 | Blog: http://aventurasdeumdevop.blogspot.com.br/


Sistema X



Depois de aprendermos um pouquinho sobre sistemas operacionais e já sabermos algo sobre o X, podemos afirmar que ele poderia ser considerado um "Mini sistema operacional". Mini pelo fato de que ele precisa rodar sobre um sistema operacional e nenhum programador que está desenvolvendo o X vai ter que se preocupar em como fazer uma alocação na memória ou como ele vai gravar um arquivo em disco. Isso é sempre responsabilidade do sistema operacional.

Assim, o X é um "Mini" sistema, porque ele é o responsável por gerenciar todo o ambiente gráfico e permite que programas rodem sobre ele. Do mesmo modo, temos o kernel do nosso sistema que seria o X Server em si e temos o "shell" que seria o nosso "gerenciador de janela".

Os "gerenciadores de janelas" são programas que trabalham em conjunto com o nosso "mini" sistema operacional, possibilitando que ele seja mais elegante para os nossos olhos e que tenha algumas características que ele não se responsabiliza. Tudo isso acrescentado a ele - o X - em tempo de execução. O trabalho exercido pelos gerenciadores são de requisitar e enviar mensagens para o servidor X, que vai tratá-la e responder como solicitado se possível.

Outro fato interessante é que o X Server pode ser usado para liberar uma interface para uma máquina cliente que não possui muitos recursos, o que também é chamado de "terminal burro". Esse fato do X poder ser usado como servidor faz com que todos os aplicativos sejam usados pelo sistema operacional nativo na máquina servidora do X, isto é, o sistema operacional onde o servidor X está é o responsável por gerenciar os recursos que o X usa.

Uma coisa interessante é que durante o processo de criação do X foi desenvolvida uma API chamada X-Lib. Essa lib permite que tenhamos acesso a funções mais próximas do X, ou seja, do nosso "mini" kernel. :) Assim, possibilitando mais uma coisa que existe em sistemas operacionais que é ter uma programação "baixo nível" se comparado com as API's de gerenciadores de janela que são "semi-prontos", pois em uma única função podemos ter diversas requisições ao X.

E assim encerro esse artigo esperando que tenham gostado e comentários serão bem vindos, pois é sempre bom ter a opinião de vocês! :)

[]'s

Página anterior    

Páginas do artigo
   1. Introdução
   2. Sistema X
Outros artigos deste autor

Funcionamento da memória

Introdução à linguagem C - Parte IV

VIM avançado (parte 1)

Uma pequena análise do Gentoo Linux

Linux Básico - Parte I

Leitura recomendada

Docker + Cluster DRBD + SQL Server - Database as a Service Utilizando Volumes Replicados

Atualizando para KDE-3.2 usando o APT no SuSE 9

Ganhe uma camiseta do Viva o Linux ajudando o Viva o Android

Instalação do XFCE 4.2 no Debian

Instalando um sistema Debian GNU/Linux completo em 20 minutos

  
Comentários
[1] Comentário enviado por y2h4ck em 05/09/2004 - 10:29h

Concordo , o X e um sistema complexo e por si soh ja faz iterações mais que interessantes.

Valew pelo Artigo Jlluca :)

Abraços.

Spawn y2h4ck

[2] Comentário enviado por arknoid em 06/09/2004 - 09:18h

Parabéns. O artigo está muito bem articulado e o conteúdo nota 10!

Tu melhorou bastante hein cara?

Mais uma vez parabéns!

[3] Comentário enviado por engos em 06/09/2004 - 13:35h

Gostei da forma como você simplificou tudo não se prendendo muito com termos mais técnicos e irrelevantes para o contexto geral.

Achei interessante você relacionar seu artigo com outros, mas achei que a leitura dos outros dois e depois o seu ficou um pouco repetitivo, infelizmente não tinha como você evitar.

Apesar de que não tenho muito interesse em X, reconheço que o artigo é interessante, parabéns.

[4] Comentário enviado por jllucca em 08/09/2004 - 14:43h

Opa,

muito obrigado pelos elogios e pelo visto o artigo deu resultado. O motivo de te-lo escrito era justamente tentar mostrar como pode ser complexo um sistema desse porte. Engos sou o maior entusiasta do X, mas ninguem vai ver eu dizendo que o odeio :p

[]'s

[5] Comentário enviado por jllucca em 08/09/2004 - 14:44h

Opa,

muito obrigado pelos elogios e pelo visto o artigo deu resultado. O motivo de te-lo escrito era justamente tentar mostrar como pode ser complexo um sistema desse porte. Engos não sou o maior entusiasta do X, mas ninguem vai ver eu dizendo que o odeio :p

[]'s

[6] Comentário enviado por jllucca em 08/09/2004 - 14:46h

Pessoal, peço desculpas pelos comentarios seguidos acima. Mas, eu pensei que iria dar tempo de corrigir um pequeno errinho(apaguei a palavra não quando tava arrumando a concordancia e nem percebi!).

[7] Comentário enviado por lspecian em 09/09/2004 - 12:21h

Sabe acho que se o X fosse integrado ao kernel do linux, como opcão, não padrão claro, seria muito interessante, se o kernel suportasse nativamente aplicações graficas.

[8] Comentário enviado por jllucca em 09/09/2004 - 12:37h

Seria uma ideia, mas eu não gostei dela :/

Mas, seria valido já que alguns usuarios utilizam o init 5(ta é 4 em alguns) para ir direto em modo gráfico.

[9] Comentário enviado por sombriks em 26/05/2005 - 01:56h

Não diga isso, incorporar o X ao kernel deixaria o núcleo tão pesado quando o da Microsoft! Além do quê a evolução dele seria de certa forma "barrada", pois mudar algo no X implicaria em mudar algo no kernel.

Ah! e leia-se recursos, como dito lá em cima por processos, de forma que aí sim, se vc ver o próprio teclado como um processo (os módulos carregados no xi, ehehehehe...) fica mais simples entender por que gerenciar e prover inforações estão ligados tão profundamente.

[10] Comentário enviado por jllucca em 26/05/2005 - 19:28h

É separar gerenciamento e provimento de informações ficou estranho do ponto de vista teorico. Mas, no pratico uma camada que gerencia pode não prover nenhuma informação e o que provem informação pode não gerenciar. Pensar em recursos como processos pode ser bem interessante se sempre mantivermos na cabeça que quase 90% das vezes que falamos em recursos nos referimos à mouse, teclado, cdrom, dvd, isto é, algum hardware. E os outros 10%? Bom, nós outros 10% certamente recurso seria praticamente igual a um processo, já que cairia em conseguir informação de algo em execução como posição de outra janela.


Contribuir com comentário