Search

'AGL'에 해당되는 글 2건

  1. 2017.01.15 자동차 시장 오픈소스 - 1
  2. 2017.01.07 이런 오픈 소스도 있다!

자동차 시장 오픈소스 - 1

컴퓨터공부/오픈소스 2017.01.15 19:18 Posted by 아는 개발자 아는 개발자

IoT 기술의 발달로 전보다 자동차 내에 다양한 기능을 넣을 수 있게 되면서 이런 다양한 기술을 자동차 내에 개발 할 수 있는 표준을 제공하는 것이 업계 내에선 화두가 되었다. 이에 따라 큼직한 자동차 회사들은 다른 IT 회사들이 자동차 내 IVI(In Vehicle Infotainment) 소프트웨어 개발할 수 있는 표준을 제공하기 위해 끼리끼리 모여서 오픈소스 프로젝트를 진행하고 있다. 


대표적인 오픈소스 프로젝트로 GENIVI와 AGL(Automotive Grade Linux)가 있다. 두 프로젝트는 여러 면에서 유사한데 굳이 차이점을 고르라면 참여하고 있는 멤버와 AGL이 오픈소스로 유명한 Linux재단에서 운영되고 있다는 점 정도 일 것이다. 두 프로젝트 모두 Yocto 기반의 개발 환경을 두고 있으며 사용하고 있는 OS도 리눅스라는 점에서 동일하다. 내부에 사용하는 소프트웨어들이 조금 차이가 있을 뿐이다.


            


(로고를 클릭하면 프로젝트 공식 홈페이지로 이동한다)


목적도 동일하고 사용하는 플랫폼도 비슷한데 이렇게 둘로 나눠져 있는 이유는 아마 자동차 소프트웨어 시장의 주도권을 잡기 위함일 것이다. 추후 많은 자동차 IVI 소프트웨어 스타트업들이 자동차 시장에 참여할 텐데 OEM이나 FirstTier가 아닌 IT회사들이 초기 플랫폼을 어떤 것으로 선택하느냐가 이들이 만든 소프트웨어가 작동하는 플랫폼을 결정 할 것이고 이는 곧 자동차 업계들이 갖고 있는 플랫폼에서 동작 가능한 소프트웨어의 시장 크기를 결정할 것이다(안드로이드 앱 마켓과 타이젠 앱 마켓을 생각해보면 이해가 빠를 것이다). 미래의 자동차 소비자들은 기존에 자동차가 갖고 있는 성능이나 디자인 뿐만 아니라, 사용자가 원하는 소프트웨어 사용의 유무 또한 중요시 여기게 될 것이다. 데스크탑 시장에서 컴퓨터 게임이 맥북에서 실행이 되지 않아 윈도우를 선택했던 사례처럼 미래 자동차 시장도 "내가 탄 자동차가 내가 원하는 소프트웨어를 지원 하느냐 하지 않느냐"또한 차를 구입하는데 고려할 사항이 될 수 있다. 그렇기 때문에 자동차 업계들은 자신들의 플랫폼을 널리 알려 소프트웨어 개발 회사들이 자기들의 표준에 맞춰 개발하도록 독려 할 필요가 있다.


GENIVI와 AGL모두 공식 홈페이지에는 "우린 비영리 단체이며 IVI 소프트웨어 개발 환경을 제공해 다른 회사들이 쉽게 개발 할 수 있도록 하겠다"고 했지만 정작 이들의 숨은 목적은 결국 자신들이 갖고 있는 플랫폼 시장의 확대이다. 숨은 의도를 생각하면 잠시 괘씸한 기분이 들지만 원래 기업들의 존재의 목적이 이윤 추구가 아닌가. 이 기업들이 모두 모여서 잘 정리해둔 소스코드를 공짜로 볼 수 있다는 것 만으로도 나같은 초짜 개발자들은 감사한 일일지도.. 더구나 이런 프로젝트들 덕분에 초기 기술이 없어도 차량 스타트업이 진출 할 빈틈이라도 노려 볼 수 있는게 아닌가 싶기도 하다.


아무튼 두 프로젝트의 성격은 비슷하니 앞으로 설명은 GENIVI 프로젝트에 맞춰서 설명하도록 하겠다.


앞에서 IVI기반 소프트웨어 개발 환경을 제공 한다고 했는데 이들이 뭘 하는지 이해가 가지 않을 것이다. 그래서 GENEVI에서는 딱 프로젝트 소스코드를 받고 빌드 했을 때 나오는 결과물들을 표로 정리를 해뒀다.



GENIVI 프로젝트 Yocto 소스를 받아 빌드하면 많은 결과물들이 많이 나오는데 크게 커널 이미지와 Rootfs로 나눌 수 있다. 커널 이미지는 Genivi의 OS로 사용되는 이미지이고 Rootfs는 표 상단에 잇는 App& HMI Framework와 Demo App들이 설치되어있다. 빌드된 파일들을 선택한 하드웨어 환경에 적용하면 정상적으로 실행되는 걸 확인 할 수 있다.


(빌드하고 나서 Qemu로 돌려본 Genivi. 생각보다 별로 볼 건 없다)


다양한 하드웨어에 적용 될 수 있도록 만들어 놨는데 위 도표에 있는 하드웨어들이 GENIVI 프로젝트에서 돌릴 수 있는 하드웨어 들이다. 집에 보드 하나 없는 필자의 경우에는 QEMU x86-64에서 한 번 빌드 결과물들을 돌려 봤다. 매우 느릿느릿 하지만 동작하고 UI가 뜨는 것도 확인 했다. 라즈베리파이나 다른 보드에 맞춰 개발하려면 초기 빌드시 위 환경에 맞춰서 빌드 하도록 설정하면 된다. 각 하드웨어마다 필요한 드라이버들이 조금 차이가 있다.


기본적으로 제공되는 Demo Application들은 위에 Demo Apps 카테고리에 있는 것들이다. 그리고 이 애플리케이션 개발 프레임워크는 Qt를 쓰는데 Qt는 오픈소스 C++개발 프레임워크이다. 예전에는 이런 프레임워크 존재 자체도 몰랐었는데 이번에 GENIVI프로젝트를 조사하면서 알게 됐다. 현재 Demo App으로 올라가있는 애플리케이션들은 모두 C++로 만들어져 있다. AGL도 애플리케이션 프레임워크로 Qt를 사용하고 있는데 아마 임베디드 리눅스 환경에서 가장 쉽게 사용 할 수 있는 프레임워크라 그런게 아닌가 싶다.




네비게이션, FM라디오, 차량 온도조절처럼 익숙한 애플리케이션들은 이미 설치 있었고 처음 보는 것은 Connected Home이란 애플리케이션이었다. 이름만 들어도 차량과 집이 연결된다는 느낌을 줬는데 실제로 실행해보니 집을 나가는 버튼(Leaving Home), 집으로 돌아오는 버튼(Coming Home)이 있었고 각 버튼을 눌러보니 집을 나가는 버튼(Leaving Home)을 눌렀을 때는 Vehicle Moving 이라는 알림이 떴고 Coming Home을 눌렀을 때는 집으로 돌아가는 경로를 영상의 형태로 보여줬다. 맨 아래 Smart Home Status라는 버튼이 있었는데 이 버튼은 눌러도 아무런 반응이 없다(아마 QEMU라 느려서 그런 것 같다) 빌드과정에서 Iotivity 오픈소스들을 쭉 받았었는데 아마 그 오픈소스를 활용해 차량에서도 집안의 디바이스들의 상태를 확인할 수 있는 애플리케이션이 아닐까 싶다. 이렇게 데모로 애플리케이션이 나올 정도면 4-5년 후에는 차안에서도 집안의 세탁기를 돌리는 시대가 올 것 같다. 물론 지금 스마트폰으로도 가능하니 그리 놀라운 일은 아닌 것 같기도 하고.

'컴퓨터공부 > 오픈소스' 카테고리의 다른 글

오픈소스 라이센스 정리  (0) 2019.06.09
FFmpeg  (0) 2018.10.31
자동차시장 오픈소스 - 2  (0) 2017.01.31
자동차 시장 오픈소스 - 1  (0) 2017.01.15
이런 오픈 소스도 있다!  (0) 2017.01.07
오픈소스 시작하기  (0) 2017.01.01

이런 오픈 소스도 있다!

컴퓨터공부/오픈소스 2017.01.07 00:39 Posted by 아는 개발자 아는 개발자

어떤 오픈소스에 참여 해볼까 조사하던 중에 신박한 주제를 가지고 있는 프로젝트들을 발견 했다. 이번 포스팅에서는 조사 과정에서 발견한 신박한 오픈소스 프로젝트들에 대해서 정리를 해보려고 한다.


1. Open MRS




Google Code in에선 이 프로젝트대한 부연 설명으로  "Write code, save lives!" 딱 한 줄을 내놨다. 코드를 작성하고 생명을 구하자는 말인데 코딩을 하는 거랑 환자를 치료하는 거랑 전혀 무관 할 것 같지만 실제로 이 프로젝트는 의료지식이 전혀 없는 프로그래머들이 자신이 만든 소프트웨어로 HIV/AIDS같은 불치병을 치료하는 프로젝트를 진행한다. 여기서 만든 소프트웨어는 개발도상국에서 환자들의 정보를 별도의 전문적인 지식 없이 저장 및 재사용이 가능한 데이터베이스 환경을 구축하는 것을 목표로 한다. 우리가 병원에 가면 흔히 볼 수 있는 유료 환자 데이터베이스 소프트웨어를 개발도상국에서는 사용 할 수 없어 국가적으로 질병관리를 체계적으로 진행 할 수 없을 것인데 이 프로젝트는 바로 이점을 착안해서 진행 한 것으로 보인다. 


비영리적 목적으로 개발되고 있으며 2015년 2월에 정식 버전이 출시됐다고 한다. 주로 JAVA를 이용해 구현했고 Linux/MAC/Windows에서 모두 구동이 가능한 프로그램이다. Mozilla public license(MPL version2)를 갖고있다.


프로그래밍과 의학이라는 도무지 교집합을 찾아 보기 힘든 두 영역이 아무런 대가성 없이 오로지 질병 퇴치라는 목적 아래 뭉쳐졌다는 점에서 큰 감명을 받았다. 프로그래밍이 다른 영역들과 뭉친 적이 비록 예전에도 있었지만 대부분 이익을 목적으로 한 결합이었고 프로그래밍은 단순히 돈을 벌기 위한 수단 같은 존재라는 생각이 들었는데, 이 프로젝트에서는 프로그래밍이 영리 적인 목적에서 벗어나 인간의 삶에 도움을 줄 수 있다는 생각이 들었다.


http://openmrs.org/



2. Sugar Labs




설탕 연구실이라는 아기자기 이름을 가진 프로젝트는 이름처럼 프로젝트 내용도 아기자기하다. 이 프로젝트에선 어린이들이 사용 할 수 있는 소프트웨어를 개발한다. 주요 소프트웨어의 목적은 교육이다. 어린이들이 소프트웨어를 통해 여러가지 개념을 쉽게 배울 수 있다. Application이라고 안하고 Activity라고 학교 내의 수업시간 이름 같은(?) 느낌으로 몇개가 만들어져 있는데 대표적으로 직접 수학 식을 만들고 계산을 해볼 수 있는(사실은 계산기와 다를 바 없지만...) Number와 자세히 보면 거북의 등껍질이 연상 되는(?) 타자를 연습 할 수 있는 Typing Turtles가 있다. 프로그램 자체는 놀라울 기술을 사용하는 것은 아니지만 어린이들이 사용하기 때문에 UI에 많이 신경을 쓴 느낌이다. 주로 교육쪽에 관심이 많은 프로그래머나 그쪽 분야에 계신 분들이 다같이 만드시는 것 같다.


이것 또한 비영리적 목적으로 개발되고 있고 여기서 만든 소프트웨어는 Debian계열 데스크탑에서도 사용이 가능하다고 한다. 다른 나라들은 집에서 Ubuntu를 많이 사용하나 보다... 


아기자기한건 나와 거리가 멀기에 일단 이건 패스...


https://sugarlabs.org/



3. Automotive Grade Linux




데스크 탑과 스마트폰을 장악한 리눅스가 이제는 자동차 인포테이먼트 시장에 나타났다. Automotive Grade Linux(줄여서 AGL 이라 부른다)는 자동차에 애플리케이션 개발에 기초가 되는 소프트웨어 솔루션을 만드는 오픈소스 프로젝트이다. 초기 목표로 삼았던 것은 자동차 IVI(In-Vehicle Infotainment)였지만 여기서 확장해 자동차내의 무선통신과 디스플레이, 클러스터까지 지원할 계획이라 한다. 현재 이름만 들어도 알 만한 자동차 업체들이 위 프로젝트의 멤버로 참여하고 있고 이 회사의 개발자들은 이 프로젝트에다가 커밋을 쏙쏙 올리고 있다고 한다.


여기 까지가 공식 홈페이지가 내놓은 설명이고 이 프로젝트에서 목표로 하고 있는 건 아마 자동차 내에 리눅스 기반의 애플리케이션을 돌릴 수 있는 플랫폼을 최대한 빨리 구축해, 머지 않은 미래에 도래할 자동차 IVI시장에서 리눅스의 점유율을 높히고 개발자들이 이 플랫폼을 사용하게 함이 위함 인 것 같다. 스마트폰 사례를 통해 알 수 있듯이 일단 플랫폼 점유율을 갖고 있어야 그곳에 개발자들이 모여들고 플랫폼을 응용한 애플리케이션을 만들어 가면서 소비자들도 늘어난다. 결과적으로 안드로이드와 iOS는 성공했고 윈도우와 타이젠은 실패했다. 자동차 업체들도 이들의 성공과 실패를 눈 여겨 보고 있었을 것이다.


2020년부터는 스마트카가 등장한다는데 과연 그때까지 자동차 산업에 올라탄 이 프로젝트는 어떻게 될지 궁금하다. 스마트폰처럼 한 시대를 대표하는 디바이스가 되어 또 다른 안드로이드가 될 것인가 아니면 빛 좋은 개살구 인 스마트워치의 타이젠이 될 것인가.


https://www.automotivelinux.org/


4. KDE




아마 알 만한 개발자들은 모두 알고 있는 프로젝트 일 것이다. KDE는 리눅스 기반의 데스크탑에서 무료로 사용 할 수 있는 오픈소스 애플리케이션을 만드는 프로젝트다. 교육, 예능, 사무등 다양한 종류의 애플리케이션을 만들었는데 아마 이 단체를 모르더라도 이곳에서 만든 애플리케이션은 한 번쯤 들어 봤을 것이다(애플리케이션이 'K' 대문자로 시작한다면 이 단체에서 만든 애플리케이션일 확률이 높다).


이 단체에는 개발자 뿐만 아니라 디자이너들도 많이 참여하고 있는데 그래피컬한 요소를 중요시 여기는 것도 아마 이 분들 때문이지 않을까 싶다. 실제로 여기에서 만든 KUbuntu를 사용해보면 여태껏 사용해본 OS중에서 가장 독특하고 사용자 친화적인 UI를 가지고 있다. 처음에는 어떻게 써야 할지 감이 잘 안왔지만 막상 사용하다보면 이렇게 UI도 사용 할 수 있구나 하고 감명을 받기도 했다. 그런데 사실 편한 건 잘 모르겠다. 자주 사용하지 않아서 그런 것 같긴 한데 나무 위키에서도 이들의 UI가 직관적이지 않으며 제공되는 옵션이 많아 더 무겁게 느껴질 수 있다고는 했다.


https://www.kde.org/

'컴퓨터공부 > 오픈소스' 카테고리의 다른 글

오픈소스 라이센스 정리  (0) 2019.06.09
FFmpeg  (0) 2018.10.31
자동차시장 오픈소스 - 2  (0) 2017.01.31
자동차 시장 오픈소스 - 1  (0) 2017.01.15
이런 오픈 소스도 있다!  (0) 2017.01.07
오픈소스 시작하기  (0) 2017.01.01