추상화 계층(abstraction layer)은 특정한 집합의 기능의 자세한 부분을 숨기는 한 방법이다. 추상화 계층을 이용하는 소프트웨어 모델에는컴퓨터 네트워크통신 프로토콜을 위한OSI 7개 계층 모형,OpenGL 그래픽 드로잉 라이브러리,유닉스가 기원이고MS-DOS,리눅스, 그 밖의 현대운영 체제 대부분이 채택한바이트 스트림 입출력(I/O) 모형이 있다.
유닉스 운영 체제에서 대부분의 종류의 입출력 기능은장치로부터 읽어들이거나 장치로 기록된 바이트의 스트림으로 간주된다. 이러한 바이트 모델의 스트림은장치 독립을 목적으로 파일 입출력, 소켓 입출력, 터미널 입출력에 쓰인다. 응용 프로그램 수준에서 장치로 읽기/쓰기를 하기 위해 프로그램은 장치(터미널과 같은 실제 장치나,파일 시스템의 파일, 또는네트워크 포트와 같은가상 장치) 열기 명령을 호출한다. 이 장치의 물리적 특성은 운영 체제가 중재하며 프로그래머가 장치로부터 바이트를 읽거나 쓰기할 수 있게 하는데 이를추상화인터페이스라고 한다. 그 뒤 운영 체제는 바이트 스트림을 장치로 읽거나 쓸 수 있도록 실제변형 과정을 수행한다.
컴퓨터 구조에서 컴퓨터 시스템은 일반적으로 다섯 가지 수준으로 구성된다. 자세한 것은 오른쪽 그림에 나타나 있다.[1]