WebKit 포팅에 관해

Dev 2009. 3. 31. 12:42
단말 엔지니어에게 포팅이란,
HAL API를 타겟 플랫폼에 맞게 구현해주는 작업이다. WIPI를 비롯한 기타 단말 솔루션들은 HAL API set 이 분명하게 정의되어 있다. 정해진 C함수들을 정해진 규격대로 구현하면 포팅이 끝난다. 근데 WebKit 은 이게 모호하다. 플랫폼에 dependent 한 포팅 레이어가 소스 트리 여러 곳에 산재해 있다. 기존 WIPI 포팅에 익숙한 한국의 단말엔지니어에게는 난감한 구조다. 하지만 여기에도 WebKit 나름의 규칙과 일관성이 있다. 익숙해지면 그럴만 하다고 동의할 수 있는 문제다.

WebKit port 의 특징은 포팅 타겟을 OS 로 한정하지 않는다는 점이다.
WebKit의 포팅 타겟은 Windows 나 Linux 같은 OS가 아니라, CoreGraphics, Cairo 같은 그래픽 툴킷, CFNetwork, CURL 같은 네트웍 툴킷이다. Cairo 가 올라간 OS 면 Windows 든 Linux 든 WebKit Cairo port 가 화면을 출력할 수 있다. 마찬가지로 CURL 이 올라간 OS 면 Windows 든 Linux 든 WebKit CURL port 가 네트웍을 이용할 수 있다.

WebKit 이 요구하는 툴킷들을 나열하면 대략 다음과 같다.
* 그래픽 툴킷 : CoreGraphics 또는 Cairo
* 네트웍 툴킷 : CFNetwork 또는 CUrl
* 이미지 디코더 : giflib, jpeglib, libpng ...
* XML 파서 : libxml, libxslt
* DB 라이브러리 : SQLite

WebKit 포팅 절차를 요약하자면 다음과 같다.
1. 사용할 툴킷 set 을 선택한다.
2. 선택한 툴킷을 타겟 OS 또는 타겟 device 에 포팅한다.
3. WebKit 을 올린다.

간단하다.
하지만 언제나 그렇듯, 간단함에도 불구하고 일이 되려면 개발자의 눈물겨운 노력이 있어야 한다.
Posted by ingeeC
,