Summary

img
[사진 1] AGL Overview

AGL (Automotive Grade Linux) OS란?

https://www.automotivelinux.org/about/members/

전 세계 차량 OEM 들과 협력하에 개발되고 있는 인포테인먼트 시스템이다.

AGL은 IVI(In Vehicle Infortainment) 시장을 목표로 하고 있다.

AGL 개발 자체는 오픈소스 프로젝트로 진행되며 AGL 이외에도 대표적으로 GENIVI 라는

플랫폼도 존재하는데 두 회사 모두 IVI S/W 개발 환경을 제공하여 다른 차량 OEM 회사들이

IVI 시스템을 쉽게 개발할 수 있도록 하는 목적을 가진다.

img
[사진 2] AGL/GENIVI

Overview

img
[사진 3] AGL Core

AGL OS 에 올라가는 코어 부분의 구성도이다.

  • QT/QML : QT 모델링 언어
  • HTML5 : Web 퍼블리싱 마크업 언어
  • GStreamer : 스트리밍 미디어 어플리케이션 프레임워크
  • Weston : 디스플레이 서버(Wayland Compositor)와 클라이언트 간 통신하는 언어(X11 프로토콜 대체)
  • Wayland : Wayland Compositer == Weston
  • SOTA Client & OSTree : 소프트웨어 무선 업데이트(Software Updates Over The Air)
  • DBus : 프로세스 간 통신(IPC)을 위한 시스템, 리눅스 내 프로세스 통신을 위한 수단 (KDE, Gnome)
  • systemd : 부팅, 서비스 관리, 로그 관리
  • Linux Kernel : OS의 주요 요소, 컴퓨터 하드웨어와 프로세스를 연결하는 핵심 인터페이스
  • AppFW : 어플리케이션 단 방화벽
  • SMACK : 데이터 영역/프로세스 데이터를 상호 보호하는 소프트웨어
  • Cynara : 사용자 및 어플리케이션 별 API 접근 권한 관리 보안 모듈
img
[사진 4] AGL Platform Overview

AGL Layers

  • poky
  • meta-agl
  • meta-agl-demo
  • meta-agl-devel
  • meta-agl-extra
  • meta-intel-iot-security
  • meta-oic
  • meta-qt5

AGL Architecture

img
[사진 5] AGL Architecture
  • HVAC : 실내 차량 공조 시스템 (난방, 냉방 등)
  • Media : 블루투스 미디어, USB 미디어 등
  • Vehicle Cloud : 차랑용 클라우드 시스템
  • HMI : 프로그램 또는 시스템과 통신 가능하게 해주는 대시보드 화면

Binder/Binding

  • afb-daemon(application freamwork binder daemon)
  • afb-daemon 어플리케이션 또는 서비스의 한 인스턴스를 나머지 시스템 어플리케이션 및 서비스에 바인딩(Binding)하는 역할을 하고 AGL 내에서 서비스 및 어플리케이션 간 연결은 AGL 프레임워크 및 시스템에 의해 조정된다.
img
[사진 6] Binder/Binding
  • Security Context : 모든 어플리케이션 보안 환경에 제공하는 것으로 어플리케이션 또는 서비스 보안 컨택스트인 SMACK 에 의해서 보장된다.

  • Binder : HTML5 어플리케이션을 실행할 수 있고 바인딩(Bindng)이 제공하는 API 에 대한 통합 액세스를 제공한다.

  • Binding : 바인딩(Binding)은 하나의 API 를 추가로 받는 바인더(Binder)를 의미한다. API 는 HTTP 를 통해 REST API 또는 JSON RPC 등을 사용하여 호출할 수 있다.

img
[사진 7] Binder/Binding #2

Installation

References

1. AGL(Automotive Grade Linux) and GENIVI Development Platform

2. AGL Binder, Binding 개념

3. AGL Document

3.1 AGL Document #2