Layered Architecture — High level에서 low level에 이르는 추상화(Abstraction)가 핵심인 모듈형 아키텍처. 하위 레이어의 복잡한 세부를 감추고, 추상화된 기능을 상위 레이어에 제공한다. 인터페이스는 Function Call — 동기식 호출 기반이다. 상위 아키텍처 맥락은 소프트웨어 아키텍처 참고.

계층 구조와 도메인 매핑

Layer예시 기술
Applications
Application FrameworkAUTOSAR, Android
Middleware · DatabaseAUTOSAR, ROS
Communication
Hypervisor · Container Mgr.VirtualBox, Docker
Virtualization
Operating SystemLinux, RTOS
Resource Mgmt. & Scheduling
Hardware

각 계층은 바로 아래 계층의 기능을 추상화하여 위로 노출한다. 상위 계층은 하위 구현을 몰라도 된다.

Linux Architecture

User Space
  ├─ User Applications
  ├─ GNU C Library (glibc)
  └─ System Call Interface
Kernel Space
  ├─ Kernel
  └─ Architecture-Dependent Kernel Code
Hardware Platform

System Call Interface가 User Space와 Kernel Space의 경계 인터페이스 역할.

Android Architecture

Applications
  └─ Application Framework
Libraries · Android Runtime
  └─ Hardware Abstraction Layer (HAL)
Linux Kernel

HAL이 하드웨어 세부를 추상화하여 상위 런타임/프레임워크가 하드웨어 독립적으로 작성되도록 한다.

AUTOSAR Architecture

Application Layer
  └─ Runtime Environment (RTE)
Services
  ├─ System Services
  ├─ Communication Services
  ├─ Memory Services
  └─ Crypto Services
Hardware Abstraction
  └─ Complex Drivers
Drivers
Microcontroller

RTE가 Application Layer와 하위 BSW(Basic Software) 서비스의 경계. 상위 애플리케이션은 RTE만 보고 작성하면 된다. Classic Platform의 4계층 구조·BSW sub-layer·Complex Driver의 상세는 AUTOSAR Classic Platform에서 다룬다.

특성 요약