2010. 2. 4.

Android, Maemo, Moblin 비교

한 웹기사에 따르면 Linux 커널 2.6.33 부터 Android 커널 코드가 떨어져나간다고 합니다. 넷상에서는 새로운 fork로 갈 것인가를 두고 이야기가 오고 가고 있습니다. Android 지원용 드라이버를 커널에 단순 삽입하는 것 이상으로, 새로운 lock 타입을 만들어야하는 등 시스템 보안모델에 관여하는 상황이 발생하게된다고 합니다. 이는 Android 가 다른 Linux기반 플랫폼과 다른 몇가지 특이점이 있기 때문입니다.

Android는 기본적으로 Java로 만든 코드를 Dalvik 바이트 코드로 변환해서 돌리고 있습니다. 말하자면 커널과 분리된 별도의 가상 기계가 돌아간다는 점인데, 이를 통해서 하나의 프로그램이 죽는다고 하더라도, 전체 시스템에 문제가 발생하지는 않습니다. 반대로 얘기하자면, 별도의 프로세스 관리를 필요로하는 부분이 커널에 필요할 수 있다는 점입니다.
이러한 코드가 커널 트리에 추가되어야하지만, Android용 드라이버는 Google의 자체적인 커널에 의존하기 때문에, 메인 커널에 추가가 어려웠습니다.

물론, 배포본마다 커널 소스를 일부 수정하는 방식은 기존에도 있어왔지만, Google이 자신만의 코드를 커널에 제때에 업데이트하지 않은점이 문제입니다. 결국, 이제 Android 코드 체계는 이후의 Linux 커널과는 동떨어진 자신만의 길을 걸어야할지도 모릅니다.

Maemo는 Debian 기반이며, 가장 C적인 API리스트를 보유하고 있습니다. QT를 개발한 Trolltech를 인수하면서, 기본 UI를 QT로 변경하는 등, 지속적인 Linux 기반작업을 진행하고 있습니다. Maemo 5를 기반으로하는 N900이 이미 출시된바 있고, 지금은 Maemo 6를 개발하고 있습니다.
Nokia 가 주도적으로 진행하고 있는 이 작업의 한가지 문제점은 기존의 Symbian 체계입니다. Symbian 과 Maemo의 2중 전략으로 이전하겠다고 공언한 만큼, 두 플랫폼의 통합을 이루어야하지만, 서로 체계가 상이해서 많은 어려움을 겪고 있습니다. 아마 이 점이 Maemo의 개발에 어려운 점으로 들 수 있을 것으로 봅니다.
하지만 Linux 개발에 익숙하다면 Maemo에서 상당히 편리한 개발을 할 수 있을 듯 합니다. 일단 C/Python으로 개발이 가능하고 PyGTK를 통해 쉽게 개발할 수 있다는 점이 개발자에게 매력적입니다. 다만, Linux에 완전히 붙어있는 구조라서, Linux에서 볼 수 있는 모든 오동작을 Maemo에서도 볼 수 있다는 점이 걱정됩니다. 불안정한 프로그램이 시스템 자체를 불안정하게 만들수있다는 점은 충분히 위협적입니다.

Moblin은 Intel에서 시작했지만, 지금은 Linux Foundation에서 관리를 맡고있어며, 다양한 벤더의 OS에서 사용이 가능합니다. 표준 Linux Desktop 라이브러리를 변경해서 만들어진 탓에, 기존의 Linux 어플리케이션은 새로운 Moblin에 맞추어서 변경을 해줘야하는 점이 있습니다. C/C++ 기반의 SDK를 공개하고 있으며, 넷북쪽에서는 ATOM프로세서와 더불어 상당한 영향력을 보일 것으로 생각합니다.

Linux에서 가장 가까운 플랫폼이라면 이제는 Maemo플랫폼을 들 수 있습니다. 따라서 임베딩 개발자라면 꽤 흥미로운 플랫폼이 될 것 같습니다. 반면에 Moblin은 넷북 제작 플랫폼으로써 상당히 뛰어나고, 지금은 스마트폰과 일반폰을 넘보고 있습니다. 또 다양한 배포본 사업자들이 뛰어들고 있는 점에서 강점을 가지고 있습니다.

이번 Android 파동이후, Linux 기반 플랫폼의 희비도 엇갈릴 것 같습니다. 개인적으로는 하드코어 Linux배포본인 Maemo가 좀 더 힘을 받았으면 하는 바램입니다만, Nokia 이외에는 별로 관심을 기울이지않는 것 같아서 많이 아쉽습니다. :-)

댓글 없음:

댓글 쓰기