Concordando que seria bom se os dois conjuntos de configurações fossem integrados juntos, há duas razões pelas quais eles são diferentes:
- evoluíram separadamente (e ninguém propôs uma solução integrada que satisfaça os requisitos de ambos) e
- eles têm requisitos diferentes.
Os consoles virtuais Linux fornecem uma interface de terminal que suporta POSIX termios: o que você pode considerar em E / S de baixo nível de caractere . Isso foi bem definido em meados dos anos 80, com a tecnologia dos 10 anos anteriores. A interface termios está relacionada a caracteres de controle, alguns recursos de realce de vídeo para uma única fonte pequena etc. Ela não faz muitas suposições sobre o teclado além disso pode enviar caracteres.
O X11 chegou perto do final da década de 1980, projetado para suportar E / S gráficas . Faz suposições diferentes do que termios, por exemplo, gráficos implicam várias fontes (e a capacidade de exibir uma ampla gama de caracteres). Além disso (devido à necessidade de manipular um mouse ou outro dispositivo de ponteiro), é necessário usar métodos adicionais para manipular a entrada.
Ao contrário da interface termios (usando uma sequência de caracteres / bytes), o X11 passa informações por eventos que armazenam muitas informações, e eventos podem ser combinados de formas não contempladas quando termios foram criados. Assim, em vez de codificar control e shift em um caractere, um evento X11 pode passar o modificador control como um evento e um código da chave como outro evento. As bibliotecas do X11 combinam esses eventos.
Embora ambos existissem tecnologia desde o início, o X11 (mesmo como o X386) era menos usado, e basicamente chegou tarde demais por vários anos para influenciar o design dos termios. Tudo isso foi feito antes do Linux ser iniciado. Desde que houve (e aparentemente ainda é) nenhum projeto alternativo que forneça uma vantagem distinta, não houve nenhuma mudança desde meados do final dos anos 90.Leitura adicional: