![]() |
s i s t e m a o p e r a c i o n a l m a g n u x l i n u x | ~/ · documentação · suporte · sobre |
Página seguinte
Página anterior
Índice
195. Informações gerais195.1 Conjuntos de caracteresUm conjunto de caracteres é definido de acordo com os símbolos constantes no alfabeto utilizado para escrita em uma ou mais línguas. A Organização Internacional para Padronização (International Organization for Standardization - ISO) padronizou através da norma ISO-8859 vários desses conjuntos, identificados como ISO-8859-x onde o x corresponde a um determinado alfabeto. O conjunto ISO-8859 utiliza 8 bits para representar cada caracter, o que permite uma gama de 256 sinais (valores de zero a 255). Em cada um dos conjuntos, os códigos zero a 127 correspondem ao conjunto ASCII (American Standard Code for Information Interchange) e os códigos 160 a 255 são usados para caracteres nacionais. Para o Português recomenda-se o uso do conjunto ISO-8859-1, que compreende o alfabeto latino e letras acentuadas usadas pelas línguas do oeste da Europa e América. Este conjunto de caracteres também é frequentemente chamado de Latin-1 ou ISO Latin-1. Um padrão mais recente é o Unicode, definido pela norma ISO-10646, que permite definir caracteres cuja representação interna no computador utiliza mais de um byte (ou octeto na nomenclatura ISO). Todas as versões mais recentes de sistemas Unix suportam Unicode (ou pelo menos seus fabricantes alegam suportar). Além dos caracteres alfanuméricos e sinais de acentuação, é possível ter sinais semigráficos para desenho de linhas e bordas. Esses sinais podem aproveitar códigos não utilizados pelo conjunto oficial, o que os torna não-portáveis. O Linux foi desenhado internamente de modo a facilitar a sua fácil configuração e extensão em tempo de execução, não constituindo o tratamento do teclado e fontes de caracteres excepção. Ele possui uma implementação ``nível 1'' do padrão Unicode. Maiores detalhes podem ser encontrados nos manuais do Linux, que podem ser lidos com os comandos man unicode man utf-8 man iso_8859_1 man asciimas antes disso certifique-se de que o man está configurado corretamente, conforme mostrado na seção Man, groff, troff.
195.2 Modo texto versus Sistema de Janelas XAlguns sistemas operativos, tais como MacOS, Microsoft Windows e NeXT, possuem interfaces gráficas próprias. No Linux, assim como na maioria dos sistemas compatíveis com Unix, é de uso corrente um ambiente gráfico criado para ser ``multiplataforma'': o X Window System, que também foi projetado para suportar diversos conjuntos de caracteres, idiomas e formatos de teclado. Existem muitas semelhanças entre os dois ambientes. Ambos se baseiam em padrões internacionais para definição de conjuntos de caracteres. Tanto no X quanto no console do Linux pode-se definir uma tecla chamada Compose cujo pressionamento seguido de duas outras gerará o caracter correspondente. Assim sendo, o pressionamento da seqüência compose-,-c gerará um c cedilhado. O tratamento do console é feito diretamente pelo sistema operativo e aplicações comuns não se envolvem com o processamento dos códigos de varredura do teclado, recebendo um caracter ou uma seqüência deles ao ser pressionada cada tecla, de tal sorte que tendo sido corretamente configurados o teclado e a fonte de caracteres pouco mais se tem a fazer. O X possui uma arquitetura muito diferente: tanto o teclado quanto a(s) tela(s) -- pode haver mais de uma tela -- são controlados por uma aplicação especial chamada servidor X. O pressionamento de uma tecla gera uma mensagem (chamada de evento) que é passada pelo servidor à aplicação cliente. Há um programa muito útil chamado xev que permite observar cada evento a ele transmitido. Cliente e servidor se comunicam via rede usando um conjunto de regras chamado protocolo X e podem rodar em máquinas diferentes. A máquina onde roda o servidor é chamada estação de trabalho ou terminal X e a máquina onde roda a aplicação (programa cliente) também é chamada de cliente.
195.3 Biblioteca de funções libc e aplicativos GNUA biblioteca padrão de funções do Linux suporta Internacionalização e Localização segundo o padrão POSIX (Portable Operating System Interface). Trata-se de uma norma estabelecida pelo IEEE (Institute of Electrical and Electronics Engineers) para intercomunicação entre diferentes sistemas operativos. Existe também um padrão estabelecido pelo ANSI (American National Standards Institute) para a linguagem de programação C que permite escrever programas com suporte internacional. Resumidamente, podemos dizer que as funções que tratam informações dependentes da língua ou do país podem ter seu comportamento modificado, bastando para tanto estabelecer algumas variáveis de ambiente. Se você não sabe o que é uma variável de ambiente, sugiro que leia o manual com o comando
man environ O padrão POSIX permite usar diversas variáveis de configuração, cada uma delas definindo o tratamento dado a um tipo de informação, a saber
Maiores informações podem ser obtidas no manual do sistema com o comando
man 7 locale O `7' no comando anterior é necessário para evitar confusão com uma função homônima do interpretador Perl. Note que as configurações acima afetam, em princípio, apenas as funções disponíveis na biblioteca de funções da linguagem C. Na prática, todos os programas que rodam em Unix usam aquela biblioteca, mas o sistema operativo não provê catálogos de mensagens em todas as línguas para todos os programas. Os códigos da língua e do local possuem duas letras e são separados por um
sinal ``_''. Se omitirmos o código de país, assume-se o país padrão para a
língua informada, mas deve haver um catálogo correspondente. Deste modo, o
código ``pt_PT'' significa Português de Portugal, enquanto ``pt_BR'' significa
Português do Brasil. Escolher uma combinação língua/local basta então colocar
em seu arquivo
LC_ALL="pt_PT" export LC_ALLUsuários brasileiros devem usar ``pt_BR'' ao invés de ``pt_PT''. Teste o resultado com os comandos a seguir ( /inexistente é o nome de um
arquivo que não existe):
echo ÁÉÍÓÚ | tr '[:upper:]' '[:lower:]' tar tf /inexistente ls -l / date cal 1 1999O resultado do primeiro deverá ser `` áéíóú ''. Os comandos tar e
ls devem retornar mensagens em Português e cal deve mostrar um
calendário de janeiro de 1999, com do se te qu qu se sá no cabeçalho dos
dias da semana.
Veja na seção
Configuração básica como
configurar a
195.4 O pacote KBDO pacote KBD contém os programas necessários à configuração do console no Linux. Além das fontes de caracteres, ele permite também controlar mapas de teclado e de tradução de tela, conforme descrito a seguir..
Mapas de tecladoCada tecla do PC possui um código numérico. Ao pressionarmos uma delas o processador controlador do teclado envia ao computador esse código de varredura, também conhecido como scancode, junto com um sinal de que a tecla foi pressionada ou solta. As seqüências de eventos são então processadas pelo driver de teclado e armazenadas em uma fila de caracteres que é lida pelas aplicações por meio da chamada de funções do sistema operativo. Um mapa de teclado é um arquivo de texto que estabelace as correspondências entre o scancode de tecla e o caracter (ou seqüência de caracteres) a gerar quando ela for pressionada, chamado keycode. Por exemplo: # atribuição da tecla '-' do teclado numérico à tecla com código 74 keycode 74 = KP_Subtract # atribuição da tecla '4' do teclado numérico à tecla com código 75 keycode 75 = KP_4 # etc... keycode 76 = KP_5 # tecla 5 keycode 77 = KP_6 # tecla 6 keycode 78 = KP_Add # soma keycode 79 = KP_1 # tecla 1 keycode 80 = KP_2 # tecla 2 Além das teclas alfabéticas, numéricas e de símbolos, existem outras chamadas modificadoras que permitem gerar códigos que não correspondem a nenhum sinal gráfico: Shift Control Alt e Meta. Esta última normalmente não é encontrada em teclados de PCs, apenas em estações de trabalho de fabricantes como Sun, SGI, HP e Digital (eles não gostam de ser chamados de ``DEC''). O editor de texto Emacs usa muito a tecla Meta. O arquivo de mapa permite também especificar teclas especiais chamadas ``teclas mortas'' (deadkeys). Quando pressionadas elas não resultam no aparecimento de um caracter na tela, limitando-se a alterar o comportamento da tecla pressionada a seguir para que, por exemplo, ao se digitar um ~ seguida de um a, seja gerado um `ã'. Até a versão 0.92 do pacote KBD esses mapas ficavam no diretório
Mapas de tradução de telaUm mapa de tradução de tela permite especificar qual o caracter X a ser
exibido na tela, quando um programa deseja exibir um caracter Y. Desta
forma, poderíamos fazer com que ao escrever o caracter com o código do
Este mapeamento é necessário apenas quando queremos usar uma fonte cujos caracteres não possuem códigos diretamente correspondentes aos do conjunto usado no mapa de teclado.
Comandos disponíveis
Página seguinte Página anterior Índice |