원천 공개 소프트웨어(Open Source Software: 이하, OSS 또는 공개 소프트웨어로 씀)는 인터넷의 발달과 함께 프로그램 개발 방법에 큰 변화를 일으키고 있다. 개발자들은 우리나라 전통의 ‘두레’ 제도와 같은 커뮤니티를 만들어서, 자발적으로 참여하는 온누리 동료와 자원을 공유하고 협동해, 개발기간을 단축하고 소프트웨어의 품질을 향상시키며 개발 비용을 절감하고 있다.
공개 소프트웨어는 소프트웨어 개발자들의 의견을 반영할 수 있는 동시 개발, 상호 검증, 공개적 변경, 전파의 과정과 절차를 포함하고 있어 소프트웨어 개발 방법에서 대변화를 가져 오고 있다. 공개 소프트웨어는 원천 코드가 공개돼 개발자가 원천 코드를 접근할 수 있고, 수정할 수 있으며 또한 규정에 따라 재배포할 수 있는 소프트웨어를 의미한다.
리눅스, Apache 웹 서버, MySQL 데이터베이스, JBoss 응용 서버 등은 가장 널리 알려진 대표적인 공개 소프트웨어로 그 이용 영역이 날로 더 커지고 있다. 현재 ‘sourceforge.net’에 들어가 보면 약 14만 개의 공개 소프트웨어 개발 과제가 있으며 이들은 특정 솔루션이나 일부 부품(components) 개발 과제이다(참조 www.sourceforge.net).
2004년 초 국내 표준 리눅스 기술개발 사업을 준비하고 있을 때에는 8만개가 안 됐는데 3년 만에 거의 두 배로 늘어났다. 주로 응용 솔루션 분야로 확대됐다.
공개 소프트웨어의 대표자인 리눅스에 대해 개발과 표준 측면에서 분석하고, 개발 커뮤니티와 공개 소프트웨어 활성화 포럼, 라이선스 규약 등을 살펴본다.
<공개 SW의 중심, 리눅스 운용체계>
리눅스 운용체계 기술 정보를 제공하고 응용 프로그램 간 인터페이스 표준화를 추진하는 리눅스 재단(Linux Foundation)이 있다. 이 재단은 리눅스 커뮤니티에서 기술 개발과 표준을 대표하던 양대 단체인 OSDL(Open Source Development Lab.)과 FSG(Free Standard Group)가 통합해 올해 초 설립됐다. 100여 업체가 참여한 최대의 리눅스 단체다.
공개 소프트웨어의 대표격인 리눅스 발전에 필요한 개발 정보를 포함해 여러 가지 서비스를 제공함으로써 리눅스를 표준화하고 활성화하고 있다. 회원은 후지쯔·HP·히타치·IBM·인텔·NEC·노벨·오라클·AMD·시스코·EMC·모토로라·NetApp NTT·지멘스·선·구글·레드햇 등이 있다. 한국 회원사는 ETRI, 소프트웨어진흥원 그리고 HaanSoft 세 기관이다. 현재 리눅스 운용체계 기술의 표준 요구 기능을 완료하였거나 중점으로 추진 기술은 다음과 같다.
◇통신용 리눅스 운용체계, CGL(Carrier Grade Linux)=통신 환경을 위한 리눅스 핵심(kernel)과 미들웨어 기술을 다룬다. 요구사항 규격에서는 우선 통신 장비 및 신뢰성 서버에 대한 견고성을 다루며 또한 표준·가용성·서비스·성능·보안·클러스터링 규격을 제공한다. 한국전자통신연구원(ETRI)은 2006년 초에 CGL 2.0 요구 기능 규격 가운데 ‘강제 언마운트(force unmount)’를 개발해 그 결과 원천코드가 채택돼 등록됐다.<그림 1> CGL(Carrier Grade Linux) 환경
◇데이터센터 리눅스 운용체계(DCL:Data Center Linux)=일반 기업 응용이나 인터넷 응용 서버를 위한 데이터센터에서 필요한 리눅스에 대한 요구 규격 및 기능을 개발하며, 기업 응용 계층과 작업부하 관리 규격을 다룬다. ETRI는 DCL 1.2 요구 기능 규격 가운데 디스크와 네트워크 간의 부하 없이 파일 전송 및 수신을 지원하는 ‘제로카피’와 고성능의 네트워크 응용 프로그램 지원을 위한 비동기 입출력 기능인 ‘네트워크 비동기 I/O’를 완성해 리눅스 재단 내에서 사용하는 용어인 개념 증명 결과물(POC)로 등록했다.
◇데스크톱용 리눅스 운용체계(DTL:Desktop Linux)=개인용 컴퓨터에 리눅스를 사용하는데 필요한 사항을 해결하고 여러 가지 장애 및 요구 사항 및 기능을 다룬다. 데스크탑 리눅스 표준 기준 프로화일 환경 지원, 데스크탑 리눅스 사용 모형 및 표준 활성화, 데스크탑 구현에서 발생하는 타 제품과의 격차 분석 및 문제 해결을 제시한다. 리눅스 서버 보급률은 세계적으로 30%에 접근하지만 데스크톱은 3%도 못되기 때문에 리눅스재단에서 이 분야의 활동을 더욱 독려하고 있다. 우리나라도 POS, 현금인출기, 오락실 게임기 등 고정기능 응용 분야에 리눅스를 활용하면서 데스크톱 리눅스 보급을 확산할 수 있는 전략을 추진 중이다.
◇모바일 리눅스 운용체계(MLI:Mobile Linux)=모바일 단말 및 운용 환경에 리눅스 채택을 활성화하기 위해 시작됐다. 주요 사항으로 리눅스 표준 기준(LSB) 모바일 프로파일, 전원 관리, 보안, 멀티미디어, 장치 드라이버 호환성, 가상화, 텔레포니 공통 API, 모바일 기기 파일시스템을 다룬다. 우리나라가 이동통신이 발달한 나라이므로 이 작업반에 지금이라도 더 적극적으로 참여하면 좋은 분야이다.<그림 2> 리눅스 표준기준(LSB) 모듈
<공개 SW 기술 개발 견인, 커뮤니티>
현재 전 세계적으로 14만개에 가까운 많은 공개 소프트웨어 개발 과제가 있지만 그 뒤에 잘 관리되는 공개 소프트웨어 개발 커뮤니티가 있어야 지속적인 발전이 가능하다. 리눅스 재단이 비공식적으로 조사한 결과 약 2800개 커뮤니티가 있다.
커뮤니티를 지원하는 주체의 유형으로 분석해보면, 우선 기업 혹은 기업 컨소시엄이 주체가 되어 그들의 기업 활동을 위하여 과제나 커뮤니티를 지원하는 경우가 있다. 예를 들면, Fedora(Red Hat), Open Suse(Suse), OSDL, DMTF(Distributed Management Task Force) 등이다. 두 번째는 정부나 지자체 또는 공공기관이 주체가 되어 과제를 지원하는 경우가 있다. 그 예로, Bayanihan(필리핀), Booyo(한국), RPLinux(중국) 등을 꼽을 수 있다.
마지막은 순수한 후원자들의 도움으로 커뮤니티를 운영하는 경우이다. Debian, Sourceforge.net, GNU, GNOME, KDE, KLDP 등이 대표적인 예다. 현재 리눅스 배포 판 중 첫째를 차지하는 Ubuntu는 한 부자 독지가가 지원하는 특별한 경우다.
이런 커뮤니티 운영은 OSS 개발에서 아주 중요한 부분을 차지한다. 어떤 문제가 생기거나 새로운 기능에 대한 요구가 발생하면 개발자 집단이 달려들어서 당면한 문제를 해결하며, 자발적인 협업에 의해 개발을 진행하면서 참여자들의 능력이 향상되고, 관련 기업의 경우에는 자체적으로는 할 수 없는 기술 및 지식의 축적이 이루어지고, 치열한 동료검토 과정을 거치면서 고품질 소프트웨어가 생산된다. 또 개발자나 공개 소프트웨어가 세계적인 대기업의 주목을 받게 되는 효과도 얻을 수 있다. 동북아시아 지역의 커뮤니티로서 2004년 4월에 제1회 베이징 대회로 시작한 “동북아시아 OSS 활성화 포럼”을 소개한다. 공개 소프트웨어 보급 활성화를 위한 공동협력, 기술 개발 협력을 통해 공개 소프트웨어 기술자 훈련, 지역 표준화 그리고 한중일 자국의 OSS 기술 개발 촉진을 목적으로 한다(www.neaoss.or.kr).
<공개 SW 라이선스>
공개 소프트웨어 세계의 경기 규칙은 라이선스 규약이다. 자유 소프트웨어 재단(Free Software Foundation)이 제창한 GPL(General Public License)이 대표적이다. 간단히 요약하면, 공개 소프트웨어를 접근하고, 수정하고, 재배포하는 자유가 있는 동시에 수정한 공개 소프트웨어와 공개 소프트웨어를 일부 사용하여 개발한 소프트웨어를 다시 공개해야 하는 규약이다.
그 밖에도 Apache 규약, BSD 규약, Mozilla 규약 등 수십 종류가 있다. 공개 과제 사이트인 freshmeat.net에 있는 약 3만4000개 공개 소프트웨어 개발 과제가 진행되고 있는데 그 가운데 약 80%가 GPL 또는 LGPL(Lesser GPL, 느슨한 GPL) 규약을 채택하고, 그 다음으로 BSD 규약을 채택한다.
이제 소프트웨어 회사나 일반 기업들은 공개 소프트웨어를 활용하는 방식을 채택할 수밖에 없는 추세다.
Optaros의 최근 조사에 따르면 기업들의 87%가 공개 소프트웨어를 사용하고 있는 것으로 조사됐다. 앞으로 소프트웨어 개발 시장은 공개 프로젝트를 통한 개발 비중이 점차 커질 것이다. 이런 상황에서 우리나라의 공개 소프트웨어 개발 활동도 국내 환경에서 벗어나 국제 커뮤니티를 통한 기술개발에 적극 참여하고 활동해야 한다.
IT산업의 소프트웨어 기반도 윈도나 유닉스 기반에서 벗어나 공개 소프트웨어 기반으로 다변화해야 하며, 소프트웨어 회사도 소프트웨어 저작권 위주의 제품 판매보다는 더 나은 소프트웨어 서비스 창출로 승부를 해야 할 것이다.
※이 원고는 시스템 소프트웨어 연구팀 정성인 팀장이 팀원과 함께 초고를 작성하고, 공개 소프트웨어 솔루션 연구팀 우영춘 팀장이 새로운 내용을 추가한 뒤 필자가 첨삭하면서 재구성했다.
<필자 이력>
△1978. 2. 서울대학교 자연과학대학 계산통계학과 (이학사)
△1980. 2. 한국과학기술원 전산학과 (이학석사)
△1986. 5. 프랑스 낭시 제1대학교 응용수학 및 전산학과 (이학박사)
△1981. 10.∼1986. 5. 프랑스 LORIA(INRIA Lorrain) 연구원
△1986. 7.∼ 현재 한국전자통신연구원 인터넷서버그룹장
△1990. 8. ∼1994. 7 충남대학교 컴퓨터공학과 겸임교수
△1993. 1. ∼1993. 12. 프랑스 Univ. of Nice Sophia-Antipolis 방문 교수
관련 통계자료 다운로드 리눅스 표준기준(LSB) 모듈