Ilustração de uma aplicação que pode utilizar libvorbisfile.so para reproduzir um arquivo Ogg Vorbis
Na ciência da computação, biblioteca é uma coleção de subprogramas utilizados no desenvolvimento de software. Bibliotecas contém código e dados auxiliares, que provém serviços a programas independentes, o que permite o compartilhamento e a alteração de código e dados de forma modular. Alguns executáveis são tanto programas independentes quanto bibliotecas, mas a maioria das bibliotecas não são executáveis. Executáveis e bibliotecas fazem referências mútuas conhecidas como ligações, tarefa tipicamente realizada por um ligador.

A maior parte dos sistemas operacionais modernos provê bibliotecas que implementam a maioria dos serviços do sistema, que transformaram em comodidades os serviços que uma aplicação moderna espera que sejam providos pelo sistema operacional. Assim sendo, a maior parte do código utilizado em aplicações modernas é fornecido por estas bibliotecas.

Índice

1 Visão geral
2 Bibliotecas tradicionais
3 Ligação dinâmica
3.1 Realocação
4 Localizando bibliotecas em tempo de execução
5 Carregamento dinâmico
6 Bibliotecas remotas
7 Bibliotecas compartilhadas
8 Bibliotecas objeto
9 Nomenclatura

Visão geral

Bibliotecas podem ser classificadas pela maneira como são compartilhadas, pela maneira como são ligadas e por quando são ligadas.

Bibliotecas tradicionais

Historicamente, as bibliotecas consistiam de um conjunto de rotinas que eram copiadas para uma aplicação-alvo pelo compilador ou ligador, produzindo uma aplicação executável independente, ou standalone. Os fabricantes de compiladores proviam bibliotecas-padrão (por exemplo, a biblioteca padrão do C), mas os programadores também podiam criar suas próprias bibliotecas para uso próprio ou distribuição.

Ligação dinâmica

Ligação dinâmica significa que os dados em uma biblioteca não são copiados para um novo executável ou biblioteca em tempo de compilação, mas permanecem a um arquivo separado no disco. O ligador realiza uma quantidade mínima de trabalho em tempo de compilação—ele apenas grava quais bibliotecas são necessárias para o executável em um índice. A maior parte do trabalho é feita quando a aplicação é carregada em memória ou durante a execução do processo. O código de ligação necessário é na verdade parte do sistema operacional subjacente. Na hora apropriada, o carregador do programa encontra as bibliotecas relevantes no disco e adiciona os dados relevantes da biblioteca no espaço de memória do processo.

Alguns sistemas operacionais são apenas capazes de ligar uma biblioteca em tempo de carregamento, antes que a execução do processo se inicie; outros podem ser capazes de esperar até depois do início da execução e apenas ligar a biblioteca quando ela for referenciada (ou seja, durante o tempo de execução). Este último é freqüentemente chamado de "carregamento atrasado". Em ambos os casos, a ligação é dita dinâmica.

Plugins são uma utilização comum de bibliotecas de ligação dinâmica, algo especialmente útil quando as bibliotecas podem ser substituídas por outras com interfaces similares, mas funcionalidades diferentes. Diz-se que um software possui uma "arquitetura de plugins" se ele utiliza bibliotecas para funcionalidades essenciais com a intenção de que elas possam ser substituídas. Note, entretanto, que o uso de bibliotecas de ligação dinâmica na arquitetura de uma aplicação não necessariamente significa que elas possam ser substituídas.

A ligação dinâmica foi originalmente desenvolvida no sistema operacional Multics, a partir de 1964. Ela também era uma característica do Michigan Terminal System, construído no final dos anos 1960.1 No Microsoft Windows, bibliotecas de ligação dinâmica são chamadas dynamic-link libraries.

Realocação

Uma sutileza com a qual o carregador de programas tem que lidar é que a localização real dos dados da biblioteca não é conhecida até que o executável e todas as bibliotecas a ele associadas sejam carregadas para a memória. Isto se deve ao fato de que as localizações de memória utilizadas dependerão de quais bibliotecas foram carregadas. Não é possível armazenar uma localização absoluta para os dados dentro do próprio executável, nem mesmo na biblioteca, uma vez que isto resultaria em conflitos entre diferentes bibliotecas. Isto é, se duas bibliotecas distintas alocassem espaços de memória iguais ou sobrepostos, seria impossível usar as duas no mesmo programa. Isto pode vir a mudar com a adoção de arquiteturas de 64-bits, pois elas oferecem endereços de memória virtual suficientes para garantir que cada biblioteca escrita receba sua faixa de endereços única.

Seria possível, em teoria, examinar o programa durante o tempo de carregamento e substituir cada referência a dados na biblioteca por ponteiros para as posições de memória apropriadas uma vez que todas as bibliotecas tivessem sido carregadas. Contudo, este método consumiria quantidades inaceitáveis de tempo ou memória. Em vez disso, a maioria dos sistemas de bibliotecas dinâmicas cria uma tabela de símbolos com endereços vazios no programa em tempo de compilação. Todas as referências ao código ou dados na biblioteca passam por esta tabela, chamada diretório de importação. Durante o tempo de carregamento esta tabela é modificada com a localização dos códigos e dados na biblioteca pelo carregador de programas. Este processo ainda é lento a ponto de comprometer a performance de programas que façam uso de outros programas a uma taxa muito alta, como é o caso de alguns shell scripts.

A biblioteca, por sua vez, contém uma tabela com todos os métodos que a compõem, conhecidos como pontos de entrada. Chamadas à biblioteca passam por esta tabela, procurando pela localização do código na memória e então os executando. Isto introduz uma sobrecarga na chamada de biblioteca, mas o atraso é, em geral, tão pequeno que pode ser negligenciado.

Localizando bibliotecas em tempo de execução

Ligadores e carregadores de programas dinâmicos variam amplamente em funcionalidade. Alguns dependem de caminhos explícitos armazenados no arquivo executável. Qualquer modificação no nome da biblioteca ou layout do sistema de arquivos causará falha nestes sistemas. Mais comumente, apenas um nome da biblioteca (e não do caminho) é armazenado no executável, e o sistema operacional provê um sistema para encontrar a biblioteca no disco, baseado em algum algoritmo.

A maioria de sistemas Unix-like possuem uma "busca de caminho" especificando o sistema de arquivos no qual procurar as bibliotecas dinâmicas. Em outros sistemas, o caminho padrão é especificado em um arquivo de configuração; em outros, é codificado no carregador de programas dinâmico. Alguns formatos de arquivos executáveis podem especificar diretórios adicionais nos quais procurar por bibliotecas de um programa em particular. Ele pode geralmente ser relido com uma variável de ambiente, embora ela esteja desabilitada para programas setuid e setgid, então o usuário não pode forçar tal programa a rodar código arbitrário. Desenvolvedores de bibliotecas são encorajados a colocar suas bibliotecas dinâmicas em locais no caminho de busca padrão. Por outro lado, isto pode tornar a instalação de novas bibliotecas problemática, e estes caminhos conhecidos rapidamente se tornarem padrão para um número crescente de arquivos de biblioteca, tornando o gerenciamento mais complexo.
O Windows verifica o Registro do Sistema para determinar o lugar próprio para achar uma DLL ActiveX, mas para outras DLL ele verifica o diretório de onde o programa foi carregado; o diretório corrente de trabalho (somente nas antigas versões de Windows); quaisquer diretórios selecionados pela chamada da funçãoSetDllDirectory(); os diretórios System32, System e Windows; e, finalmente, os diretórios especificados pela variável de ambiente PATH.2
O OpenStep usa um sistema mais flexível, coletando uma lista de bibliotecas de um número conhecido de localizações (similar ao conceito de PATH) quando o sistema se inicia. O deslocamento de alguma biblioteca não causa problemas, no entanto um tempo maior será necessário durante o primeiro início do sistema.
Uma das grandes desvantagens da ligação dinâmica é que os executáveis dependem de bibliotecas armazenadas separadamente para o correto funcionamento. Se uma biblioteca é apagada, movida, ou renomeada, ou ainda se uma versão incompatível de uma DLL é copiada para o lugar onde é procurada, o executável pode ter mal funcionamento ou mesmo falhar no carregamento; danificando arquivos vitais vitais usados por quase todos os executáveis do sistema (como a biblioteca Clibc.so nos sistemas Unix), tornando o sistema inoperável. No Windows isso é comumente chamado de DLL hell.

Carregamento dinâmico

O Carregamento dinâmico é um subconjunto da ligação dinâmica em que uma biblioteca ligada dinâmica é carregada ou descarregada do sistema em tempo de execução após requisição. A requisição pode ser feita implicitamente em tempo de compilação, ou explicitamente em tempo de execução. Requisições implícitas são feitas ao adicionar referências às bibliotecas a um arquivo objeto pelo ligador. Requisições explícitas são feitas pelas aplicações através do uso de uma API de ligação.

A maioria dos sistemas operacionais que suportam a ligação dinâmica também suportam o carregamento dinâmico através de uma API específica. Por exemplo, o Windows utiliza as funções da API LoadLibrary, LoadLibraryEx, FreeLibrary e GetProcAddress para DLL; incluindo a maioria dos UNIX e UNIX-like, sistemas baseados em POSIX usam dlopen, dlclose e dlsym.

Bibliotecas remotas

Outra solução para a questão das bibliotecas é utilizar executáveis completamente separados e chamá-los através de chamadas de procedimento remoto (RPC). Essa abordagem maximiza o reaproveitamento do sistema operacional: o código necessário para suportar a biblioteca é o mesmo usado para prover o suporte e a segurança da aplicação para os outros programas. Adicionalmente, esse sistema remoto não requer que a biblioteca esteja na mesma máquina do executável, as chamas podem ser transmitidas por uma rede.

A desvantagem é que cada chamada da biblioteca implica uma sobrecarga considerável. Entretanto, essa abordagem tornou-se popular em diversas áreas específicas, como sistemas cliente-servidor e servidores e aplicação como o Enterprise JavaBeans.

Bibliotecas compartilhadas

Além de poderem ser carregadas estaticamente ou dinamicamente, bibliotecas também são classificadas de acordo com como são compartilhadas pelos programas. Bibliotecas dinâmicas quase sempre fornecem alguma forma de compartilhamento, permitindo que sejam utilizadas por diferentes programas ao mesmo tempo. Por definição, bibliotecas estáticas não podem ser compartilhadas pois são ligadas individualemente a cada programa.

O termo biblioteca compartilhada é ambíguo, pois se refere a dois conceitos distintos. O primeiro é o compartilhamento de código localizado no disco por programas não relacionados. O segundo é o compartilhamento de código carregado na memória, quando dois programas executam a mesma página física da RAM, mapeada em diferentes espaços de endereçamento. O segundo caso possui algumas vantagens. Por exemplo, no sistema OpenStep as aplicações tinham geralmente um tamanho pequeno e eram carregadas instantaneamente; a vasta maioria do código estava localizada em bibliotecas já carregadas pelo sistema operacional. Mas existe um custo, pois o código compartilhado deve ser escrito para ser executado em um ambiente multitarefa, o que afeta o desempenho.

Na maioria dos sistemas operacionais modernos, o compartilhamento de bibliotecas pode ser do mesmo formato dos executáveis. Isso permite que o carregador de programas seja o mesmo para executáveis e bibliotecas, e que um executável seja usado como biblioteca dinâmica, se tiver uma tabela de símbolos. Formatos típicos de híbridos executável/DLL são ELF e Mach-O (Unix) e PE (Windows). No Windows o conceito vai além, pois mesmo recursos de sistema como fontes e ícones são adicionados a uma DLL.

Bibliotecas objeto

Apesar da ligação dinâmica ter sido desenvolvida na década de 1960, somente no final da década de 1980 a tecnologia atingiu o consumidor final. Durante a década de 1990 já estava disponível na maioria dos sistemas operacionais. Durante o mesmo período a programação orientada a objeto tornou-se cada vez mais significativa no desenvolvimento de software. POO em tempo de execução requer informações adicionais que bibliotecas tradicionais não fornecem. Além dos nomes e dos pontos de entrada da biblioteca, também requerem uma lista de objetos do qual dependem. Como no caso de uma herança, que separa partes de uma definição em diferentes pontos do código. Em um sistema verdadeiramente orientado a objeto, as bibliotecas podem não ser conhecidas em tempo de compilação.

Ainda no mesmo período outra área de desenvolvimento era o conceito de execução remota, em que um computador cliente executaria os serviços de um mainframe. O cliente manteria mensagens para a central a fim de receber pacotes de dados para apresentar. Chamadas de procedimento remoto já eram usadas para essas tarefas, ainda que não houvesse um sistema padrão para tal.

Os dois conceitos logo foram fundidos, produzindo um formato de biblioteca orientada a objeto que pudesse ser executado em qualquer local. Tais sistemas foram denominados bibliotecas objeto, ou objetos distribuídos se suportassem acesso remoto. A Component Object Model da Microsoft é exemplo desse tipo de biblioteca para uso local, e a DCOM para uso remoto.

Por um tempo bibliotecas objeto foram a sensação do mundo da programação, existindo esforços para criar sistemas que pudessem ser executados em diferentes plataformas. Exemplos incluem System Object Model (SOM/DSOM) da IBM, Distributed Objects Everywhere (DOE) da Sun Microsystems, Portable Distributed Objects (PDO) da NeXT, Component Object Model (COM/DCOM) da Microsoft, e diferentes sistemas baseados em CORBA. O que sucedeu foi que o conceito foi caindo em desuso, com exceção da COM da Microsoft e o PDO da NeXT (agora Apple Inc.).

Nomenclatura

GNU/Linux, Solaris e variantes BSD: os arquivoslibfoo.a elibfoo.so estão localizados em diretórios como/lib,/usr/lib ou/usr/local/lib. Os nomes dos arquivos sempre começam comlib e terminam com.a (arquivo, ligação estática) ou.so (objeto compartilhado, ligação dinâmica), opcionalmente com o número da versão interface, comlibfoo.so.2.
Mac OS X e superiores: o sistema herda as convenções de bibliotecas estáticas do BSD, e pode usar o estilo.so (mas com o sufixo.dylib).
Microsoft Windows: arquivos*.LIB são de ligação estática e arquivos*.DLL são de ligação dinâmica. Existem ainda usuos específicos de DLL, como por exemplo o*.OCX para bibliotecas de controle OCX. A versão da interface está codificada no arquivo, ou abstraída usando uma interface COM.
Referências

↑ "A History of MTS", Information Technology Digest, Vol. 5, No. 5
↑ About Dynamic Link Libraries, Microsoft Developer Network, http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/dynamic-link_library_search_order.asp

Faça um comentário, participe:



O site é totalmente grátis, clique acima em YOUTUBE para liberar o acesso ao site!


.................................... aguardando!!!











































































































































































































Artigos em Destaque



Tecnologia do Blogger.

Palavras mais buscadas no site

Trabalhos Escolares Trabalho Escolar Biologia Português Matéria Português Rede Social Dicas de Português Língua Portuguesa História ZOOLOGIA Facebook Memes Trolls Geografia Memes Zuando muito no face Trollando Memes para facebook Escrevendo em redes sociais Educação Física Concursos Públicos Gramática Dúvidas de Português Esportes Concursos Dicas de Concursos Públicos Biografia Informática O que é a língua portuguesa Química Física Geologia Tecnologia Enfermagem Geofísica Enem Questões para Concursos Cartaz Cartazes Manifestações TI Blocos Econômicos e Organizações Internacionais Sociologia Arte Artes GENÉTICA PROUNI SISU Concordância Diversos Dicas Questões ECOLOGIA Faculdade Simulado Universidade Vestibular Biografias Civilizações Atualidades CAFTA Ortografia Protesto Seu Trabalho Literatura QUESTÕES DE Português com Gabarito Redação Crase Esqui Aquático Computadores analógicos Curiosidades Gramática. História da computação História do hardware Índio EVOLUÇÃO Indígena Uso da Crase - quando há (ou não) crase Artigos 196 a 200 da Constituição Federal Lei n° 8.142 Lei nº 8.080 Organização e Funcionamento do SUS Plural Sistema Único de Saúde Tecnologia da Informação Grafia Hífen QUESTÕES DE RACIOCÍNIO LÓGICO Com Gabarito RACIOCÍNIO LÓGICO Autores Homônimos Parônimos Uso da vírgula Carta Educação Resumos Saúde Vírgula Windows Anita Garibaldi Dica de repelente caseiro contra mosquitos e moscas Manchas Ortográfico Reciclagem Sinônimos Verbos Vocativo Windows 8 Aleijadinho Aluísio Azevedo Aposto Bilhete Carta Argumentativa Carta comercial Carta de Reclamação Carta de informação Carta de solicitação Carta do leitor Cartão-postal Comunidade Andina Convite DOS Dicionário E-mail Emprego Energia Estudar Fast Evolução da Tecnologia da Informação Exemplos de Textos do Cotidiano Fernando Pessoa Formas variadas de linguagem Futebol Futebol americano Gauchês Ginástica Gêneros textuais do cotidiano Idade Média Identidade Imagens para Facebook Instalação Lei Lei federal MS-DOS Matemática Mix Útil Polo aquático Precisão e adequação vocabular Pronomes Psicologia Publicidade Questões de Português Ortografia com Gabarito Reforma ortográfica Significados Texto instrucional (injuntivo) Tênis de Mesa Uso de por que Verbo Windows 7 Windows XP por quê porque e porquê saúde no Brasil 99 : Salário baixo e injustiça A Estrutura Curricular da Disciplina De Educação Física A Grande Influência da Lua em Nossas Vidas. A guerra civil gaúcha A participação do México no Nafta ACENTUAÇÃO ACENTUAÇÃO GRÁFICA ANARQUIA ASEAN Abafadores Abandono Acentos Acústico Adolf Hitler Advérbios Afonso Pena AlCA x ALBA Alca Alfabeto Alimentos que ajudam a perder barriga Anatomia comparada Anel Apec Apostila Apostila Concurso Professor Apostila PEB ll Arroz integral Arte Barroca Arte Rupestre Artesanato Arthur Aguiar Artigos Assíria Asteca Astrolábio Atletismo Até onde a Lua influencia a nossa vida? Automação Babilônia Badminton Balonismo Bancos Barack Obama Barulho Barão de Mauá Barão do Rio Branco Basquetebol Beisebol Benito Mussolini Benjamin Constant Biodiversidade Biogeografia Biologia molecular Boxe Brasil - Eleições 2006 CEI – Comunidade dos Estados Independentes CLIMA Cabo de Guerra Caminhada Cana-de-açúcar Capoeira Caratê Caricom Carlos Chagas Carlos Drummond de Andrade Carros Cartaginês Carvão mineral Casal Castro Alves Celta Charles Chaplin Chico Buarque de Holanda Chinesa - Civilizações Ciclismo Clarice Lispector Classificação dos blocos econômicos Claude Debussy Comemoração em outros Países Como cozinhar o arroz integral Comparativo entre C e java Comunidade Britânica Comunidade Sul-Americana de Nações Conceito Conceitos Concretismo Consciência Copa 2014 Coreia do Norte e a Coreia do Sul Corrida Cortar o consumo de sódio para até 3 g por dia também ajuda na prevenção Criar um ponto de restauração Windows 8 Criatividade - Fazer arte com uma melancia Crise na Tunísia Cruzadas DEFENSIVOS AGRÍCOLAS DENSIDADE DESENHO DESMATAMENTO DESTAQUES NO MUNDO DOMESTICAÇÃO Dança Data Comemorativa Data Mining Data Warehouse Decreto nº 7.508 Deixar Menu Iniciar do Windows 8 igual ao do Windows 7 Desativando as Atualizações Descobrir MAC Address placa de rede. Descrição Desflorestamento Desinstalar programas no Windows 8 Desrespeito com o professor Dia das Mães Dia do Descobrimento do Brasil - 22 de Abril Dica caseira para limpar os rins Dica para retirar manchas de tinta de caneta da roupa Dicas para computador Dicas para tirar as manchas de graxa das roupas Dicionário Web Dom Pedro I Drivers Dual Boot Duque de Caxias ESPÉCIES EM EXTINÇÃO EXPRESSIONISMO Educação no Brasil Educação nota 10 Egípcia Eleição de Dilma Rousseff Energia Solar Engordar Engordei Enunciação e contexto Escalada Escultura Esgrima Esporte Estrangeirismo Estrangeirismos Estudar é para os fortes Exercícios Expedições medievais realizadas em nome de Deus FOTOSSÍNTESE Faca especial para cortar melancia Falsos Sinônimos Falta de Vagas Fauna Fenícia Feriados Feudalismo Figuras de estilo Filogenia Filogeografia Filosofia Fisiologia Flora Fly Fishing Formatação Formação de blocos econômicos Força de Floriano Fracasso da Alca Francesa Frases em imagens Frescobol Futurismo Fórmula 1 G 20 Financeiro GHIA GL GLS GLX GT Germânica Geógrafo Geólogo Ginástica Artística Ginástica de trampolim Globalização Glossário Web Golfe Golfo Pérsico Gonçalves Dias Governo x Educação Graciliano Ramos Grafite Grega Grego Guerra Guerra Civil Americana Guerra de Secessão Guia Prático Gêneros textuais argumentativos Gêneros textuais do universo jornalístico HISTÓRIA DA ARTE Heitor Villa-Lobos Hidroginástica História da Idade Média História do Futebol História em quadrinhos Homero Homo sapiens Homônimas e Parônimas Hóquei IMPRESSIONISMO Idade Antiga Idade Contemporânea Idade Moderna Importância da mulher na sociedade Inca Incluir mais potássio na alimentação pode reduzir risco de AVC Indiana Indicadores Indigena Individualismo Industrialização da China Industrialização e Urbanização Indígena no Brasil Indígenas Inglesa Ingresso Tardio Inscrições Instalando Instalando Windows no Netbook Instalar Windows 7 pelo Pen Drive Instalar Windows Dual Boot Integração da Venezuela ao Mercosul Internet Internet Explorer Isoladores James Watt Japonesa Jet Ski Jiu Jitsu Jogo de Queimada Jogos Olímpicos Pequim 2008 John Fitzgerald Kennedy José de Alencar Judô Karl Marx Kung-Fu LX Lima Barreto Linguagem e comunicação Localização do Golfo Pérsico Loteria Lotofácil Lotérica Luiz Gonzaga MAC Address MEIO AMBIENTE MIGRAÇÕES ANIMAIS MMA Mixed Martial Arts MPFI Madeira Mahatma Gandhi Maia Mamíferos Manguezal Medicina Memórias de Computadores Mercosul Mercosul: Países Integrantes Mercúrio (planeta) Mergulho Mesóclise Minas Gerais Missão Científica Espacial Brasileira Modelos de Processadores Modismos Monarquia Monteiro Lobato Moralismo Morfologia Mundo Summary Musculação Médicos Nado Sincronizado Natal; Dia de Montar e Desmontar a árvore de Natal; Data Comemorativa; Natação Navegadores Neologismo Neologismos Netbook O milênio da mulher O que é Educação Física? OEA OLAP OMC ORGANIZAÇÃO E FUNCIONAMENTO DO SUS - LEI 8080/90 E 8142/90 ORIGAMI Office 2007 Op-art Opep Os livros são um oceano infinito de conhecimento Outlook PEB ll POLUIÇÃO Paleontologia Parkour Pedagogia Pedro Bandeira Pedro Álvares Cabral Pen Drive Pensamentos Persa Pessoa Piaget Pintura Placa tectônica Planejamento e Gerência de Projeto de Software Planície Pleonasmo Pontuação Pop Art Portugal Povos indígenas Presidentes da República do Brasil Primavera Árabe Princesa Isabel Professor Professor trollando aluno que não estuda Pronomes átonos Prosa Naturalista Pré-História Próclise QUALIDADE DE VIDA QUESTÕES DE Português Acentuação Com Gabarito QUESTÕES DE Português Crase com Gabarito Questão do Mensalão R$9 RENASCIMENTO RESPONSABILIDADE SOCIAL ROCOCÓ RX Racismo Ranking Mundial de Educação Rapa-Nui Rebelião Popular Receita caseira para rachaduras dos pés Rede municipal de saúde Redundância Reduza o risco de AVC Relacionamento Remo Repetência Reservas indígenas no Brasil Respeite o Professor Revolta da Armada Revolta da Vacina Revolta na Líbia Revolta no Egito Revolução Federalista Revolução Francesa Robô Romana Romero Britto Russa SADC Saltos Ornamentais Semânticas Senha padrão Seriados Siglas Sintaxe Sismo Sistema Operacional Sistemática Skate Software Som Sono Sorteio Squash Subjuntivo Suméria Surfe Tabelas Cruzadas e DrillDown Taekwondo Teatro Terremoto The Vampire Diaries Tigres Asiáticos Tipos de Frase Triathlon Turca Turfe Tênis Unasul União Europeia União Européia Urbanização da China Urânio Uso do Hífen (Novo Acordo Ortográfico) Venda casada Verbo Auxiliar Verbos Abundantes Verbos Anômalos Verbos Defectivos Verbos Regulares e Irregulares Verbos Transitivos Verbos de Ligação Verdades e mentiras sobre o conflito das Coreias Vida de professo Viking Vocabulário Voleibol Voleibol de Praia Water Bike Word 2007 Xadrez Xenofobia Zuando na escola 2013 aliança concurso configurar configuração regionalismo roteador roteadores tempo verbal toma dicionário na cara Árabe - Civilizações Ênclise

Copyright © Mix Útil