NetBSD 공작소

pkgsrc 2008년 세번째 안정 브랜치

석달마다 한번씩 발표되는 pkgsrc 안정 브랜치가 이번 사분기에도 어김없이 나왔다. 사실 저장소에 브랜치가 만들어진지는 일주일이 넘었으나, 몇가지 문제가 있어 그런 것들을 고치다보니 발표가 좀 늦어진 모양이다.

늘 그렇듯이 여러 패키지가 갱신되었고, 패키지 숫자도 7995개로 늘었다. 지원하는 플랫폼도 14개에 달하니, 비교적 많이들 쓰는 운영 체제라면 어디서나 pkgsrc를 쓸 수 있다고 해도 과언이 아니다. 나만 해도 NetBSD, 오픈 솔라리스, 맥 오에스 텐, 윈도우즈에서 모두 pkgsrc를 쓰고 있다. 운영 체제마다 별도의 패키지 관리 도구 사용법을 익힐 필요 없이 pkgsrc 하나로 다 가능하기때문에 매우 편리하다. 다만 사용자가 적은 운영 체제의 경우 아무래도 제대로 설치되지 않는 패키지들이 간혹 있는데, 이런 걸 고치다보면 서로 다른 운영 체제간의 차이를 알게 되고, 소프트웨어 이식에 대해 많이 배울 수 있다.

이번 브랜치는 마침 NetBSD 4.0.1 발표와도 때를 맞춰 나왔으므로, NetBSD 4.0에 pkgsrc 2008Q2를 쓰고 있다면 날을 잡아 각각 4.0.1과 2008Q3으로 갱신하는 것도 좋을 것이다. pkgsrc는 압축된 파일을 FTP로 받거나, 다음과 같이 CVS로 받을 수 있다.

% cvs -d :pserver:anoncvs@anoncvs.NetBSD.org:/cvsroot co -P pkgsrc -rpkgsrc-2008Q3

라이브 씨디로 NetBSD 맛보기

새 운영 체제를 시도해보는 것은 결코 만만한 일이 아니다. 특히나 이전에 써 본 적이 없는 운영 체제라면 더욱 그렇다. 우선 운영 체제를 설치할 컴퓨터를 마련해야하고, 낯설은 설치 화면을 통해 암호문같은 질문들에 대답을 해야한다. 게다가 제대로 쓸만한 환경을 갖추려면 각종 프로그램들을 줄줄이 깔아햐하니, 아무리 어떤 운영 체제가 좋다고 한들, 일단 손에 익은 운영 체제를 버리고 옮겨가기엔 벽이 너무나 높다.

NetBSD를 처음 설치해보려는 사람의 경우도 마찬가지일 것이다. BSD 계열의 운영 체제를 접해보지 않았다면 설치는 고사하고 파티션 방식부터 생소할 것이다. 게다가 소스로부터 컴파일을 해서 설치하는 pkgsrc의 패키지 설치 방식은 바이너리 패키지만 써온 사람에게는 지루하기 짝이 없는 과정이 될 것이다. 하지만 이 모든 문제를 싸그리 없애주는 해결책이 있으니, 바로 NetBSD 라이브 씨디이다.

라이브 씨디는 운영 체제와 유용한 패키지들을 함께 묶어 씨디에 넣어 놓은 것으로, 별도의 설치 과정 없이 씨디로 부팅해서 바로 쓸 수 있는 것이 장점이다. 설치를 하지 않기 때문에 하드 디스크를 건드릴 일도 없으며, 따라서 씨디 부팅만 가능하면 어디에서나 기존의 운영 체제를 전혀 건드리지 않고도 NetBSD를 사용해 볼 수 있다. 비록 NetBSD 프로젝트에서 공식 라이브 씨디를 만들지는 않지만, 사용자들이 만들어 제공하는 것으로 두 종류의 NetBSD 라이브 씨디가 있다.

NetBSD 라이브! 씨디 2007

NetBSD Live! 2007

독일의 출판사인 CL에서 꾸준히 만들어 온 NetBSD 라이브 씨디의 2007년 판이다. NetBSD 4.0이 발표되기 직전에 만들어진 관계로 NetBSD 4.0 베타를 기반으로 하고 있으며, KDE 환경을 기본으로 Abiword, Dia, Inkscape, GIMP, Firefox, XMMS 등을 포함하고 있다. X 윈도우에 기본으로 들어있는 한글 글꼴이 있어서 한글을 읽을 수는 있으나, 한글 입력은 불가능하다. 하지만 NetBSD 4를 체험해 보는 목적으로는 충분하며, 씨디의 내용을 메모리 파일 시스템으로 불러들여 실행하는 형태이기에 메모리만 충분하면 속도도 빠르다. 씨디 이미지는 토렌트로 받거나 NetBSD의 FTP 싸이트에서 직접 받을 수 있다.

지베드 NetBSD 라이브 씨디

Jibbed-0.15.72

NetBSD의 개발 브랜치인 NetBSD-current로부터 만드는 라이브 씨디이다. 현재 버젼은 지난 8월에 나온 0.15.72로, NetBSD-4.99.72를 기반으로 하고 있다. 비교적 자주 갱신되고 있으며, 아직 릴리스되지 않은 NetBSD의 최신 기능들을 시험해보기에 적합하다. 대신 다른 요소들은 매우 기본적인 것들만 포함되어 있어서, 멋진 데스크탑 환경을 원하는 사용자에게는 적합치 않을 수 있다. 한글 글꼴조차도 들어있지 않으므로 NetBSD의 안정 버젼을 사용중이면서 앞으로 발표될 새로운 기능을 체험해보고 싶은 사람들에게 권한다. 씨디 이미지는 지베드 홈페이지에서 받을 수 있다. 현재 버젼의 문제는 NetBSD 라이브! 씨디 2007처럼 메모리 파일 시스템을 쓰는게 아니라, 씨디에서 직접 읽어서 실행하기 때문에 프로그램을 처음 실행할 때 상당히 느리다는 점이다. 이는 vnd(4)의 버그때문인데, 9월 말에 고쳐졌으므로 앞으로 나올 버젼에서는 메모리 파일 시스템을 쓰는 방식으로 바뀔 것으로 보인다.

이상의 두 NetBSD 라이브 씨디는 NetBSD를 맛보는 용도로는 그럭저럭 쓸만하지만, 한글 환경을 고려한다면 실제 작업 용도로는 거의 쓸모가 없다. 하지만 pkgsrc에 포함된 mklivecd를 사용하면 손쉽게 라이브 씨디를 만들 수 있으므로, 얼마전 발표된 NetBSD 4.0.1을 기반으로 한글 환경을 제대로 갖춘 라이브 씨디를 만들어 보는 것도 재미있을 것이다.

NetBSD 4.0.1

NetBSD 4.0.1이 나왔다. 다음은 버젼을 4.0.1로 올리는 CVS 저장소 기록.

Module Name:    src
Committed By:   bouyer
Date:       Sun Oct  5 08:44:03 UTC 2008

Modified Files:
    src/gnu/usr.bin/groff/tmac [netbsd-4-0]: mdoc.local
    src/sys/sys [netbsd-4-0]: param.h

Log Message:
Welcome to NetBSD 4.0.1

4.0이 발표된 것이 작년 12월이니, 거의 일년이 다 되어가는 버젼에 대한 공식 업그레이드를 발표한 셈이다. NetBSD 프로젝트가 잘 하고 있는 일 중의 하나가 이것이다. NetBSD에서는 마지막 두 릴리스에 대해 꾸준히 패치를 하는 것을 원칙으로 하고 있다. 아직 5.0이 나오지 않은 시점에서 여기에 해당되는 릴리스는 3.0과 4.0이며, 두 버젼 모두 CVS를 통해서는 꾸준히 갱신이 되어 왔다. 내가 쓰는 기계중에도 2년 전에 발표된 3.1을 설치해서 지금까지 패치 적용해가며 잘 쓰고 있는 기계가 하나 있다. 하지만 CVS로 소스를 받아서 직접 컴파일을 하지 않는 사용자들은 그런 혜택을 받을 수 없기에, 이번에 새 릴리스를 발표하게 된 것이다. 사실 NetBSD는 현재 5.0 브랜치를 준비하기 위해 새로운 기능 추가를 잠시 중단하고 버그 사냥 및 안정화에 주력하고 있는 상태이다. 이런 상황에서 일년이나 된 버젼의 결점을 보완, 발표하는 것은 자발적 참여에 기반한 오픈 소스 프로젝트에서는 이루어지기 힘든 일이다. 사용자들을 위해 귀중한 시간을 할애해 준 NetBSD 릴리스 엔지니어링 그룹에 감사드린다.

이번 릴리스는 십여개의 보안 패치와 기타 버그 패치를 포함하고 있으므로, 4.0을 설치한 상태로 별다른 조치없이 그냥 써 왔다면 바로 업그레이드할 것을 권한다. 자세한 내용은 며칠 내로 발표될 공식 발표문에 잘 나와있다. 지난달 17일부터 동결중인 pkgsrc의 3사분기 안정 브랜치도 조만간 발표될 예정이므로, 함께 업그레이드하면 편리할 것이다.

시작하며

NetBSD를 처음 접한 것은 2000년 여름에 참가한 한 워크샵에서였다. 네트워크 장비용 보드에 운영 체제를 설치하는 실습을 하고 있었는데, 피씨에서 NetBSD를 보드용으로 크로스컴파일한 후 보드에 올리는 과정을 거쳐야했다. 그때까지 줄곧 리눅스를 컴파일해가며 쓰긴 했지만, 데스크탑용으로만 써 온 탓에, 한 기계에서 전혀 다른 기계용으로 컴파일을 하는 크로스컴파일이란 것이 무척 신기하게 보였다. 게다가 손바닥만한 보드에서 돌아가는 NetBSD는 나의 호기심을 자극하기에 충분했다. 그 후 리눅스를 설치해 사용하던 노트북 컴퓨터에서 사운드 카드가 제대로 동작하지 않는다는 구실로 리눅스를 NetBSD로 갈아 엎으면서 NetBSD와의 본격적인 동거가 시작되었다.

내 컴퓨터에 직접 깔아본 NetBSD는 결코 만만하지 않았다. 설치 과정부터 불친절하기 짝이 없는 메시지로 일관해서, 설치 내내 인터넷을 뒤져 각 화면의 의미를 파악해야 했고, 설치를 간신히 마친 후에는 십년전에나 보았던 twm이 덜컥 튀어나와 나를 당혹스럽게 했다. pkgsrc로 이것저것 패키지를 깔아주고 나서야 간신히 쓸만한 환경이 되었다. 다행히도 사운드 카드는 리눅스에서보다 훨씬 매끄럽게 동작했다. 그러나 그 만족감은 그리 오래 가지 않았다. 한글을 쓰려하자 곳곳에서 암초가 튀어나왔다. 유니코드 한글은 애초에 지원되지 않았고, 터미널용 프로그램들에서는 모두 한글이 깨져 나왔으며, X 윈도우에서도 아미를 이용해 몇몇 프로그램에서 간신히 한글 입력을 할 수 있는 정도였다. 하지만 그런 총체적인 난관들이 오히려 도전해보고자 하는 욕구를 키웠고, 결국 소스 코드를 붙잡고 씨름하는 날들이 시작되었다. 문제점을 하나하나 해결할 때마다 NetBSD의 버그 관리 시스템을 통해 보고를 했고, 그런 보고가 수십개가 쌓이다보니 결국 귀찮게 굴지 말고 직접 커밋하라는 얘기를 듣기에 이르렀다.

수년이 지난 지금, 내가 관리하는 랩의 대부분의 기계에서 NetBSD가 돌아가고 있다. 1.6에서 4.0으로 버젼이 올라가는 동안 쌓인 많은 발전 덕택에, 이제는 한글 사용에도 별 무리가 없고, 다른 운영 체제와 견주어도 기능면에서 그다지 밀리지 않는 수준에 올랐다. 하지만 편의성 차원에서는 아직도 많이 떨어지는 것이 사실이고, 써드파티 프로그램들의 경우 딱 맞물려 돌아가지 못하고 뭔가 삐걱대는 느낌이 종종 든다. 허나 이런 점들이 NetBSD를 재미있게 만드는 요소이다. 모든 것이 완벽한 운영 체제는 한낱 도구에 불과할 뿐이다. 그걸 바탕으로 다른 일을 하는 사람들에게는 좋을지 모르나, 그 자체를 뜯어보고 고쳐보기를 원하는 사람에게는 별로 매력이 없다. 물론 완벽하지 못하다는 것만으로는 재미있는 운영 체제가 될 수 없다. 진정으로 NetBSD를 재미있게 만들어주는 것은 개발 환경이다. 언제 어디서나 소스를 보고 이것 저것 건드려 볼 수 있기 때문에 완벽하지 못한 결점들이 장점이 되는 것이다. NetBSD를 돌려 보기 위해서는 좋은 컴퓨터를 갖출 필요가 없다. 수십개의 플랫폼에 이식하면서 다듬어진 크로스컴파일 환경 덕택에 어떤 운영 체제를 쓰더라도 기본 컴파일 환경만 갖춰지면 거기서 NetBSD를 컴파일할 수 있다. 그렇게 만든 NetBSD를 실제로 돌려보는 것은 몇년째 먼지를 뒤집어쓰고 쳐박혀있는 굼벵이같은 컴퓨터여도 괜찮고, QEMUGXemul같은 가상 기계를 쓸 수도 있다. 써드파티 프로그램들도 pkgsrc를 통해 모두 컴파일해서 설치하는 방식이므로, 손쉽게 패치를 만들어 적용해볼 수 있다. pkgsrc 자체도 이식성이 뛰어나, 리눅스나 솔라리스는 물론 맥 오에스 텐이나 윈도우즈에서도 쓸 수 있다. 결국 어느 운영 체제를 쓰든 NetBSD나 pkgsrc에서 지원하는 프로그램들을 마음대로 고치고 컴파일해 볼 수 있는 환경이 마련되는 것이다.

안타깝게도 NetBSD의 이런 장점들은 그다지 잘 알려져있지 않다. NetBSD를 직접 써보지 못한 대부분의 사람들에게 NetBSD는 불친절하고 불편한 운영 체제일 뿐이다. 하지만 단순한 도구로써의 운영 체제를 찾는 것이 아니라 재밌게 갖고 놀 수 있는 운영 체제를 찾는다면 NetBSD는 최고의 운영 체제이다. 이 곳에서는 그런 사람들과 함께 NetBSD를 즐길 수 있는 주제들을 찾아보려 한다. 무선 인터넷 공유기부터 홈 미디어 서버까지 NetBSD로 만들 수 있는 것이면 어떤 것이든 좋다. 집구석에서 놀고 있는 기계 한대, 그리고 운영 체제에 대한 호기심과 열정만 있으면 된다.

« 이후 글