이 포스트는 마이크로소프트웨어 2008년 6월호에 기고한 내용입니다.

---------------------------------------------

계속되는 진화
오픈소스(Open Source)

1부|다양성에 대한 긍정, 자바│이창신 120
2부|실시간 운영체제로의 영역 확장, PHP│용영환  124
3부|프로그래밍 언어의 미래, 루비│황대산 128
4부|서비스의 중심을 꿈꾸는 리눅스와 JBoss│송승호 132
5부|더 편리한 웹 애플리케이션 개발 프레임워크, 스트럿츠2│현철주  136
6부|개발자를 위한 새 솔라리스, OpenSolaris OS│김상필 140
7부|엔터프라이즈 자바를 주도하는 스프링 프레임워크│이일민 144
플러스|오픈소스와의 약속, 라이선스│전도영 기자 148

[특집 | 6부]  

개발자를 위한 새 솔라리스, 오픈솔라리스(OpenSolaris) OS


지난 5월 샌프란시스코의 모스콘 센터에서 열린 자바원 컨퍼런스(JavaOne Conference)에서는 리치 그린 썬마이크로시스템즈(이하 썬) 부사장의 기조연설을 통해 새로운 오픈솔라리스, 즉 OpenSolaris OSTM의 첫 번째 릴리즈인 OpenSolaris 2008.05가 발표됐다. OpenSolaris OS는 기존의 썬 솔라리스 및 오픈솔라리스와 소스 코드 기반은 같지만 바이너리 패키징은 전혀 다른 새로운 방식의 솔라리스 바이너리 배포판으로 개발자를 위한 데스크톱용 솔라리스라는 점에서 의미가 있다. 

---------------------------------------------
김상필 Sangpill.Kim@Sun.COM | 한국썬마이크로시스템즈 시스템 엔지니어링 그룹에서 전략기술 솔루션팀 선임 컨설턴트로 활동하고 있다.
--------------------------------------------- 

OpenSolaris 2008.05는 프로젝트 인디애나(opensolaris.org/os/project/indiana/)라고 하는 오픈솔라리스 프로젝트의 첫 번째 결과물이며 그 동안 인디애나 프리뷰 1, 인디애나 프리뷰 2 등의 이름으로 베타 버전을 선보인 뒤 지난 5월 5일 OpenSolaris OS의 첫 번째 공식 버전으로 릴리즈되었다. 일반적으로 오픈솔라리스는 오픈 솔라리스 커뮤니티(www.opensolaris.org)에서 개발된 커뮤니티 에디션(Solaris Express Community Edition, 이하 SXCE)이나 개발자 에디션(Solaris Express Developer Edition, 이하 SXDE)의 솔라리스 배포판을 이야기하는데 OpenSolaris OS는 고유명사로서 기존의 솔라리스와는 다른 새로운 형태의 배포판을 가리킨다.


<화면 1> 새로운 OpenSolaris OS의 로고


기존의 솔라리스는 오픈 솔라리스 커뮤니티에서 솔라리스의 최신 기능들이 포함된 Solaris Express Community Edition을 매달 릴리즈하고 썬이 이를 1차 안정화하여 Solaris Express Developer Edition을 매 3개월마다 릴리즈하며 이를 바탕으로 썬 솔라리스(Sun Solaris)의 새로운 업데이트가 나오는 개발 및 릴리즈 모델을 적용하고 있었다. 새로 나온 OpenSolaris OS는 이 가운데 Solaris Express Developer Edition을 완전히 대체한다. 따라서 Solaris Express Developer Edition은 지난 01/08 빌드의 릴리즈를 끝으로 더 이상 릴리즈되지 않는다.

새 버전의 특징

OpenSolaris 2008.05를 이야기하는 데 프로젝트 인디애나를 이끌었던 썬의 이안 머독 부사장을 빼놓을 수 없다. 이안 머독은 레드햇과 함께 리눅스 바이너리 배포판을 대표하는 데비안 리눅스의 창시자로서 1993년 데비안 리눅스를 발표한 이래 1999년부터 2005년까지 Progeny Linux System의 공동 창업자 및 회장, 2005년부터 2007년까지 Linux Foundation의 CTO(Chief Technology Officer)로 활동하는 등 그야말로 손꼽히는 리눅스 개발자였다. 그러한 그가 2007년 3월 썬에 합류하여 수석 운영체제 아키텍트를 맡아 이끌었던 프로젝트가 바로 프로젝트 인디애나이며, 그 결과물인 OpenSolaris 2008.05는 현재 개발자들 사이에서 데스크톱용으로 많이 사용되고 있는 데비안 계열 리눅스의 특징들을 많이 닮아 있다. 


IT 업계에서 거의 표준 기술로 여겨질 만큼 혁신적인 기능과 우수한 성능, 그리고 높은 안정성을 인정받는 솔라리스이지만 사실 엔터프라이즈급 서버 전용의 운영체제로 인식되며 일반인들에게는 다소 다루기 어려운 것으로 인식되는 측면이 있었다. 때문에 솔라리스는 일반인들에게 더 친숙한 인터페이스를 제공할 수 없을까, 조금 더 가벼워질 수는 없을까, 데스크톱용으로 개발될 수는 없을까라는 요구가 늘 이어졌는데, 이러한 요구를 충족하는 솔라리스가 바로 OpenSolaris 2008.05이다. OpenSolaris 2008.05는 설치 이미지 파일의 크기가 약 690MB에 불과해 CD 1장 안에 설치 이미지를 담을 수 있는 가벼운 솔라리스이다. 이는 기존 솔라리스의 Predictive Self Healing, DTrace, Container, ZFS 등의 혁신적인 기능들은 그대로 유지한 채 간편한 GUI 설치 프로그램, ZFS 기본 파일시스템 채택, 네트워크 기반의 새로운 패키지 관리 시스템, GNOME 데스크톱의 기본 채택, 3D 사용자 인터페이스 툴인 compiz, 기본 쉘로서 bash 쉘의 채택 등 최신의 썬 솔라리스인 Solaris 10 업데이트가 가지지 않은 새로운 기능들을 제공하며 다음과 같은 주요 특징을 지닌다.

  • 리눅스 개발자에게 친숙한 인터페이스


OpenSolaris OS는 실행 버튼의 로고와 바탕화면 이미지를 제외하면 데스크톱용으로 가장 많이 사용되는 리눅스 배포판의 모습과 거의 유사한 형태를 지녔고, 개발자들에게 더 친숙한 사용자 인터페이스를 제공한다. 그리고 오랫동안 솔라리스에서 사용되어 온 공통 데스크톱 환경(Common Desktop Environment, CDE)을 제외하고 GNOME 데스크톱을 기본으로 제공하며, 오픈 솔라리스에서 기본으로 포함하고 있는 Nymbus 테마를 시스템 기본 테마로 사용한다. 또한 3D 데스크탑 인터페이스 툴인 compiz를 기본으로 포함하고 있다. 개발자들은 학교나 프로젝트 등에서 주로 리눅스를 사용해 온 경우가 많으므로 더 친숙한 사용자 인터페이스를 제공함으로써 개발자들에게 더 쉽게 다가가기 위함이다.

  • 네트워크 기반 패키징 시스템 IPS

OpenSolaris OS는 기존의 솔라리스 패키지 관리 시스템인 SVR4 패키지와 함께 새로운 패키징 시스템인 IPS(Image Packaging System)를 제공한다. IPS 패키지는 실시간 네트워크 저장소(Network Repository System) 기반의 새로운 패키지 관리 방식이다. 이는 개발자가 패키지를 생성하거나 사용자가 패키지를 관리하기 쉽고, 패키지간의 의존관계(Dependency)를 파악해 패키지를 설치할 수 있도록 개발되었다.

그래픽 사용자 인터페이스로 구성된 패키지 매니저가 제공되어 시스템에 설치된 패키지의 이름과 설치된 버전, 사용 가능한 최신 버전을 실시간으로 조회할 수 있으며 네트워크 저장소를 통해 패키지를 검색하고 설치할 수 있다. 또한 자신만의 패키지 이미지를 만들어 저장소에 등록할 수도 있다. 기본 설치된 패키지를 최소화하며 실시간 네트워크 저장소 기반의 패키지 관리를 함으로써 개발, 웹서비스, HPC, 클러스터 구축 등 목적에 따라 필요한 패키지만을 설치하는 한편, 최신의 패키지를 빠르게 설치할 수 있도록 한 것이다.


OpenSolaris OS의 매우 혁신적인 특징 가운데 하나는 바로 ZFS(Zetta-byte File System)를 기본 파일시스템으로 사용한다는 것이다. 이는 ZFS가 제공하는 파일시스템의 스냅샷(Snapshot) 기능을 이용해 패키지를 설치하고 나서 문제가 발생하면 즉시 롤백(Rollback)할 수 있음을 의미한다.

  • LiveCD 및 새로운 설치 소프트웨어

LiveCD는 하드디스크에 운영체제를 인스톨하지 않고 CD로부터 부팅해 운영체제의 모든 기능을 실행하도록 지원한다. OpenSolaris OS CD로부터 부팅하면 GRUB 메뉴에서 CD로부터 OpenSolaris 2008.05를 부팅할 것인지 하드디스크로부터 기존에 설치된 OS를 부팅할 것인지 여부를 선택할 수 있다. 이 때 CD 부팅을 선택하면 OpenSolaris 2008.05가 실행된다. 이 실행만으로도 하드디스크에 저장된 내용을 변경시키지 않고 운영체제의 모든 기능을 사용할 수 있고 새로 OpenSolaris OS를 설치할 수도 있다. 또한 Device Driver Utility를 통해 하드웨어 호환성 등을 테스트한 뒤 미리 디바이스 드라이버를 설치할 수도 있다. 따라서 개발자들이 운영체제의 테스트를 위해 하드디스크를 새로 파티셔닝할 필요가 없고, 가상화 환경의 구축을 위해 추가적인 디스크 용량이 필요하지 않다. 

또한 기존 Solaris Express Developer Edition이 CD 6장 또는 DVD 1장의 용량이었던 것에 비해 CD 1장의 용량으로 매우 가벼워졌으며 간편한 설치 프로그램을 통해 마우스 클릭 몇 번 만으로도 설치할 수 있어 매우 편리해졌다.

  • 썬의 서비스 제공

OpenSolaris OS가 기존의 Solaris Express Developer Edition과 가장 차별화되는 점은 바로 썬이 서비스를 제공한다는 것이다. OpenSolaris OS는 OpenSolaris 2008.05를 시작으로 매 6개월마다 새로운 릴리즈가 나오고 각각의 릴리즈는 18개월간 패치가 제공되면서 서비스 지원 가능한 라이프 사이클을 가지게 된다. Solaris Express Community Edition은 여전히 커뮤니티에서 자체적으로 릴리즈하기 때문에 썬의 서비스와는 무관하지만 OpenSolaris OS는 썬에서 패치를 제공하고 24시간 서비스를 제공한다. 서비스는 기본적으로 개발자 지원과 구독 지원(Subscription Support)으로 나뉘고 구독지원은 Essentials와 Production Support의 두 가지 모델을 제공한다. 

기존의 오픈 솔라리스는 커뮤니티 개발자들의 참여를 통한 소스 코드의 개발과 공유 덕분에 개발자를 위한 혁신적인 신기술들을 가지고 있었으나 안정성에 대한 우려와 문제가 발생할 때 이를 해결할 수 있는 책임 있는 서비스가 없다는 것이 단점이 될 수 있었다. 하지만 썬 솔라리스뿐만 아니라 OpenSolaris OS에 대해서도 서비스를 제공함으로써 개발자들이 안정된 개발 플랫폼으로 이를 선택할 수 있게 되었다.

새 버전의 설치

OpenSolaris 2008.05의 릴리즈와 함께 오픈 솔라리스 커뮤니티에도 변화가 생겼다. 2005년 썬이 솔라리스를 오픈소스화한 이래로 프로젝트를 통한 코드 기반으로 존재하던 기존의 오픈 솔라리스 커뮤니티(OpenSolaris.org)는 그대로 유지한 채 OpenSolaris OS만을 위한 커뮤니티인 OpenSolaris.com(www.opensolaris.com) 사이트가 새로 오픈했다. OpenSolaris.com은 OpenSolaris OS 바이너리를 제공하는 Get, 사용자 포럼을 제공하는 Share, OpenSolaris OS 관련 문서를 제공하는 Learn 세 부분으로 구성되어 있다. Get(www.opensolaris.com/get/) 페이지를 통해 지원 언어에 따라 주요 언어 버전과 모든 언어 버전 두 가지로 구분되어 있는 운영체제 설치 이미지를 다운로드할 수 있으며 배포 라이선스에 따라 다운로드한 이미지 파일은 자유롭게 재배포할 수 있다. Get 사이트에서 신청하면 무료로 설치 CD를 받아볼 수 있다.

  • LiveCD 설치

OpenSolaris 2008.05는 오픈 솔라리스 네바다 빌드 86 소스 코드에 기반해 현재 x86 계열의 32비트 또는 64비트 CPU를 지원하고 있으며 512MB 이상의 메모리, 3.3GB 이상의 하드디스크 용량을 필요로 한다. SPARC CPU를 지원하는 릴리즈는 1년 이내에 출시될 예정이며 네트워크를 통해 솔라리스를 설치하는 JumpStart와 기존 시스템의 환경 및 데이터를 그대로 유지한 채 업그레이드 설치를 하는 LiveUpgrade는 현재 지원되지 않으며 LiveCD 등의 미디어나 이미지 파일을 통한 설치만 지원되고 있다.


CD를 넣고 시디롬으로부터 시스템을 재부팅하면 사용자의 키보드 레이아웃과 언어를 입력하도록 하고 GNOME 데스크톱이 실행된다. LiveCD 기능으로 운영체제의 모든 기능을 실행해 볼 수 있으며 기본적으로 아이디와 패스워드가 jack인 사용자 계정이 생성되어 있다. root 계정의 패스워드는 opensolaris이며 GNOME 데스크톱에서 로그아웃하면 사용 언어 및 세션을 변경할 수 있다.

  • Device Driver Utility

Device Driver Utility는 LiveCD 및 설치된 OpenSolaris OS에서 기본 제공하는 기능으로 OpenSolaris OS 설치 이미지가 지원하는 디바이스 드라이버 및 네트워크 저장소를 통해 설치할 수 있는 디바이스 드라이버를 검색해 준다. 설치 이미지에서는 지원하지 않지만 네트워크 저장소에서 IPS 패키지를 제공하고 있는 디바이스 드라이버는 OpenSolaris OS를 설치할 때 시스템이 네트워크에 연결되어 있으면 함께 설치하도록 한다.

LiveCD로 부팅한 바탕화면에 있는 Device Driver Utility를 실행하면 그래픽 사용자 인터페이스로 된 디바이스 관리자를 실행할 수 있다. 시스템의 디바이스 목록을 모두 조회한 뒤 Submit 버튼을 누르면 솔라리스의 HCL(Hardware Compatibility List)에 자동으로 설치 시스템으로 등록할 수 있다.

  • OpenSolaris OS 설치

LiveCD로 부팅한 바탕화면에서 OpenSolaris 설치 버튼을 누르면 하드디스크에 OpenSolaris 2008.05를 설치할 수 있다. 설치할 디스크 파티션, 표준 시간대, 로케일, 사용자 정보만 입력하면 간단하게 설치를 마칠 수 있으며 설치 중에는 LiveCD로 부팅한 운영체제의 다른 기능을 사용할 수 없다.

OpenSolaris OS는 기본 파일시스템인 ZFS의 스토리지 풀로 fdisk 파티션을 사용하며 설치시 선택된 솔라리스 파티션 전체를 ZFS 풀로 설정하게 된다. 설치 과정에서 /, swap, /export/home 등 슬라이스에 대해 디스크 크기를 할당하던 기존의 방법 대신에 설치된 운영체제에서 ZFS 파일시스템 관리를 통해 슬라이스의 크기를 동적으로 조절할 수 있다. 또한 설치가 끝나면 ZFS 풀에 디스크를 추가해 파일시스템을 확장할 수도 있고 미러링 구성을 할 수도 있다.

사용자 등록 화면에서는 루트 패스워드와 사용자 계정 정보를 입력할 수 있다. 기본적으로 LiveCD와 설치된 운영체제 모두 루트 로그인은 허용되지 않도록 설정되어 있으므로 반드시 설치 중에 생성한 사용자 계정으로 로그인해야 한다. OpenSolaris OS에서의 루트는 사용자 계정이라기보다는 역할 기반 접근 관리(Role-Based Access Control, RBAC)에 바탕을 둔 역할이므로 터미널에서 su 커맨드를 통하거나 프로파일 쉘(pfexec 커맨드)을 통해서만 루트로 로그인할 수 있다. 설치 후에 루트 로그인을 허용하기 위해서는 터미널에서 ‘#rolemod -K type=normal root’ 커맨드를 실행해 root를 일반 사용자 계정으로 변경하면 된다. 설치 중에 사용자 계정을 추가하지 않으면 일반 사용자 계정으로 root가 만들어지고 root 계정으로 로그인할 수 있다.

설치된 OpenSolaris 2008.05는 기본적으로 nwam 서비스(FMRI : network/physical:nwam)가 활성화되어 있으며 nwam 서비스에 의해 네트워크 디바이스가 자동으로 관리된다. 설치 후 네트워크는 기본으로 DHCP를 사용하도록 되어 있으므로 시스템이 네트워크에 연결되어 있으면 DHCP 서버로부터 시스템의 IP 어드레스를 할당받으며, 이와 함께 DNS 서버와 도메인도 할당받게 된다.


<화면 2> OpenSolaris 2008.05 설치


  • 가상화 기반 설치

OpenSolaris OS는 xVM VirtualBox(www.virtualbox.org), Parallels Desktop(www.parallels.com), VMWare Workstation(www.vmware.com) 등의 가상화 하이퍼 바이저 위에서 게스트 운영체제로서 설치할 수 있으며 설치 방법은 www.opensolaris.com/learn/에서 확인할 수 있다. 


IPS 패키지는 그래픽 사용자 인터페이스로 제공되는 Package Manager 또는 pkg 커맨드를 통해 관리될 수 있다. IPS 패키지 관리를 통해 사용자는 현재 시스템 및 네트워크 저장소의 패키지 정보를 로드하여 패키지 이름, 현재 시스템에 설치된 버전, 설치 가능한 최신 버전, 패키지에 관한 일반 정보, 패키지가 포함하는 파일 정보, 패키지의 의존관계 등을 볼 수 있다. 현재 OpenSolaris OS의 공식 네트워크 저장소는 pkg.opensolaris.org 사이트로 5월 21일 현재 약 4,500개 이상의 패키지가 등록되어 있으며 개발자는 자신의 필요에 맞게 공식 네트워크 저장소 이외의 저장소를 별도로 생성하여 자신이 만든 IPS 패키지를 등록하고 이를 배포할 수 있다.

- IPS 패키지 -


SAMP를 꿈꾸며

오픈소스 소프트웨어 솔루션 스택인 LAMP는 웹서비스를 구축하는 데 가장 많이 사용되는 플랫폼이고 오픈소스 소프트웨어의 가장 큰 성공 사례로 꼽힌다. LAMP는 운영체제로서 리눅스(Linux), 웹서버로서 아파치(Apache), 데이터베이스 시스템으로서 MySQL, 웹 프로그래밍 언어로서 PHP를 말하는데, 썬은 지난 2008년 2월 26일자로 MySQL AB.를 인수함으로써 MySQL 기술 개발을 주도하고 서비스를 제공하게 되었다.

이러한 시점에서 OpenSolaris OS의 릴리즈는 오픈소스의 가장 큰 장점인 기술 간의 결합을 통한 기술 혁신이라는 의미를 가진다. 썬이 MySQL을 인수한 뒤 처음으로 릴리즈한 MySQL 5.1은 솔라리스가 제공하는 DTrace의 프로브를 포함하고 있어 데이터베이스 개발자 및 애플리케이션 개발자들이 DB 내의 모든 동작들을 추적해 성능을 향상할 수 있게 되었다. MySQL의 개발자 문서에 따르면 ZFS 파일시스템 위에서 MySQL은 탁월한 성능을 보이는 것으로 보고되고 있다.

한편 기업의 입장에서 오픈소스 소프트웨어에 대한 가장 큰 이슈는 바로 서비스이다. 오픈소스 소프트웨어를 사용하는 기업의 입장에서는 책임 있는 서비스를 통해 기술에 대한 신뢰성을 확보해야 하고, 오픈소스 소프트웨어를 개발하는 기업의 입장에서는 서비스 제공을 통해 수익을 확보해야 하기 때문이다. 오픈소스 소프트웨어가 혁신적 기능과 탁월한 성능으로 기술적 우위를 가질 수 있음에도 불구하고 서비스 지원 문제로 기업이 선뜻 선택할 수 없도록 하는 측면이 있었는데, 이제 썬이 MySQL의 확실한 서비스 주체로 나서게 되었고 OpenSolaris OS에 대해서도 엔터프라이즈급의 우수한 서비스를 지원할 수 있게 되었다. 이는 기존의 LAMP 환경이 웹2.0의 영역을 넘어 기업환경에 더욱 폭 넓게 채택되는 기폭제가 될 뿐 아니라, 앞으로 LAMP 그대로 또는 새로운 OpenSolaris OS를 포함하는 SAMP 형태로 채택이 확대될 것을 기대케 하는 사건이다.

썬은 2005년 솔라리스를 오픈소스화한 이래로 오픈소스 전략을 모든 소프트웨어 제품으로 확대해 오고 있으며 이러한 노력은 매우 성공적인 것으로 평가되고 있다. 네덜란드에 있는 국제연합대학의 연구센터인 UNU-MERIT는 2007년 유럽연합 집행위원회에 제출한 보고서를 통해 오픈소스 소프트웨어가 유럽에 매년 20억 유로의 경제 가치를 부여하는 것으로 평가하는 한편, 썬이 GNU/리눅스에 기여한 소스 코드가 경제 가치로 환산했을 때 4억 달러 이상의 가치가 있으며 이는 다른 모든 IT 기업이 기여한 것보다 크다고 평가했다. 또한 소셜 네트워킹 사이트인 Ning의 공동 창립자인 Marc Andreessen은 ‘Solaris is better Linux than Linux’라고 하여 솔라리스를 가장 성공적인 오픈소스 운영체제로 평가하고 있으며 시장조사기관인 가트너에서는 2008년 보고서에서 썬의 오픈소스 정책에 대해 ‘Strong’으로 평가하며 매우 긍정적인 전망을 내놓고 있다.

썬은 오픈소스에서 ‘오픈’이 단지 개방과 공유의 의미에 그치지 않는다고 생각한다. 썬은 오픈소스 정책에 있어 ‘참여’에 가장 크게 주목하고 있다. 참여가 이루어지지 않는 개방은 새로운 가치를 생산하지 못하기 때문이다. 이번에 새로 릴리즈된 OpenSolaris 2008.05는 바로 ‘참여’의 주체인 개발자를 위한 솔라리스이며, 이를 계기로 많은 개발자들이 참여해 Get, Share, Learn할 수 있기를 기대한다.

Comments:

Post a Comment:
Comments are closed for this entry.

This blog copyright 2009 by Sangpill Kim