본문 바로가기

Programming

Maemo 5 개발환경

Maemo 5 개발환경
 
1. 마에모 소개

마에모는 리눅스에 기반한 모바일 디바이스를 위한 오픈소스 개발 플랫폼이다. 마에모 5는 기본적으로 GNU/Linux 와 Gnome/GTK+ 기술을 기초로 하며 이들을 모바일 특성에 맞게 최적화하였다.(마에도 6 부터는 QT 기반으로 바뀔 예정임)

마에모 5는 현재 노키아 N900 에 실려 있으며 텍사스 인스트루먼트의 OMAP 3430 이 장착되어 있으며, 칼짜이쯔 렌즈를 가지는 고성능 카메라를 내장하고 있다.


2. 개발 환경

마에모는 데스크탑에서 모바일에 이르기까지 일관된 프로그래밍이 가능한 인프라스트럭처를 가지고 있으며 크로스 플랫폼 환경에서 개발된 소프트웨어들이 쉽게 포팅될 수 있다.
마에모는 크로스 플랫폼 위젯 툴인 GTK+ 를 유저 인터페이스로 사용하며, Hildon Application Framework 가 모바일 기기에 맞는 향상성을 제공한다.
마에모는 기본적으로 single user mode 만을 제공하며, 따라서 마에모의 보안은 다른 사용자가 아닌 외부 원격 침입에 대응하기 위해 작동한다.
현재 마에모의 기본 프로그래밍 언어는 C 이나 C++, 루비, 파이선 등의 언어도 사용할 수 있다. 차기 버전에서는 C++ 이 기본적인 개발 언어로 사용될 예정이다.

(1) 커널 및 코어 스트럭처

마에모는 리눅스 2.6 커널을 사용하여 하드웨어 제어와 메모리 관리를 수행한다.
또한 프로세스 간의 통신을 담당하기 위하여 D-Bus가 사용된다. 이 D-Bus 는 백그라운드에서 돌아가는 데몬으로서 윈도우즈의 서비스와 비슷한 역할을 한다. 이 D-Bus 와의 인터페이스는 런타임 환경에서 응용프로그램을 통합하는 핵심이 된다.
HAL(Hardware abstraction layer)는 하드웨어와의 추상화 레벨 인터페이스를 제공하여 특정 하드웨어에 종속되지 않는 프로그래밍 환경을 가능케 한다.
GLib 은 크로스 플랫폼 유틸리티 소프트웨어 라이브러리로서 GTK+ 의 비 UI 부분을 담당하기 위해 도입되었다.
X 윈도우 시스템은 아키텍처에 독립된 클라이언트 서버 시스템으로서 여러 프로그램들이 터치 시스템과 같은 인터페이스를 통해 사용자와 통신하도록 해준다.


(2) 플랫폼 라이브러리

마에모는 다양한 오픈소스 라이브러리와 플랫폼을 포함한다. 이러한 라이브러리와의 클라이언트 인터페이스는 마에모 프로그램 개발에 있어서 기본이 된다.



(3) UI 툴 킷 및 어플리케이션 프레임워크

GTK+ 가 기본 UI 인터페이스로 제공되며 응용프로그램 개발을 위한 프레임워크가 제공된다.
어플리케이션 프레임워크의 목적은 어플리케이션을 위한 스탠다드 스트럭처를 제공하는 것이다.
어플리케이션 프레임워크는 libhildon 과 libosso 로 불리는 두 개의 중요한 라이브러리를 포함한다.



현재 마에모는 이클립스 플러그인을 통해 코딩하고 컴파일할 수 있다.



그러나 차기 마에모 6 부터는 기본적인 개발 환경이 QT 기반으로 바뀌게 된다.









'Programming' 카테고리의 다른 글

C++ Meta-Programming  (0) 2010.01.31
QT 기반으로 새로 태어나는 Maemo 6  (0) 2010.01.03
Closure in C++  (2) 2009.10.03
안드로이드 플랫폼에서 Clojure 실행  (0) 2009.06.14
Clojure Data Structure  (0) 2009.05.22