마이크로소프트웨어 1월호 원고

Posted 2006. 12. 22. 05:48
마감이 쫓기다가 겨우 마소 1월호 원고를 마감했습니다. 1월의 주제는 "포팅의 어려움"입니다.

우리가 일상적으로 사용하는 소프트웨어의 상당수는 윈도, 리눅스, 맥 OS X 등 다양한 플랫폼에서 동작하고 있다. 자바가상머신에 의해서 처음부터 멀티플랫폼(혹은 크로스 플랫폼이라고 불림)을 보장받는 자바 어플리케이션뿐만 아니라, 일반적인 C/C++ 프로그램도 여러 플랫폼을 지원하는 경우가 드물지 않게 되었다. 일례로, 대표적 웹브라우저인 파어어폭스(Firefox)는 윈도, 맥OS X, 리눅스 세 가지 버전을 동시에 배포하고 있다. 과거에는 멀티플랫폼을 지원하는데 드는 노력에 비해 추가적으로 얻을 수 있는 사용자 수가 적었기 때문에, 멀티플랫폼 지원은 막연한 환상에 그쳤다. 하지만 근래의 소프트웨어 기술의 발전 덕분에 멀티플랫폼 소프트웨어는 작은 비용으로 조금이라도 많은 사용자를 확보할 수 있는 수단이 되고 있고, 덕분에 많은 개발자들이 관심을 가지게 되었다. 이 글에서는 멀티플랫폼 소프트웨어 작성의 근간이 되는 포팅 레이어(porting layer)에 대해 살펴보자.

포팅 레이어의 예로

1) CDC JavaVM의 HPI(Host Programming Interface)
2) 아파치 웹서버의 APR(Apache Portable Runtime)
3) WIPI의 HAL(Hardware Abstraction Layer)

을 소개하고 있습니다.