칸드로이드 저널- "Beyond Android" 
모질라, HTML5 기반의 폰 발표 - lwn.net 번역
작성자
작성일 2012-04-05 (목) 04:39
ㆍ추천: 0  ㆍ조회: 6083      
IP: 125.xxx.222
출처 : http://lwn.net/Articles/484288/
 

 

Mozilla announces HTML5-based phone

모질라, HTML5 기반의 폰 발표.
 
                                                   - Nathan Willis
 
 
모질라는 지난 2월27일 모바일 사업자 텔레포니카 디지털과 2012년 말에 HTML5 기반의
스마트폰을 출시하기로 했다는 거래를 발표했다. 언론들이 이 새로운 플랫폼에 
"오픈 웹 디바이스(Open Web Device)"라고 별칭을 붙였음에도 불구하고,
많은 모질라 연구가들은 그것을 Boot to Gecko(B2G)로 더 알고 있다.
B2G는 가벼운 리눅스 기반의 시스템인데,
이것은 기본적인 애플리케이션 프레임워크로 Gecko를 사용하고 있다.
B2G는 2011년 7월부터 개발되었지만, 8월 중순에 마지막 테스트를 한 이후에 현저히 발전했다.
 
B2G 아키텍처.
 
초기에, 그 프로젝트는 Gecko 런타임을 설치할 운영체체로 Android, MeeGo, webOS를 포함해
다양한 옵션들을 검토했다. 그 팀은 자신만의 아키텍처 정했다.
이 아키텍처는 안드로이드의 일부 컴포넌트를 가졌지만, Gonk라 불리는 자신만이 스택을 구축하고 있다.
 
Gonk는 불필요한 것을 모두 제거한 리눅스 배포판으로, 커널과 하드웨어 접근
(예를들어, libusb와 Bluez)을 위한 몇몇  표준 사용자공간 라이브러리를 사용하고 있다.
그것은 또한 안드로이드에서 HAL 관련 코드를 차용하고 있으며,
모질라 위키상의 아키텍처 문서는 특별히 카메라와 GPS 디바이스를 열거하고 있다.
아키텍처 문서는 또한 안드로이드 커널과 하드웨어 벤더가 제공한 수정된 커널 모두에
대한 레퍼런스를 만들고 있다. 분명히 B2G는 가벼운 변형을 용인하도록 설계되었다.
 
Gonk는 또한 안드로이드에서 유래된 init 프로그램, D-Bus, wpa_supplicant, 네트워크 관리자를
포함하고 있다. 미디어 재생 기능 또한 안드로이드에서 왔다.
그곳에는 Gecko가 네이티브에서 디코드할 수 있는 오디오와 비디오 포맷을 처리하는 mediaserver
플레이어와 바이너리 전용 코덱만을 접근하는 libstagefright, 그리고 하드웨어 디코딩 칩이 있다.
 
모질라의 B2G 팀은 이야기할 만한 결론에 도달하지는 않았지만,
Gonk 스택에서 보이는 다양한 안드로이드 컴포넌트들은 기술적 기초보다는 가용한 스마트폰 하드웨어
(삼성 갤럭시 S2, 이것이 모질라의 실험용 디바이스이다)에서 OS를 구동하고자 하는 특별한 업무를
위해 선택되었었다. 예를 들어, 현재 설정은 안드로이드의 Bionic 라이브러리를 사용한다.
하지만 보다 더 일반적인 libc 구현체로 그것을 대체하는 논의가 있었었다.
 
하지만 그러한 컴포넌트와 셀룰라 모뎀 계층을 제외하고는, Gecko가 실행되는 유일한 런타임
프로세스이다.  B2G에는, b2g라 명명된 마스터 "Gecko 서버"가 있다. 
이것은 실행할 각각의 웹 애플리케이션을 위해, 더 낮은 우선순위의 자식 프로세스를 만들어 낸다.
오직 b2g 프로세스만이 직접적으로 하드웨어 디바이스를 접근할 수 있다.
이것이 자식 프로세스에서 요청된 접근을 중재한다.
b2g와 애플리케이션 프로세스는 모질라가 "IPC 프롤토콜 정이 언어" 또는 IPDL이라 부르는
것을 사용해서 서로서로 메시지를 전달할 수 있다. IPDL은 Electrolysis 프로젝트에서 유래된 것이다.
Electrolysis는 파이어폭스를 멀티프로세스 애플리케이션으로 재구성하기 위한 홛동이다.
이것은 여전히 개발중이지만, 이것은 동기적 그리고 비동기적 커뮤니케이션을 제공하며
각각으로부터 자식 프로세스들을 격리시킨다.
 
궁국적으로, Gonk는 안드로이드와 Gecko에 대한 빌드 타겟을 보증하는 전통적인 데스크탑
리눅스 시스템과 많이 다르다.  그밖의 차이들에는, 그것이 가벼운 입력 이벤트 시스템을 구현하고,
X 윈도우 시스템이 아닌 OpenGL ES에 직접적으로 그린다는 것이 있다.
그러나 모든 스마트폰 애플리케이션 프레임워크를 제공하기 위해서,
Gecko 엔진은 텔레포니 스택과 같은 그밖의 프로세스들에 의해 일반적으로 제어되는
저계층의 기능에 직접 접근해야 한다.
 
신규 API들.
 
B2G의 텔레포니 스택은 RIL이라 불리며, 안드로이드내의 관련 코드에서 파생되었다.
RIL은 b2g 프로세스와 셀룰러 모뎀 드라이버간의 커넥션을 관리하기 위한 rilproxy 메커니즘을
제공함으로써 디바이스 벤더들을 지원한다. rild라 불리는 드라이버는 소유권이 있을 수도 있다
(사실, RIL 디자인은 이것이 소유권이 있다고 가정한다) 따라서 그밖의 영영의 스택으로부터
라이센스 상속 조건을 야기하지 않도록 바이러리뿐인 펌웨어 부분을 링크한다.
 
RIL은 음성과 3G 데이터 콜, 네트워크 상태, 텍스트와 MMS 메시징, 그리고 (연락처를 저장하고
찾거나, 또는 언락 코드를 입력하고 검사하는 것과 같은) SIM 카드 명령어를  구현한다.
이러한 명령어는 여전히 개발중인 WebTelephony와 WebSMS JavaSript API를 통해 HTML5
애플리케이션에서 나타난다.
 
사실, B2G에 제한된 많은 기능이 전통적인 Gecko 애플리케이션에서는 필요하지 않았던 신규 API
정의를 필요로하고 있다. 모질라는 Web App Store 프로젝트를 포함해 이미 다른 목적으로 운영체제
독립적인 웹 API 초안을 만드는데 투자했었다. 모질라는 또한 W3C에 의해 관리되는 표준화 활동,
주로 Device APIs Working Group에 참여하고 있다.
모질라가 만든 모든 API들을 표준화하는 것이 궁극적 목적이라고 말하고 있지만,
현재 시점에서, 모질라에 의해 만들어진 모든 API가 W3C의 관련 명세를 갖고 있지는 않다.
모질라의 리스트에는 (연락처와 카메라 API와 같은) 상위계층 인터페이스들과
(블루투스와 NFC 스택 API와 같은) 저계층 인터페이스가 혼합되어 있다.
 
라이브러리에서 가장 지대한 영향력을 갖는 API들은, 설치가능한 웹 애플리케이션에 대한 패키징
가이드라인과 매니페스트 파일 포맷을 명시하고 있는 Open Web Apps과 P2P 네트워킹과 같은
네트워크 중심의 특색뿐만아니라 스트리밍 미디어를 위해 사용되는 실시간 커뮤니케이션 프레임워크를
제공하는 WebRTC이다.
개발중인 명세들중에 다소 덜 친근한 몇가지는 스크린 방향을 감지하는 API, 디바이스가 절전상태일 때의
알림 처리 API, 그리고 (스크린이 커지는 것을 막는 것과 같은) 하드웨어 자원에 대한 락킹 API들이 있다.
 
애플리케이션들과 인터페이스들.
 
B2G 디바이스에서 모든 애플리케이션이 HTML5, CSS, JavaScript로 작성되도록 하는 것이 계획이며,
디바이스가 기본적으로 홈 스트린, 폰 다이얼러, 카메라, 연락처 리스트, 일정, 그리고 기타 등등과
같은 전반적인 폰 애플리케이션을 보유하는 것이 계획이다.
폰 제조사가 내부적으로 개발한 자신들의 코드를 선호할 수도 있지만, 모질라는 최소한의 계획을 하고
있으며, 모형 단계에는 몇몇 데모 B2G 애플리케이션을 만들 것이다.
 
데모 애플리케이션 패키지들은 코드 네임 Gaia이다. 그 위키 페이지는 묶음별 플레이스홀더 또는
웹브라우저, 이미지 갤러리, 카메라 애플리케이션에 대한 더 상세한 모형들을 포함하는 그러한 기본적인
애플리케이션을 담고 있다. 그곳에는 또한 홈 스크린, 락 스크린, 다이얼러에 대한 데모 페이지 모형
이미지가 있다.
 
정적인 모형들보다 더 재밌는 것이 B2G 개발자 Andreas Gal의 GitHub 사이트에서 볼 수 있는 개발중인
데모들이다. 파이어폭스의 최신 버전은 리파지터리에서 HTML 파일을 오픈할 것이다. homescreen.html
파일은 홈 스크린과 락 스크린을 보여주며, 그리고 다양한 그밖의 애플리케이션들이 홈 스크린 런처를
통해 접근가능하다. 물론 애플리케이션들이 매우 광범위하게 불안전하지만, 그 UI는 마우스 클릭과
슬라이드 체스쳐에 반응한다. - 어떤 것은 단지 정적인 이미지이다.
여전히 홈 스크린과 전체적인 애플리케이션은 기본적인 네비게이션과 UI 엘리먼트와 함께 놓여 있다.
 
앞으로 가는 길.
 
B2G 로드맵은 야심차다. 2012년 2/4분기 말에 제품 준비 단계를 예상하고 있다. 2011년 4/4분기의
목적을 아직 모두 달성하지 못했다는 것을 고려할 때, 하드웨어 파트너로부터 개발 시간의 투입없이
이것은 가능하지 않을 지도 모른다. 하지만 프로젝트는 MWC에서의 B2G 데모와 함께 2월 27일 발표를
만들어냈다.
 
아마도 특히, 블루투스, NFC, USB 버그들에 대한 트래킹이 지금 예정보다 늦어지는 것으로 나타나고
있다. 반면에 센서 지원에 대한 대부분의 상위 계층 작업과 사용자 애플리케이션들은 예정대로 되고
있다. 거의 틀림벗이 진행중인 퍼즐의 가장 큰 조각은 WebRTC 지원이다. 물론, WebRTC 자체는
여전히 빠른 개발과정에 있다.  하지만 WebRTC 없이 웹 런타임 스마트폰에서 실시간 오디오와 비디오를
지원하는 목적은 상상하기 어렵다.
 
잠재적인 Open Web Device 애플리케이션 개발자들을 위한 리소스들 또한 현재 부족하다.
모질라가 Mozilla Developer Network(MDN) 사이트의 HTML5 리소스 모음을 임시로 사용하고 있지만,
지금까지는 Open WebApps API들만이 커버되고 있을 뿐이다.
모질라는 정식으로 자신의 Open Web App 마켓플레이스를 2월 28일 오픈했다.
발표에서 그것은 전통적인 데스크탑 플랫폼에 추가해서 진행중인 Web API 할동을 언급했다.
그것은 아마도 Web API가 MDN에 빨리 그것의 길을 만들것이라는 신호일 것이다.
 
언론 발표에서, 텔레포니카 디지털은 2012년에 최초의 Open Web Device가 탑재된 폰 (상세한 하드웨어
명세와 가격은 없었다)을 출시할 것이라고만 말한다.
모질라의 관점에서는 속도를 알지 못하는 W3C의 표준화 프로세스를 통해 신규 JavsScript API를 얻는 것은
억지로 끼워맞추는 것일 수 있음에도 불구하고, 그 일정에 따라 프로젝트를 완수하는 데에는 상당한 시간을
남겨놓고 있다.
 
이름아이콘 들풀
2012-04-05 04:41
Mozilla Boot to Gecko 공식 페이지는 아래와 같습니다.
---
https://wiki.mozilla.org/B2G
   
이름아이콘 소오강호
2012-04-05 06:44
HTML5가 대세긴 대세죠. Webkit과 Gecko, 둘다 화이팅!   ;)
   
 
덧글 쓰기 0
3500
※ 회원등급 레벨 0 이상 읽기가 가능한 게시판입니다.