Camada de abstração: diferenças entre revisões

32 bytes adicionados ,  23h33min de 9 de janeiro de 2017
(Removed highly misleading diagram spreading confused information. Assembler is tool to translate assembly language into machine language. Firmware is system software in embedded systems, not abstraction layers. Same layer for OS+application contradictive)
(+correções semiautomáticas (v0.51/3.1.38))
{{Sem-fontes|data=janeiro de 2017}}
Uma '''camada de abstração''' é uma maneira de esconder detalhes de implementação de um conjunto particular de funcionalidades. Provavelmente os mais conhecidos modelos de [[software]] que usam camadas de abstração são o [[Modelo OSI]] para [[Protocolo de rede|protocolo]]s de [[rede de computadores]], a biblioteca gráfica [[OpenGL]] e o modelo [[fluxo de dados]] de entrada e saída (I/O) originado no [[Unix]] e posteriormente adotado pelo [[MS-DOS]], [[Linux]] e muitos outros [[sistema operacional|sistemas operacionais]] modernos.
 
Muitas bibliotecas gráficas como a OpenGL oferecem um modelo abstrato de dispositivo gráfico. A biblioteca é responsável por traduzir os comandos do programador nos comandos necessários para desenhar elementos gráficos e objetos num dispositivo específico. Os comandos específicos de uma [[impressora]] são diferentes dos comandos específicos de um [[monitor]] [[Tubo de raios catódicos|CRT]], por exemplo, mas a biblioteca esconde os detalhes específicos de implementação e oferece uma interface abstrata de uso geral para gerar gráficos.
 
== {{Ver também}} ==
* [[Engenharia de software|Engenharia de Software]]
* [[API|Application Programming Interface (API)]]