Conteúdo verificado

X Window System

Assuntos Relacionados: Software

Você sabia ...

Crianças SOS, uma instituição de caridade educação , organizou esta selecção. Veja http://www.soschildren.org/sponsor-a-child para saber mais sobre apadrinhamento de crianças.

Um exemplo histórico de interface gráfica de usuário e aplicações comuns a distribuição funcionamento do MIT X Consortium sob a twm gerenciador de janelas: X Terminal, Xbiff, xload e uma gráfica navegador página do manual

O Sistema X Window (vulgarmente conhecido como X11, com base na sua atual versão principal sendo 11, ou encurtado para X, e às vezes informalmente X-Windows) é um sistema de software de computador e rede protocolo que fornece uma base para interfaces gráficas de usuário (GUIs) e rica capacidade dispositivo de entrada para computadores em rede. Ela cria uma hardware abstração camada onde o software é escrito para usar um conjunto generalizado de comandos, permitindo independência do dispositivo e reutilização de programas em qualquer computador que implementa X.

X originou no Massachusetts Institute of Technology (MIT), em 1984. A versão do protocolo X11 tem sido desde setembro de 1987. A Fundação X.Org lidera o projeto X, com a implementação de referência atual, X.Org Server, disponível como software livre e de código aberto sob a MIT License e similares licenças permissivas.

Finalidade e habilidades

X é um sistema independente de arquitetura para interfaces gráficas remotas e capacidades ricas de dispositivos de entrada que permite que muitas pessoas a compartilhar o poder de processamento de um computador e colaborar uns com os outros através de aplicações cliente que executam em computadores remotos time-sharing. Cada pessoa que usa uma rede terminal tem a capacidade de interagir com o visor com qualquer tipo de dispositivo de entrada de utilizador. Devido à ubiquidade do suporte para o software X em Unix , Linux e Mac OS X, X é comumente usado para executar aplicativos cliente em computadores pessoais, mesmo quando não há nenhuma necessidade de time-sharing.

X fornece de janelas em monitores de computador e gerencia teclado, apontando funções de controle de dispositivo e touchscreens. Na sua distribuição padrão é um completo, embora simples, display e interface de solução que oferece um padrão kit de ferramentas e pilha de protocolos para a construção de interfaces gráficas de usuário em mais Sistemas operacionais Unix-like e OpenVMS, e tem sido portado para muitos outros fins gerais contemporânea sistemas operacionais.

X fornece o básico quadro, ou primitivas, para a construção de tais ambientes GUI: Desenho e movendo janelas no exibir e interagir com um mouse, teclado ou tela sensível ao toque. X não mandato que o interface com o usuário estar presente; programas clientes individuais conhecidas como gerenciadores de janelas lidar com isso. O gerenciador de janelas não é necessário e programas podem usar habilidades gráficas de X sem interface do usuário. Como tal, o estilo visual de ambientes baseados em X varia muito; diferentes programas podem apresentar as interfaces radicalmente diferentes. X é construído como um (aplicação) adicional camada de abstração no topo do kernel do sistema operacional.

Diferentemente da maioria dos protocolos de exibição anteriores, X foi projetado especificamente para ser usado em conexões de rede em vez de um dispositivo de exibição integrante ou penhoradas. Recursos X transparência de rede: a máquina onde um programa de aplicação (o aplicativo cliente) é executado podem diferir de máquina local do usuário (o servidor display). Protocolo de rede de X é baseado em primitivas X e de comando, com GLX, OpenGL 3D primitivas, em vez de um paradigma mais básico framebuffer cópia. Esta abordagem permite tanto em 2D e 3D para operações de ser totalmente acelerado no servidor X remoto.

Quando usado em toda a rede, largura de banda e latência tanto pode ser questões significativas na usabilidade de certos modelos de software. Largura de banda é um fator-chave, tanto em assistir a um vídeo em 2D e na transferência de texturas para 3D. Latência pode ser uma preocupação em aplicações interativas-o mais obviamente jogos, mas por altos níveis de latência até mesmo manipulação menu básico pode se tornar difícil.

X não fornece nenhum suporte para áudio, apesar de vários projetos existem neste nicho, alguns também fornecendo suporte de rede transparente. Alguns são PulseAudio, Advanced Linux Sound Architecture (ALSA), Abrir Sound System (OSS), e JACK Áudio Connection Kit (JACK).

X também não tem suporte para procedimentos armazenados definidos pelo usuário no servidor X, na forma de NOTÍCIAS - não há nenhuma Turing completo instalação.

X é frequentemente utilizada em conjunto com um Sessão X gerente de implementar sessões. Normalmente, uma sessão é iniciada pela Gerenciador de exibição X. No entanto, o usuário também pode iniciar uma sessão, executando manualmente o xinit ou programas startx.

Projeto

Implantação exemplo de servidor X: o servidor X recebe entrada de um teclado local e mouse e exibe em uma tela. A navegador e um emulador de terminal de execução na estação de trabalho do usuário e um aplicativo de atualização de software executado em um computador remoto, mas é controlado e monitorado a partir da máquina do usuário

X usa um modelo cliente-servidor: um servidor X se comunica com vários programas clientes. O servidor aceita pedidos de saída gráfica (janelas) e envia de volta a entrada do usuário (a partir do teclado, mouse ou touchscreen). O servidor pode funcionar como:

  • um pedido para a exibição de uma janela de um outro sistema de exibição
  • um programa de sistema de controlo da saída de vídeo de um PC
  • uma peça de hardware dedicada.

Este terminal de cliente-servidor terminologia do usuário ser o servidor e os aplicativos sendo os clientes muitas vezes confunde-novos usuários X, porque os termos aparecem invertidos. Mas X assume a perspectiva do aplicativo, em vez do que a do usuário final: X fornece exibição e I / O para aplicações de serviços, por isso é um servidor; aplicativos usam esses serviços, portanto, eles são clientes.

O protocolo de comunicação entre o servidor eo cliente opera rede de forma transparente: o cliente eo servidor pode executar na mesma máquina ou em diferentes, possivelmente com diferentes arquiteturas e sistemas operacionais. Um cliente e servidor pode se comunicar forma segura através da Internet por tunelamento a conexão através de uma sessão de rede criptografada.

Um próprio cliente X pode emular um servidor X, fornecendo serviços de vídeo para outros clientes. Isto é conhecido como "assentamento X". Clientes Open-source, como Xnest e Apoio Xephyr tais nidificação X.

Para usar um aplicativo cliente X em uma máquina remota, o usuário faz o seguinte:

  • Na máquina local, abrir uma janela de terminal
  • uso ssh com o argumento de encaminhamento de X para se conectar à máquina remota. Telnet pode ser usado, mas não é seguro, não permite o encaminhamento de gráfico e é em grande parte obsoleto.
  • solicitar o serviço de exibição / entrada local (por exemplo, export DISPLAY = [máquina do usuário]: 0 se não estiver usando SSH com o encaminhamento de X ou de "tunneling" habilitado).

O aplicativo cliente remoto X, então, fazer uma conexão com o servidor X local do usuário, fornecendo exibição e de entrada para o usuário.

Alternativamente, a máquina local pode rodar um pequeno programa que se conecta ao computador remoto e inicia o aplicativo cliente.

Exemplos práticos de clientes remotos incluem:

  • administrar uma máquina remota graficamente
  • usando um aplicativo cliente para se juntar com um grande número de outros usuários de terminais em grupos de trabalho colaborativos.
  • executar uma simulação intensiva computacionalmente em uma máquina remota e exibir os resultados em uma máquina desktop local
  • executando software gráfico em várias máquinas ao mesmo tempo, controlada por um único monitor, teclado e mouse.

Princípios

Em 1984, Bob e Scheifler Jim Gettys estabelecido os primeiros princípios de X:

  • Não adicionar novas funcionalidades a menos que um implementador não pode completar uma aplicação real sem ele.
  • É tão importante para decidir o que um sistema não é como decidir o que é. Não servir todas as necessidades do mundo; em vez disso, tornar o sistema extensível para que as necessidades adicionais podem ser satisfeitas de uma forma compatível com versões superiores.
  • A única coisa pior do que generalizar a partir de um exemplo é generalizar a partir de nenhum exemplo em tudo.
  • Se um problema não é completamente compreendido, é provavelmente melhor para fornecer nenhuma solução.
  • Se você pode obter 90 por cento do efeito desejado por 10 por cento do trabalho, use a solução mais simples. (Veja também Pior é melhor.)
  • Isolar complexidade, tanto quanto possível.
  • Fornecer mecanismo em vez de política. Em particular, colocar a política interface de usuário nas mãos dos clientes.

O primeiro princípio foi modificado durante a concepção do X11 para: "Não adicionar novas funcionalidades, a menos que você souber de alguma aplicação real que vai exigir isso."

X em grande parte manteve a estes princípios. A implementação de exemplo é desenvolvido com vista à ampliação e melhoria da execução, mantendo-se compatível com o protocolo original de 1987.

Interfaces de usuário

GNOME interface gráfica do usuário
KDE Plasma interface gráfica do usuário
Xfce interface gráfica do usuário

X é primariamente uma definição de protocolo e gráficos primitivos e deliberadamente não contém qualquer especificação de aplicação design de interface do usuário, tais como botão, menu ou janela estilos barra de título. Em vez disso, software de aplicação - como gerenciadores de janela, GUI kits de ferramentas de widget e ambientes de desktop, ou específico do aplicativo interfaces gráficas - definir e fornecer tais detalhes. Como resultado, não há nenhuma interface típica X e vários ambientes de trabalho têm sido muito populares entre os usuários.

Um gerenciador de janelas controla o posicionamento ea aparência de janelas de aplicativos. Isso pode resultar em interfaces de área de trabalho semelhantes às de Microsoft Windows ou Apple Macintosh (exemplos incluem Metacity no GNOME , KWin em KDE Software Compilation, Xfwm em Xfce, ou Compiz) ou ter radicalmente diferentes controles (como um ladrilhos gerenciador de janelas, como wmii ou Ratpoison). Algumas, tais como as interfaces De açúcar ou de Chrome OS evitam o metáfora do desktop completo, simplificando suas interfaces para aplicações especializadas. Gerenciadores de janela variam em sofisticação e complexidade das nu-ossos (por exemplo, twm, o gerenciador de janelas básico fornecido com X, ou EvilWMName, um gerenciador de janelas extremamente leve) para os ambientes de desktop mais abrangentes, tais como Esclarecimento e até mesmo para gestores de janelas específicas de aplicativos para mercados verticais, como ponto de venda.

Muitos usuários usam X com um ambiente de desktop, que, além do gerenciador de janelas, inclui várias aplicações usando uma interface de usuário consistente. GNOME, KDE Software Compilation e Xfce são os ambientes de desktop mais populares. O Ambiente padrão Unix é o Common Desktop Environment (CDE). O freedesktop.org iniciativa aborda a interoperabilidade entre desktops e os componentes necessários para um desktop X competitivo.

Como X é responsável por teclado e mouse com interação ambientes gráficos, certa atalhos de teclado se tornaram associados com X. Control-Alt-Backspace normalmente termina a sessão X em execução, enquanto Control-Alt em conjunto com um interruptores de tecla de função para o associado console virtual. No entanto, esse detalhe é deixado para o desenho de uma implementação de servidor X e não é universal; por exemplo, implementações do servidor X para Windows e Macintosh, normalmente, não fornecer esses atalhos de teclado.

Implementações

A implementação X.Org serve como implementação canônica de X. Devido à liberal licenciamento, um certo número de variações, tanto livre e de código aberto e proprietário, têm aparecido. Fornecedores comercial Unix tendem a assumir a implementação open source e adaptá-lo para o seu hardware, geralmente personalizando-o e acrescentando extensões proprietárias.

Até 2004, XFree86 desde a variante mais comum X sobre a livre Sistemas Unix-like. XFree86 começou como um porto de X para PCs 386 compatíveis e, até o final da década de 1990, tornou-se a maior fonte de inovação técnica em X e o padrão de fato do desenvolvimento X. Desde 2004, no entanto, o X.Org Server, um fork do XFree86, tornou-se predominante.

Embora seja comum associar X com Unix, servidores X também existem nativamente dentro de outros ambientes gráficos. Da Hewlett-Packard Sistema operacional OpenVMS inclui uma versão do X com Common Desktop Environment (CDE), conhecido como DECwindows, como o seu ambiente de desktop padrão. A Apple 's Mac OS X v10.3 (Panther) e v10.4 (Tiger) incluem X11.app, baseado em XFree86 4.3 e X11R6.6, com melhor integração Mac OS X. Em Mac OS X v10.5 (Leopard), X11.app da Apple foi baseado em X.org (X11R7.2 base de código) em vez de XFree86 (atualmente em versão X11R6.8). Servidores de terceiros sob sistemas operacionais mais antigos da Apple na década de 1990, do sistema 7, e Mac OS 8 e 9, incluídos Apple MacX e White Pine Software de Êxodo.

Microsoft Windows não é fornecido com suporte para X, mas existem muitas implementações de terceiros, como software livre e de código aberto, como Cygwin / X, WeirdX e Xming (liberar a 6.9.0.31); software gratuito como o Mocha X Server; e produtos proprietários, como Xmanager, Exceed, excursão (por A Hewlett-Packard), MKS X / Server, Reflection X, X-Win32 e Xming.

Há também Java implementações de servidores X. WeirdX roda em qualquer plataforma que suporte Balançar 1.1. *, E será executado como um applet dentro maioria dos navegadores. O Android X Server é uma fonte aberta aplicação Java que roda em Android dispositivos.

Quando um sistema operacional com um sistema de janelas nativas anfitriões X, além disso, o sistema X pode usar a sua própria área de trabalho normal em uma janela separada do host ou ele pode ser executado sem raízes, ou seja, a área de trabalho X está escondido eo ambiente de janelas anfitrião gere a geometria e aparência das janelas hospedados X dentro da tela do host.

Terminais X

A Terminal X Dispositivos de Rede de Computação NCD-88k

Um terminal X é uma thin client que apenas executa um servidor X. Esta arquitetura tornou-se popular para a construção de parques de terminais de baixo custo para muitos usuários para usar simultaneamente o mesmo servidor grande computador para executar programas aplicativos como clientes do terminal X de cada usuário. Esta utilização é muito alinhado com a intenção original do projeto do MIT.

Terminais X explorar a rede (local domínio de transmissão) usando o X Display Manager Control Protocol para gerar uma lista de hosts disponíveis que são permitidos como clientes. Um dos anfitriões do cliente deve executar um Gerenciador de exibição X.

Uma limitação de terminais X e clientes mais finas é que eles não são capazes de qualquer entrada ou saída, exceto o teclado, mouse e monitor. Todos os dados relevantes é assumido como existem apenas no servidor remoto, eo usuário terminal X não tem métodos disponíveis para salvar ou carregar dados de um dispositivo terminal local, tais como um dispositivo de disco, CD-ROM ou disquete de armazenamento USB. No entanto, a impressão é normalmente suportado como uma rede compartilhada ou conexão serial perto do terminal.

(Hardware) terminais X dedicados tornaram-se menos comuns; um PC ou moderno thin client com um servidor X proporciona, tipicamente, a mesma funcionalidade ao mesmo tempo, ou mais baixa, custo.

Limitações e críticas

O UNIX-ABORRECEDORES Handbook (1994) dedicou um capítulo inteiro para os problemas de X. Por que X não é o nosso Window System Ideal (1990) por Gajewska, Manasse e McCormack problemas detalhados no protocolo com recomendações para melhoria.

Questões de interface de usuário

A falta de diretrizes de design em X, resultou em várias interfaces muito diferentes, e em aplicações que nem sempre funcionaram bem juntos. O Inter-Client manual de Convenções Comunicação (ICCCM), uma especificação para a interoperabilidade cliente, tem uma reputação de ser difícil de implementar corretamente. Outros esforços de normalização, tais como Motif e CDE não aliviar os problemas. Isto tem usuários frustrados e programadores. Programadores gráficos agora geralmente abordar a consistência de aplicação look and feel e comunicação através de codificação para um ambiente de desktop específico ou a um kit de ferramentas de widget específico, o que também evita ter que lidar diretamente com o ICCCM.

As questões de acessibilidade computador relacionado

Os sistemas construídos sobre o sistema de janelas X pode ter as questões de acessibilidade que fazem uso de um computador difícil para os usuários com deficiência (e usuários de computadores sem um teclado inteiramente caracterizado ou dispositivo apontador - por exemplo, smartphones), incluindo clique direito, Clique duplo, botão do meio, mouse-over, e foco roubar. Alguns clientes X11 lidar com as questões de acessibilidade melhor do que outros, por isso, as pessoas com problemas de acessibilidade não são trancado para fora de uso do X11. No entanto não existe um padrão de acessibilidade ou directrizes de acessibilidade para o X11. Dentro dos padrões X11 processar não há nenhum grupo de trabalho sobre acessibilidade, no entanto, necessidades de acessibilidade estão sendo tratados em projectos de software para fornecer esses recursos em cima de X, incluindo Orca eo ATK.

O Orca projeto adiciona suporte de acessibilidade para o X Window System, incluindo a implementação de uma API ( AT-SPI). Este é acoplado com o Gnome de ATK para permitir recursos de acessibilidade a ser implementado em programas X que usam as APIs do Gnome / GTK. O KDE oferece um conjunto diferente de software de acessibilidade, incluindo um conversor de texto-para-voz e um ampliador de tela. Os outros principais desktops (LXDE, Xfce e englightenment) não têm o seu próprio software de acessibilidade, mas tente ser compatível com ATK.

Rede

Exemplo de tunelamento uma aplicação X11 por SSH

Um cliente X geralmente não podem ser destacados a partir de um servidor e recolocado para outro, a menos que seu código prevê especificamente para ele ( emacs é um dos poucos programas comuns com esta capacidade). Por extensão, movendo-se uma sessão inteira de um servidor X para outro, geralmente não é possível. No entanto, se aproxima como Virtual Network Computing (VNC), NX e XPRA permitir uma sessão virtual a ser alcançado a partir de diferentes servidores X (de um modo semelhante ao GNU tela em relação aos terminais), e outras aplicações e toolkits fornecer instalações conexas. Soluções alternativas, como x11vnc (VNC: 0 espectadores) e NX (modo sombra de nxagent) também existem para tornar a tela X-servidor atual disponível via VNC e NX respectivamente. Esta capacidade permite que a interface do usuário (mouse, teclado, monitor) de um aplicativo em execução para ser transferido de um local para outro sem parar e reiniciar o aplicativo. Isso pode ser importante em algumas aplicações, como monitoramento e controle de processos.

O tráfego de rede entre um servidor X e os clientes X remotos não é criptografada por padrão. Um invasor com um packet sniffer pode interceptá-lo, tornando-se possível visualizar qualquer coisa apresentado ou enviado a partir da tela do usuário. A maneira mais comum para criptografar o tráfego X é estabelecer um Secure Shell (SSH) túnel para comunicação.

Como todos thin clients, ao usar X através de uma rede, banda limitações podem impedir o uso de aplicações intensivas de bitmap que exigem uma atualização rapidamente grandes porções da tela com baixa latência, como animação 3D ou de edição de fotos. Mesmo um relativamente pequeno fluxo de vídeo não comprimido 640x480x24bit 30fps pode facilmente ultrapassar a largura de banda de uma rede de 100 Mbits para um único cliente. As primeiras versões do X sofreria mesmo quando não estiver usando a rede local, como ao usar uma estação de trabalho Linux com o servidor eo cliente X no mesmo sistema, devido ao protocolo centrada em rede que ainda iria utilizar um modelo de rede interna no computador , via soquetes localhost ou Unix. Em contraste, as versões modernas de X geralmente têm extensões como MESA permitindo display local de gráficos de um programa local para ser otimizado para ignorar o modelo de rede e controlar diretamente a placa de vídeo, para o uso de vídeo em tela cheia, aplicativos 3D prestados, e outras aplicações.

Separação de cliente-servidor

O projeto de X requer os clientes e servidor para operar separadamente e independência do dispositivo e a separação de cliente e servidor incorrer em despesas gerais. A maior parte da sobrecarga vem da rede de ida e volta tempo de atraso entre o cliente eo servidor ( latência), em vez de partir do próprio protocolo: as melhores soluções para os problemas de desempenho dependem de design da aplicação eficiente. Uma crítica comum de X é que as suas características de rede resultar em complexidade excessiva e diminuição do desempenho se usado apenas localmente.

Modern implementações X uso Soquetes de domínio Unix para interconexões eficazes no mesmo host. Adicionalmente memória partilhada (através do Extensão MIT-SHM) pode ser empregue para comunicação cliente-servidor mais rápido. No entanto, o programador deve ainda explicitamente ativar e usar a extensão de memória compartilhada. Também é necessário fornecer caminhos de fallback para permanecer compatível com as implementações mais antigas, e, a fim de se comunicar com servidores X não-locais.

Concorrentes

Algumas pessoas têm tentado escrever Alternativas e substituições para alternativas X. históricos incluem Sun de News, que falhou no mercado, e Próximo Mostrar PostScript, tanto Sistemas baseados em PostScript suportam procedimentos do lado do visor definíveis pelo usuário, que X não tinha. Mac OS X, iOS e Android são os principais sistemas Unix-like não usando X para gráficos.

Quando a Apple Inc. comprou a NeXT, e utilizado NeXTSTEP para construir Mac OS X, eles substituíram exibição com PostScript Quartz. Mike Paquette, um dos autores de quartzo, explicou por que a Apple não se moveu de exibição PostScript para X, e preferiu desenvolver seu próprio servidor janela, dizendo que uma vez que a Apple adicionou suporte para todos os recursos que ele queria incluir no X11, que não iria ter muita semelhança com X11 nem ser compatível com outros servidores de qualquer maneira.

Servidor de exibição Wayland, organizado pela freedesktop.org e desenvolvido por vários desenvolvedores X.Org, ambos os endereços críticas de X, substituindo-o completamente e trabalha diretamente com o hardware via DRI. Está previsto para Wayland para eventualmente substituir X em Ubuntu e Fedora, duas distribuições GNU / Linux conhecidas. Wayland lida com compatibilidade com versões anteriores com X por opcionalmente executando um servidor X.org como um cliente, que pode ser sem raízes (tendo uma janela Wayland por cliente X).

Outras tentativas de abordar as críticas de X, substituindo-o completamente incluem Berlin / Fresco e do Y Window System. Estas alternativas têm visto insignificante take-up e foram abandonadas por seus desenvolvedores; comentaristas amplamente duvidar da viabilidade de qualquer substituição que não preserva a compatibilidade com X.

Outros concorrentes tentam evitar a sobrecarga de X, trabalhando diretamente com o hardware. Tais projetos incluem DirectFB. O Infra-estrutura de renderização direta (DRI), que tem como objetivo fornecer uma interface no nível do kernel confiável para o framebuffer, pode tornar esses esforços redundantes.

Outras maneiras de alcançar a transparência de rede para serviços gráficos incluem:

  • o SVG Terminal, um protocolo para atualizar Conteúdo Scalable Vector Graphics (SVG) em um navegador quase em tempo real
  • Virtual Network Computing (VNC), um sistema de muito baixo nível que envia bitmaps compactados em toda a rede; a implementação Unix inclui um servidor X
  • Citrix XenApp, um produto X-like para o Microsoft Windows
  • Tarantella, que fornece um cliente Java para uso em navegadores web
  • RAWT, da IBM Java-only AWT remota, que implementa um "servidor" Java e anzóis simples para qualquer cliente Java remoto.

MicroXwin não é uma substituição de pleno direito para o X, mas mantém compatibilidade binária com clientes padrão X, proporcionando melhor desempenho e significativamente menor sobrecarga de memória por uma arquitetura diferente do projeto que implementa diretamente o sistema como um módulo do kernel. O módulo do kernel é proprietária, enquanto as bibliotecas de espaço do usuário, libX11 (homólogo de Xlib) e libXext, estão disponíveis sob Licença BSD.

História

Antecessores

Vários sistemas de visualização de bitmap precedida X. A partir de Xerox veio o Alto (1973) eo Star (1981). A partir de Apollo Computer veio Display Manager (1981). A partir da Apple veio a Lisa (1983) e o Macintosh (1984). O Unix mundo teve a Andrew Projeto (1982) e Rob Pike de Terminal de Blit (1982).

Carnegie-Mellon University produziu um aplicativo de acesso remoto chamado Alto Terminal, que exibia janelas sobrepostas na Xerox Alto, e fez hosts remotos (normalmente sistemas de dezembro VAX rodando Unix) responsáveis pela manipulação de eventos janela-exposição e conteúdo da janela refrescantes como necessário.

X deriva seu nome como um sucessor para um sistema de janelas pré-1983 chamado W (a letra X na precedente Inglês alfabeto). W correu sob a Sistema operacional V. W utilizado um protocolo de rede de suporte de terminais gráficos e janelas, o servidor manter listas de exibição.

Introdução

X foi apresentado ao MIT Projeto Athena comunidade no seguinte e-mail em Junho de 1984:

 De: rws @ mit-bold (Robert W. Scheifler) Para: window @ Athena Assunto: janela Data sistema X: 19 de junho de 1984 0907-EDT (terça-feira) Eu passei os últimos algumas semanas escrevendo um sistema de janelas para o VS100.  Eu roubei uma boa quantidade de código a partir de W, cercado com um assíncrono, em vez de uma interface síncrona, e chamou-lhe X. O desempenho geral parece ser cerca de duas vezes a de W. O código parece bastante sólido, neste ponto, embora ainda existam algumas deficiências a fixar-se.  Estamos em LCS pararam de usar W, e agora estão ativamente construindo aplicativos no X. Qualquer outra pessoa usando W devem considerar seriamente a mudança.  Este não é o sistema de janela final, mas eu acredito que é um bom ponto de partida para a experimentação.  Logo no momento em que há um CLU (e um Argus) interface para X;  uma interface C está em obras.  Os três aplicativos existentes são um editor de texto (TED), uma interface Argus I / O, e um gerenciador de janelas primitivo.  Não há nenhuma documentação ainda;  qualquer um louco o suficiente para ser voluntário?  I pode chegar ao redor dele eventualmente.  Quem estiver interessado em ver uma demo pode cair por NE43-531, embora você pode querer chamar 3-1945 primeiro.  Qualquer um que queira o código pode vir de uma fita.  Quem estiver interessado em hacking deficiências, não hesite em entrar em contato. 

Origem e desenvolvimento precoce

A idéia original de X surgiu no MIT em 1984 como uma colaboração entre Jim Gettys (de Projeto Athena) e Bob Scheifler (do MIT Laboratório de Ciência da Computação). Scheifler precisava de um ambiente de exibição utilizável para a depuração do sistema Argus. Projeto Athena (um projeto conjunto entre Digital Equipment Corporation (DEC), MIT e IBM para facilitar o acesso aos recursos de computação para todos os estudantes) precisava de um sistema de gráficos independente de plataforma para interligar seus sistemas de múltiplos fornecedores heterogêneos; o sistema de janelas, em seguida, em desenvolvimento na Universidade de Carnegie Mellon Andrew Projeto não fez licenças disponíveis, e não há alternativas existiu.

O projeto resolvido isso criando um protocolo que ambos poderiam rodar aplicativos locais e mobilizar os recursos remotos. Em meados de 1983 uma porta inicial de W para Unix funcionou em um quinto da sua velocidade sob V; maio 1984, substituiu o Scheifler síncrono protocolo de W com um protocolo assíncrono e as listas de exibição com o modo gráfico imediatas para a versão X 1. X tornou-se o primeiro ambiente de sistema de janelas para oferecer independência de hardware e verdadeira independência do vendedor.

Scheifler, Gettys e Ron Newman começou a trabalhar e X progrediu rapidamente. Eles lançaram a versão 6 em janeiro de 1985. dezembro, em seguida, se preparando para lançar seu primeiro Ultrix estação de trabalho, julgado X o único sistema susceptível de se tornar disponíveis em tempo de janelas. Engenheiros dezembro portado X6 para exibição QVSS de dezembro em MicroVAX.

No segundo trimestre de 1985, adquiriu X suporte de cores para a função no dezembro VAXstation-II / GPX, formando o que se tornou a versão 9.

Um grupo de Brown University portado versão 9 para a IBM RT / PC, mas problemas com a leitura de dados não alinhados na RT forçou uma mudança de protocolo incompatível, levando a versão 10 no final de 1985. Em 1986, organizações de fora tinha começado a pedir X. X10R2 foi lançado em Janeiro de 1986, em seguida, X10R3 em fevereiro de 1986 . Embora MIT tinha licenciado X6 para alguns grupos de fora para uma taxa, decidiu neste momento para licenciar X10R3 e as versões futuras sob o que se tornou conhecido como o MIT License, pretendendo popularizar X mais e, em troca, esperando que muitas outras aplicações se tornaria disponível. X10R3 tornou-se a primeira versão para alcançar ampla implantação, com ambos dezembro e Hewlett-Packard lançar produtos baseados nele. Outros grupos portado para X10 Apollo e Estações de trabalho Sun e até mesmo para a IBM PC / AT. Demonstrações da primeira aplicação comercial para X (um sistema de engenharia mecânica auxiliada por computador a partir de Cognição Inc. que corria em VAXes e remotamente exibida em PCs rodando um servidor X portado por Jim Fulton e Jan Hardenbergh) ocorreu na feira Autofact em que tempo. A última versão do X10, X10R4, apareceu em dezembro de 1986.

Tentativas foram feitas para permitir que servidores X como dispositivos de colaboração em tempo real, tanto quanto Virtual Network Computing (VNC) viria a permitir um ambiente de trabalho para ser compartilhado. Um tal esforço inicial foi Philip J. Rajada de Ferramenta SharedX.

Embora X10 oferecido funcionalidade interessante e poderosa, tornou-se óbvio que o protocolo X poderia usar um redesign mais hardware neutro antes de se tornar demasiado amplamente utilizados, mas MIT por si só não teria os recursos disponíveis para tal um redesenho completo. Como isso aconteceu, de dezembro Ocidental Software Laboratory se encontrava entre os projetos com uma equipe experiente. Smokey Wallace de dezembro WSL e Jim Gettys propôs que dezembro WSL construir X11 e torná-lo disponível gratuitamente sob os mesmos termos que X9 e X10. Este processo iniciou-se em maio de 1986, com o protocolo finalizado em agosto. Testes alfa do software começou em Fevereiro de 1987, teste beta em maio; o lançamento do X11 finalmente ocorreu em 15 de Setembro de 1987.

O projeto do protocolo X11, liderada por Scheifler, foi amplamente debatido nas listas de discussão abertas no Internet nascente que foram em ponte de notícias da Usenet. Gettys mudou para a Califórnia para ajudar a conduzir o trabalho de desenvolvimento X11 no WSL do Centro de Pesquisa de Sistemas de dezembro, onde Phil Karlton e Susan Angebrandt liderou o projeto de servidor de exemplo X11 e implementação. Por conseguinte, o símbolo X representa um dos primeiros escala muito grande distribuído projetos de software livre e open source.

O MIT X Consortium eo X Consortium, Inc.

Em 1987, com o sucesso do X11 se tornando aparente, MIT desejava abandonar o comando do X, mas em uma reunião de Junho de 1987, com nove fornecedores, os vendedores disseram MIT que acreditavam na necessidade de um partido neutro para manter X de fragmentação em o mercado. Em janeiro de 1988, o MIT X Consortium formado como um grupo de fornecedores sem fins lucrativos, com Scheifler como diretor, para dirigir o futuro desenvolvimento de X em uma atmosfera neutra inclusiva dos interesses comerciais e educacionais. Jim Fulton aderiu em Janeiro de 1988 e Keith Packard março 1988 como senior desenvolvedores, com Jim focando Xlib, fontes, gerenciadores de janelas e utilitários; e Keith re-implementação do servidor. Donna Converse, Chris D. Peterson, e Stephen Gildea se juntou mais tarde naquele ano, com foco em kits de ferramentas e conjuntos de widget, trabalhando de perto com Ralph Swick do MIT Project Athena. O MIT X Consortium produziu várias revisões significativas para o X11, o primeiro (Release 2 - X11R2) em fevereiro de 1988. Jay Hersh se juntou à equipe em janeiro de 1991 para trabalhar no Funcionalidade PEX e X113D. Ele foi seguido logo depois por Ralph Mor (que também trabalhou no PEX) e Dave Sternlicht. Em 1993, como o MIT X Consortium se preparava para partir do MIT, a equipe se juntaram a Gary R. Cutbill, Kaleb Keithley, e David Wiggins.

Em 1993, o X Consortium, Inc. (uma corporação sem fins lucrativos), formado como o sucessor do MIT X Consortium. Ele lançou X11R6 em 16 de Maio de 1994. Em 1995, assumiu o desenvolvimento do Kit de ferramentas Motif e do Common Desktop Environment para sistemas Unix. O X Consortium dissolvida no final de 1996, a produção de uma revisão final, X11R6.3, e um legado de crescente influência comercial no desenvolvimento.

O grupo Open

Em janeiro de 1997, o X Consortium passou mordomia de X para The Open Group, um grupo de fornecedores formada no início de 1996 pela fusão da Open Software Foundation e X / Open.

O Open Group lançou X11R6.4 no início de 1998. De forma controversa, X11R6.4 partiram os termos de licenciamento liberais tradicionais, como o Open Group procurou assegurar financiamento para o desenvolvimento de X. Os novos termos teria impedido a sua adopção por muitos projetos ( tal como XFree86) e até mesmo por alguns vendedores comerciais. Depois XFree86 parecia pronto para forquilha, o Open Group relicensed X11R6.4 sob a licença tradicional em setembro de 1998. O último lançamento do Open grupo veio como X11R6.4 remendo 3.

X.Org e XFree86

XFree86 originou em 1992 a partir da Servidor x386 para IBM PC compatíveis incluída com X11R5 em 1991, escrito por Thomas Roell e Mark W. Snitily e doado ao MIT X Consortium pelos Serviços de Consultoria gráficas Snitily (SGCS). XFree86 evoluiu ao longo do tempo a partir de apenas um porto de X para a implementação principal e mais popular eo de facto padrão de desenvolvimento de X.

Em maio de 1999, o Open Group formado X.Org. X.Org supervisionou o lançamento de versões X11R6.5.1 em diante. Desenvolvimento X neste momento tinha-se tornado moribundo; mais inovação técnica desde o X Consortium tinha dissolvido havia ocorrido no projeto XFree86. Em 1999, a equipe se juntou XFree86 X.Org como membro honorário (não-pagantes), incentivado por várias empresas de hardware interessados ​​em usar o XFree86 com Linux e em seu status como o mais popular versão do X.

Em 2003, enquanto a popularidade do Linux (e, portanto, a base instalada de X) subiu, X.Org permaneceu inativo e ativo desenvolvimento teve lugar em grande parte dentro XFree86. No entanto, a dissidência considerável desenvolvido dentro XFree86. O projeto XFree86 sofria de uma percepção de um demasiado modelo de desenvolvimento catedral-like; os desenvolvedores não poderia se comprometer o acesso CVS e fornecedores tinham de manter extensos conjuntos de patches. Em março de 2003, a organização XFree86 expulso Keith Packard, que se juntou XFree86 após o término do original MIT X Consortium, com sensação de mal considerável.

X.Org e XFree86 começaram a discutir uma reorganização adequada para nutrir adequadamente o desenvolvimento de X. Jim Gettys vinha pressionando fortemente para um modelo de desenvolvimento aberto desde pelo menos 2000. Gettys, Packard e vários outros começaram a discutir em pormenor os requisitos para a governação eficaz de X com o desenvolvimento aberto.

Finalmente, em um eco da disputa licenciamento X11R6.4, XFree86 lançou a versão 4.4 em fevereiro de 2004 sob uma licença mais restritiva que muitos projetos que dependem de X encontrado inaceitável. A cláusula adicionada à licença foi baseado no original cláusula de publicidade da licença BSD, que foi visto pela Free Software Foundation e Debian como incompatível com os GNU General Public License. outros grupos a viram como contra o espírito do original X. Theo de Raadt do OpenBSD , por exemplo, ameaçou desembolsar XFree86 citando preocupações de licença. A emissão da licença, combinada com as dificuldades na obtenção de mudanças em, deixou muitos sentindo o tempo estava maduro para um garfo.

A Fundação X.Org

No início de 2004, várias pessoas de X.Org e freedesktop.org formaram a Fundação X.Org, ea Open Group deu o controle do x.org nome de domínio. Isto marcou uma mudança radical no governo da X. Considerando que os mordomos de X desde 1988 (incluindo o X.Org antes) tinha sido organizações de vendedores, a Fundação foi conduzido por desenvolvedores de software e usado desenvolvimento comunitário com base no modelo bazar, que se baseia sobre o envolvimento externo. Membership foi aberto a indivíduos, com a adesão das empresas sendo em forma de patrocínio. Várias grandes corporações, como a Hewlett-Packard atualmente apoiar a Fundação X.Org.

A Fundação tem um papel de supervisão sobre o desenvolvimento X: decisões técnicas são feitas pelos seus méritos por chegar a um consenso áspera entre os membros da comunidade. As decisões técnicas não são feitas pelo conselho de administração; neste sentido, é fortemente inspirado no tecnicamente não-intervencionista Fundação GNOME. A Fundação emprega há desenvolvedores.

A Fundação lançou X11R6.7, o X.Org Server, em abril de 2004, com base no XFree86 4.4RC2 com mudanças X11R6.6 mescladas. Gettys e Packard tinha tomado a última versão do XFree86 sob a antiga licença e, fazendo um ponto de um modelo de desenvolvimento aberto e manter a compatibilidade GPL, trouxe muitos dos antigos desenvolvedores do XFree86 a bordo.

X11R6.8 saiu em setembro de 2004. Ele adicionou novas funcionalidades, incluindo suporte preliminar para janelas translúcidas e outros efeitos visuais sofisticados, ampliadores de tela e thumbnailers e facilidades para integração com sistemas de visualização 3D imersiva, como do Sol Projeto Looking Glass eo Croquet projeto. Aplicações externas chamados gerenciadores de janela de composição proporcionar política para a aparência visual.

Em 21 de Dezembro de 2005, X.Org lançou X11R6.9, o monolítico árvore de origem para usuários legados, e X11R7.0, o mesmo código fonte separado em módulos independentes, cada sustentável em projetos separados. A Fundação lançou X11R7.1 em 22 de Maio de 2006, cerca de quatro meses depois de 7.0, com melhorias de recursos consideráveis.

Por outro lado, o XFree86 ainda está sendo desenvolvido em um ritmo muito lento, ea versão 4.8.0 foi lançado em 15 de Dezembro de 2008.

Direções futuras

A Fundação X.Org e freedesktop.org gestão da linha principal de desenvolvimento X e eles pretendem fornecer mais acesso a recursos de hardware 3D onipresentes. Para combinações suficientemente capazes de hardware e sistemas operacionais, X.Org planeja acessar o hardware de vídeo apenas através da Infra-estrutura de renderização direta (DRI), usando o hardware 3D. O DRI apareceu pela primeira vez no XFree86 versão 4.0 e tornou-se padrão em X11R6.7 e mais tarde e este trabalho está em curso.

Nomenclatura

Os nomes próprios para o sistema estão listadas na página de manual como X; X Window System; X versão 11; X Window System, versão 11; ou X11.

O termo "X-Windows" (à maneira de "Microsoft Windows") não é endossado oficialmente - com gerente de lançamento X Consortium Matt Landau afirmando em 1993, "Não há nenhuma coisa como 'X Window' ou 'X Window', apesar do mau uso repetido das formas pelas trapos de comércio "- embora tenha sido em uso informal comum desde o início da história do X e tem sido usado deliberadamente para o efeito provocador, por exemplo, no Handbook UNIX-haters.

Histórico de lançamento

Versão Data de lançamento Mudanças mais importantes
X1 Junho 1984 Primeiro uso do nome "X"; alterações fundamentais que distinguem o produto a partir de W.
X6 Jan 1985Primeira versão licenciada a um punhado de empresas de fora.
X9Setembro 1985 Colour. Primeira versão sob licença MIT.
X10final de 1985IBM RT / PC, AT (rodandoDOS), e outros
X10R2Jan 1986
X10R3 Fev 1986 Primeira versão X redistribuídos livremente. Versões anteriores necessária uma licença de código BSD para cobrir as mudanças de código para o init / getty para apoiar login. uwm feito gerenciador de janelas padrão.
X10R4 Dezembro 1986 Última versão do X10.
X11 15 de setembro de 1987Primeira versão do actual protocolo.
X11R2 Fev 1988Primeira versão X Consortium.
X11R325 de outubro de 1988XDM
X11R422 de dezembro de 1989XDMCP,twm contratado como gerente padrão janela, melhorias de aplicação,extensão Forma, novas fontes.
X11R505 de setembro de 1991PEX, XCMS (, gerenciamento de cores)servidor de fontes,x386,de extensão de vídeo X
X11R616 de maio de 1994 ICCCM v2.0; Inter-Exchange Client; Gerenciamento de sessão X; Extensão de sincronização X; X extensão de Imagem; Extensão XTEST; X de entrada; X Big pedidos; XC-MISC; Mudanças XFree86.
X11R6.114 de março de 1996 Extensão X Duplo tampão; extensão de teclado X; Extensão X Record.
X11R6.2
X11R6.3 (Broadway)
23 de dezembro de 1996 A funcionalidade da Web, LBX. Última versão X Consortium. X11R6.2 é a marca para um subconjunto de X11R6.3 com os únicos recursos novos mais de R6.1 ser XPrint ea implementação Xlib de escrita vertical e suporte de caracteres definido pelo usuário.
X11R6.4 31 de março de 1998 Xinerama.
X11R6.5 Liberação X.org interno; não tornados públicos.
X11R6.5.120 de agosto de 2000
X11R6.604 de abril de 2001Correcções, alterações XFree86.
X11R6.7.006 de abril de 2004 Primeiro lançamento Fundação X.Org, incorporando XFree86 4.4rc2. Distribuição completas do usuário final. Remoção de Xie, e PEX libxml2.
X11R6.8.0 08 de setembro de 2004 Janela translucidez, XDamage, Distributed Multihead X,XFixes, Composite.XEvIE
X11R6.8.117 de setembro de 2004Correção de segurança nolibXpm.
X11R6.8.210 de fevereiro de 2005Correções de bugs, atualizações de drivers.
X11R6.9
X11R7.0
21 de dezembro de 2005 EXA, principal fonte de refatoração de código. A partir da mesma base de código-fonte, o modular versão autotooled tornou-se 7.0 eo monolítico versão imake foi congelado em 6.9.
X11R7.122 de maio de 2006Melhorias EXA,KDrive integrado,AIGLX, OS e melhorias de suporte de plataforma.
X11R7.215 de fevereiro de 2007Remoção deLBX eo driver do teclado embutido, X-ACE,XCB, melhorias AutoConfig limpezas.
X11R7.306 de setembro de 2007XServer 1.4, entradahotplug, hotplug saída (RandR 1.2),testes do DTrace,o suporte de domínio PCI.
X11R7.423 de setembro de 2008XServer 1.5.1, XACE, PCI-retrabalho, EXA speed-ups, _X_EXPORT,GLX 1.4, inicialização e desligamento mais rápido.
X11R7.526 de outubro de 2009XServer 1.7, Xi 2, XGE, E-apoio EDID,RandR 1.3,MPX, aceleração ponteiro previsível,gerenciador de memória DRI2, módulo de segurança do SELinux, além de remoção de bibliotecas obsoletas e extensões.
X11R7.620 de dezembro de 2010X Server 1.9,requisito XCB.
X11R7.706 de junho de 2012 Xorg servidor 1,10 alterações, o servidor Xorg 1,11 alterações, o servidor Xorg 1,12 alterações; Extensão de Sincronização 3.1: adiciona suporte Cerca objeto; Xi 2.2 suporte multitouch; XFixes 5.0: Barreiras do ponteiro.

Próximos lançamentos

Versão Data de lançamento Mudanças planejadas mais importantes
X11R7.8 2013 Extensão X Resource 1.2
Retirado de " http://en.wikipedia.org/w/index.php?title=X_Window_System&oldid=542416548 "