페이지

2007년 11월 20일 화요일

Safari 브라우저의 엔진, Webkit의 시작과 발전

iPhone출시와 더불어 Safari가 많은 관심을 받고 있습니다. 사실 Safari는 Apple에서 전부 개발한 것이 아니라 오픈소스 프로젝트인 KHTML 을 가져다가 만들었습니다. 참고로 KHTML은 KDE의 Konqueror 라는 브라우저에서 사용된 Layout 엔진입니다.

Apple은 2003년 처음 Mac OSX용 Safari를 출시하였고 2007년 들어 윈도용 Safari 베타 와 iPhone, iPod Touch용 Safari를 잇달아 출시하였습니다. Safari가 Open Source KHTML기반으로 개발되었기 때문에 Apple은 2005년 6월 브라우저 엔진만 WebKit 이라는 이름으로 공개하였습니다. Nokia도 WebKit 프로젝트에 동참하여 S60 Mobile Platform용 브라우저를 Webkit기반으로 개발하고 있습니다. 잠깐 가계도를 살펴보면,

KHTML -+---- WebKit (by Apple) --> Safari, Dashboard
|
+---S60WebKit --> Web Browser for S60 Mobile Platform (by NOKIA)
|
|----> Konqueror

Apple의 WebKit은 KHTML에 많은 수정을 가하여 현재는 fork하여 따로 소스코드를 운영되고 있습니다. S60Webkit은 Webkit 프로젝트에는 속해 있지만 역시 따로 소스코드를 운영하고 있습니다. Webkit에 반영된 추가 기능에 대해 일정 간격을 두고 S60Webkit에 반영하는 것 같습니다. 그동안 Nokia도 ARM기반으로 포팅하면서 Mobile Device에 최적화를 많이 했을 것입니다. Apple도 Nokia덕분에 iPhone에 쌩쌩 돌아가는 Safari를 쉽게 갖게 되었으리라 추측해봅니다.

하여간 두 회사가 오픈소스인 KHTML을 가져다가 서로 잘 활용하여 좋은 결과를 얻었습니다.



참고로 S60 Browser의 Architecture입니다. KHTML의 WebCore와 JavaScript Core를 포함하고 있습니다.

위 그림에서 Memory Manager는 Nokia에서 개발한 것으로 Nokia BSD 라이센스를 따르고 WebCore, JavaScript Core는 LGPL을 따르고 있습니다. 이 처럼 오픈소스를 가져다가 공개할 부분과 그렇지 않을 부분에 관해 명확히 구분하여 활용하고 있습니다. Memory Manager처럼 일부 Proprietary 모듈도 과감히 공개한 부분도 있습니다.

오픈소스를 활용한 좋은 예라고 할 수 있습니다.

현재, WebKit은 Mobile분야에서 각광을 받고 있습니다. 모토롤라의 리눅스 플랫폼에서도 Webkit을 사용하고 있으며 얼마전 발표한 구글의 모바일 플랫폼 Andrioid 역시 Webkit을 브라우저 엔진으로 채택하였습니다.

Mozilla도 내년에 Mobile Firefox를 출시를 준비하고 있습니다. 지금까지 WebKit이 다소 성능과 메모리 사용에 있어서 유리하다는 측면이 있었는데, Mobile Firefox는 성능과 함께 XUL기반 개발 환경도 지원하여 다양한 Add-ons와 Theme를 지원할 예정입니다.

두 브라우저의 선전을 기대해봅니다~

댓글 2개:

  1. [Blog] Safari 브라우저의 엔진, Webkit의 시작과 발전 - via #twitoaster http://joone.net/blog/?p=229

    답글삭제
  2. RT @joone_net: [Blog] Safari 브라우저의 엔진, Webkit의 시작과 발전 - via #twitoaster http://joone.net/blog/?p=229

    답글삭제