-
자동차시장 오픈소스 - 2개발/오픈소스 2017. 1. 31. 23:48
스마트폰 OS로 재미를 본 안드로이드가 자동차 OS까지 노리고 있다는 건 이미 잘 알려진 사실이다. 스마트폰때처럼 안드로이드는 차량 제조사(OEM)들이 제공하는 하드웨어 환경(MCU, 네트워크, 자동차 서비스)을 간단히 구조화해 여러 OEM 하드웨어 환경에서 동일하게 작동 할 수 있는 프레임워크를 제공한다.
하드웨어를 추상화해 공통된 프레임워크를 제공하는 방법을 HAL(Hardware Abstraction Layer)라 한다. HAL의 가장 큰 장점은 API화이다. 일반 사용자들은 느낄 수 없지만 API화는 개발 할 때 강력한 무기가 된다. 스마트폰의 경우를 생각해보면, 안드로이드 애플리케이션을 개발 할 때 가장 편리 했던 점은 소프트웨어 개발자가 하드웨어를 전혀 신경 쓸 필요가 없다는 점이었다. GPS 센서를 사용하고 싶다면 개발자는 그냥 Android API 홈페이지에서 GPS 센서를 사용하는 함수를 찾고 그 함수의 return값으로 현재 위치를 찾아 내면 됐다. GPS센서의 MAC Address는 뭔지, 제조사가 어딘지 세세한 부분까지는 알 필요가 없었다. 애플리케이션 개발자들은 쉽게 스마트폰의 센서 정보들을 얻어왔고 이 정보들을 이용해 다양한 애플리케이션을 만들 수 있었다.
안드로이드는 자동차도 동일한 방법으로 접근하고 있다. 차량내의 센서들(MCU, 차의 움직임, GPS, 카메라 등등)을 통제 할 수 있는 API를 제공해 차량 소프트웨어 개발자들이 쉽게 애플리케이션을 만들 수 있는 환경을 제공해주고자 한다. 여기서 파란색으로 된 부분은 차량 제조사들이 구현 할 부분인데 저마다 제조사 입맛에 맞춰서 HAL 인터페이스의 하위 부분을 구현 할 수 있도록 만들어 주었다. 거의 그림의 전부를 차지하고 있는 초록색 부분은 안드로이드 오픈소스 프로젝트에서 만들고 있는 부분이다. 제조사가 만든 HAL 인터페이스에 작동 하는 안드로이드 프레임워크를 만든다. 개발자는 프레임워크에서 제공하는 API를 이용해 쉽게 개발 할 수 있다. 소프트웨어쪽이 취약한 제조사들이 쉽게 개발 할 수 있는 환경을 제공하는게 이 프로젝트의 주된 목적으로 보인다.
'개발 > 오픈소스' 카테고리의 다른 글
오픈소스 라이센스 정리 (0) 2019.06.09 FFmpeg (0) 2018.10.31 자동차 시장 오픈소스 - 1 (0) 2017.01.15 이런 오픈 소스도 있다! (0) 2017.01.07 오픈소스 시작하기 (0) 2017.01.01