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: 22.349 ]

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

Uma pequena análise do Gentoo Linux

Criando um servidor de Ultima Online

Introdução à linguagem C - Parte IV

Aprendendo a utilizar o GNU Debugger (parte 1)

Introdução as Bibliotecas do C/C++

Leitura recomendada

Instalação do Cacti baseado em uma distribuição própria - CactiEZ

Backup remoto usando SSH

Abrindo um servidor X dentro de outro

Uma interface mais bonita com efeitos de transparência e sombras

Análise do Syllable, mais um interresante sistema operacional livre

  
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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts