Android의 Java VM
구글이 최근 open한 Android는 휴대폰 및 모바일 서비스를 개발하기 위한 소프트웨어 플랫폼입니다. 리눅스 위에 폰용 소프트웨어 컴포넌트들이 다 올라가 있습니다. Trolltech의 qtopia 하고 비슷한 위치이지만, qtopia가 가까스로 리눅스 위에 폰 기능을 얹는데 그쳤다면, Android는 폰 기능 위에 다양한 서비스를 추가할 수 있는 환경을 만드는데까지 더 나가고 있습니다.

재미있는건 구글이 Java를 Android의 핵심으로 삼고 있음에도 불구하고, SUN의 java VM이 아니라 자신들이 만든 VM을 탑재해 놓고 있다는 것입니다. SUN 입장에서는 구글이 얼마나 얄미울지 상상이 갑니다.
Andriod의 VM에 대해 이렇게 설명을 하고 있습니다.

Android Runtime

Android includes a set of core libraries that provides most of the functionality available in the core libraries of the Java programming language.

Every Android application runs in its own process, with its own instance ofthe Dalvik virtual machine. Dalvik has been written so that a device can run multiple VMs efficiently. The Dalvik VM executes files in the Dalvik Executable (.dex) format which is optimized for minimal memory footprint. The VM is register-based, and runs classes compiled by a Java language compiler that have been transformed into the .dex format by the included "dx" tool.

The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level memory management.


애플이 자바를 버리고 웹기반 위젯을 선택했던 것과는 대조적으로 구글은 자바를 선택했군요!

PS.
Dalvik이 무슨 뜻일까요? wikipedia에 다음과 같이 나와있습니다.

The Dalvik virtual machine was named by Bornstein after the small fishing village of Dalvík in Eyjafjörður, Iceland, where some of his ancestors lived.

by conanoc | 2007/11/19 20:27 | Mobile | 트랙백 | 핑백(1) | 덧글(2)
트랙백 주소 : http://conanoc.egloos.com/tb/3946006
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Linked at conan's lazy blo.. at 2009/02/03 11:35

... 불편함은 이만저만이 아닙니다. 그래서 일단 몇 개 글에만 달아봤습니다. 우회상장 이야기 - 세중나모와 엑스씨이 후보선택도우미 결과 Andriod의 Java VM 진정한 모바일 스타크래프트, 드디어 출시 수학사의 미스테리, 지수귀문도 있슴과 있음의 차이 붙이는 방법은 이렇습니다. htm ... more

Commented by 잼난게좋아 at 2007/11/19 20:30
몇 가지 시연 동영상 보니까 멋지던데요. 저도 SDK 받아서 에뮬레이터만 실행해봤습니다. ㅎㅎ
Commented by 박홍범 at 2007/11/20 10:51
SUN의 Java는 Phone에서 CLCD와 CDC만을 제공하기 때문에 몇가지 한계가 있습니다. Dalvik을 보니까 거의 Java Standard Edition을 올려놓았더군요. 다만 AWT를 제외하고요.
그리고 Dalvik이 Java Byte Code를 사용하지 않고 자체 Byte Code(?)를 사용합니다. 아마도 이건 몇가지 정책때문에 그럴것 같은데 첫번째는 선의 License를 피하기 위해서 그랬던것으로 보여집니다. 이건 Class Library를 Apache를 사용하는 것으로 봐서는 아마도 그랬을 가능성이 큽니다.
두번째는 속도문제일겁니다. 지금 보면 Java Byte Code는 Stack machine인데 비해서 Dalvik은 Register Machine으로 구현이 되었다고 합니다. 아마도 AOT(Ahead Of time) 컴파일러를 사용해서 자신에 맞는 코드로 변환해서 속도를 높이는 작업을 했을 겁니다. 그렇게 될경우 JIT Compiler나 혹은 SUN에서 말하는 Hot Spot을 사용할 필요가 없죠.

아무튼 만약에 Android가 성공적으로 런칭이 된다면 SUN은 입지가 좁아질수 밖에 없을 것 같습니다. 참고로 SUN도 최근에 Java FX Mobile이라는 것을 내놓고 Linux위에 올라가는 것을 텅키로 지원을 하고 있습니다.

:         :

:

비공개 덧글

< 이전페이지 다음페이지 >