Mac OS X Snow Leopard 10.6에서 빌드 완료했습니다.
Mac OS X Lion 10.7에서 빌드 완료했습니다.

맥에서 실행되는 젠투설치 매뉴얼이다.
사실 맥에서는 젠투 Prefix를 설치할 필요가 그다지 절실하진 않은데 그 이유는,

1. 맥은 솔라리스와는 다르게 어플리케이션이 엄청나게 많다. 게다가 무료 어플리케이션이 리눅스만큼 있다. 못믿으시겠다고? 그래서 맥은 써봐야 안다는 거다.
2. 수많은 어플리케이션 말고도 FreeBSD의 Ports 시스템까지 있어서, 맥 쓰면 어플부족으로 곤란한 경우는 없다.
사실 어플의 숫자를 따지자면 리눅스랑 막상막하라고 볼 수 있는데다, 프로그램의 질이나 수준을 따지면 맥의 어플이 질적인 면에서 더 뛰어나다고 할 수 있겠다 (본인 생각이다). 게다가 양적으로도 밀리지 않고.

그럼에도 불구하고 맥에서 젠투 prefix를 설치한 건 어디까지나 개인적인 관심에 의해서다.
또 다른 이유가 하나 더 있다면, MacPorts는 Mac OS X에 이미 설치되어있는 툴들을 아주 당연히 무시해버린다. 무슨 말인고하니, 맥이 유닉스 기반이라는 건 다들 아시는 사실이니까 하는 말이지만 맥은 기본적으로 Perl, Python 등의 기본적인 툴들이 포함되어있고, Xcode를 설치하면 gcc등 각종 프로그래밍 언어의 컴파일러들까지 딸려온다. 그런데, MacPorts는 이렇게 설치되어있는 툴들을 무시해버리고 처음부터 끝까지 전부 다 설치해버린다. 즉 다시 말해서 BitTorrent라는 어플리케이션을 설치하기 위해서 Python, ncurses부터 빌드하기 시작해서 수많은 라이브러리/툴들을 모두 설치하고나서야 비로소 어플리케이션이 설치된다는 말이다. 그런데 이것들이 좀 가벼운 것들이 아닐테니 이미 시스템에 있는데도 불구하고 시간을 낭비해가면서 다시 설치해야한다는 거다.
뭐 사실, 다시 다 설치한다는 점을 비롯해서 이 글에서 설명하려는 Gentoo on Mac OS X이랑 별반 다를 건 없지만, 앞서 말했듯 개인적인 관심에 의한 것이고, MacPort가 애플의 지원을 받고있다고는 하지만, 개인적으로 젠투의 프로젝트가 더 끌리기 때문이다. 
하지만 MacPorts가 가진 어플리케이션의 양이 어마어마한 수준이기 때문에 젠투 Prefix에 없는 패키지들은 Ports를 통해야하고 결국 둘 다 공존해야한다는 결론이 내려진다. 

어쨌든... 젠투 Prefix가 뭔지 모르시는 분들을 위해 설명을 하자면, 젠투의 포티지 시스템을 로컬 시스템의 OS에 설치해서 쓰는 방식의, 젠투 프로젝트의 하나이다. 설명이 좀 어려운데, 다시 말씀드리자면, 맥 OS X을 건드리지 않고 젠투의 emerge 명령어를 통해 어플리케이션을 빌드할 수 있는 젠투의 포티지 시스템을 설치하는 것이다. 이것이 MacPorts와의 다른 점이 하나 있는데, MacPorts 자체는 이미 컴파일되어있는 바이너리를 가져와서 그냥 설치하기만 하면 되지만 (물론 어플들은 컴파일을 통해서 설치한다), 젠투는 처음부터 끝까지 모두 컴파일이라는 점, 그리고 Ports는 root 권한이 필요하지만(/opt 밑에 설치된다) 젠투는 개인폴더에 설치되서 운용이 가능하다는 점이다.

설치는 단 한 번의 에러도 없이 완벽히 됐고 그 방법을 매뉴얼화 한다.
먼저 젠투 Prefix 폴더를 만들고 패스를 지정해준다.
$ mkdir gentoo
$ export EPREFIX="$HOME/gentoo"
$ export PATH="$EPREFIX/usr/bin:$EPREFIX/bin:$EPREFIX/tmp/usr/bin:$EPREFIX/tmp/bin:$PATH"

이제 아래의 링크를 클릭해서 Prefix 스크립트를 받고 gentoo 폴더로 옮겨서 755 권한을 준다.
$ chmod 755 ~/Downloads/bootstrap-prefix.sh
$ mv ~/Downloads/bootstrap-prefix.sh ~/gentoo
$ cd ~/gentoo

이제 신발끈을 묶자.
$ ./bootstrap-prefix.sh $EPREFIX tree
$ ./bootstrap-prefix.sh $EPREFIX/tmp make
$ ./bootstrap-prefix.sh $EPREFIX/tmp wget
$ ./bootstrap-prefix.sh $EPREFIX/tmp sed
$ ./bootstrap-prefix.sh $EPREFIX/tmp python
$ ./bootstrap-prefix.sh $EPREFIX/tmp coreutils6
   (컴파일 실패하면 coreutils로 해본다)
$ ./bootstrap-prefix.sh $EPREFIX/tmp findutils
$ ./bootstrap-prefix.sh $EPREFIX/tmp tar15
$ ./bootstrap-prefix.sh $EPREFIX/tmp patch9
$ ./bootstrap-prefix.sh $EPREFIX/tmp grep
$ ./bootstrap-prefix.sh $EPREFIX/tmp gawk
$ ./bootstrap-prefix.sh $EPREFIX/tmp bash
$ ./bootstrap-prefix.sh $EPREFIX portage

rehash 해준다.
$ hash -r

이제부터 필수툴들을 빌드한다.
$ emerge --oneshot -q sed (개인적으로 emerge에서는 -q 옵션을 권장한다. -q는 컴파일 메시지를 보여주지 않는다.)
$ emerge --oneshot -q --nodeps bash
$ emerge --oneshot -q pax-utils
$ emerge --oneshot -q --nodeps xz-utils
$ emerge --oneshot -q --nodeps "<wget-1.13.4-r1" 
(에러날 시  
emerge --oneshot -q --nodeps wget)
$ emerge --oneshot -q --nodeps baselayout-prefix m4 flex bison binutils-config

gcc -v를 해서 gcc의 버전을 확인한다. 만약 4.0.1이면, 
$ emerge --oneshot -q --nodeps "=binutils-apple-3.2"

를 실행하고, 그 4.2.1 버전이면
$ emerge --oneshot -q --nodeps "=binutils-apple"

를 실행한다. Lion이면 후자일 확률이 매우 높다. 
 
$ emerge --oneshot -q --nodeps gcc-config gcc-apple (gcc 컴파일이라 시간이 좀 걸린다)

여기서부터는 방금 전 새롭게 컴파일한 gcc로 기본 툴들을 다시 컴파일하는 과정이다.
$ emerge --oneshot -q coreutils findutils tar grep patch gawk make
$ emerge --oneshot -q --nodeps file eselect

이제 부트스트랩된 포티지가 덮어씌여질 수 있도록 임시로 세팅을 바꿔서 포티지를 emerge한다.
$ env FEATURES="-collision-protect" emerge --oneshot -q portage

이제 임시파일을 지우고 rehash한다.
$ rm -Rf $EPREFIX/tmp/*
$ hash -r

포티지 트리를 업데이트 하자.
$ emerge -q --sync

Prefix 설치를 마무리할 수 있게끔 시스템을 빌드하자.
$ env USE=-git emerge -uq system

이제 대망의 마지막 작업이다. 여기서는 USE, CFLAGS를 지정해서 컴파일을 할 수 있다.
인텔 아이맥 코어2듀오 유저나 15인치 i5 맥북프로 유저라면 필자의 CFLAGS를 추천한다. 맥 좋은 게 뭔가. 동일한 플랫폼 아닌가. 아마 똑같이 작동할 거라고 믿는다. 필자의 CFLAGS는 젠투를 10번을 넘게 컴파일해가면서 얻어낸,  적어도 맥에서만큼은 안정적으로 작동하는 것들이다.
참고로, 아이맥 20", 24", 맥미니서버, 맥북프로 15" i5, i7에서 모두 빌드완료했다.

$ vi $EPREFIX/etc/make.conf

빈 파일이다. 내용을 입력해넣자.
CFLAGS="-mtune=core2 -march=core2 -mssse3 -msse3 -O3 -pipe -fomit-frame-pointer -funroll-loops"
CXXFLAGS="${CFLAGS}"
ACCEPT_KEYWORDS="amd64"
MAKE_OPTS="-j3"
LINGUAS="en ko"
USE="unicode nls"

위의 MAKE_OPTS에서는 자신이 쓰는 PC의 CPU 코어에 1을 더하면 된다.
Core i7이라면 코어가 4개일테니 5를 적어주면 되겠다.

혹시나 싶어 링크를 드린다. 안전한 CPU별 CFLAGS이다. http://en.gentoo-wiki.com/wiki/Safe_Cflags/Intel
이제 마지막 작업이다. 새로운 CFLAGS와 이것들을 빌드하기 위해서 그동안 만들어온 툴로서 다시 시스템 전체를 컴파일할 차례이다. 역시 -q 옵션 권장한다.
$ emerge -eq system

아무런 에러없이 빌드가 완료될 것이고, 코어2듀오 2.4GHz 기준으로 약 2시간이면 모두 끝난다.
(i5 이상의 경우 1시간 30분이내에 끝난다. 그나마도  gcc 컴파일에서 40분 잡아먹는다.)
아래의 내용을 실행해주자.
$ cd $EPREFIX/usr/portage/scripts
$ ./bootstrap-prefix.sh $EPREFIX startscript

이제 $HOME/gentoo 폴더에 보면 startprefix라는 실행파일이 하나 보일 거다. gentoo 폴더를 어디에 옮기든 이 startprefix만 실행해주면 언제든 emerge를 사용할 수 있다. 참고로 startprefix를 하고나면 /sbin, /usr/sbin의 패스가 걸려있지 않은데, startprefix 파일을 열어서 보면 root 유저인지 아닌지에 따라 패스를 거느냐 안거느냐 판단을 하는 부분이 있기 때문이다. 그런데 사실 root가 아니더라도 sbin 쓸 일은 수도없이 많기 때문에(ifconfig, ping, traceroute 등등) 이 부분에 대한 패스를 걸어준다.

$ vi $HOME/gentoo/etc/profile
if [ "$EUID" = "0" ] || [ "$USER" = "root" ] ; then 부분을 찾는다. 대략 24라인에 있다.
보시면 PATH= 라고 해서 잘 살펴보시면 /usr/sbin, /sbin 모두 패스가 걸려있다. 이 부분이 root에 대한 부분이고 그 아래 else 라고 적혀있고 PATH 라인이 있는데 여기 보시면 /sbin, /usr/sbin이 없다. 그래서 이 부분에 패스를 걸어주면 이제 일반 유저들도 startprefix 이후에 /sbin, /usr/sbin 바이너리를 이용할 수 있다.
패스추가는  이렇게 한다.

/sbin:/usr/sbin

디렉터리와 디렉터리 사이에는 콜론 : 으로 구분을 지어줘야한다. 필자의 설정을 예제로 들어본다.
/Users/jswlinux/Gentoo/usr/bin:/Users/jswlinux/Gentoo/bin:${PATH}:/usr/bin:/bin:/usr/sbin:/sbin"

이상이다. Enjoy your Prefix!
블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,
솔라리스를 리눅스처럼 쓰기위한 나의 노력은 참 눈물겹다고나 할까...
솔라리스라는 환상적인 OS와 오픈솔라리스의 불투명한 미래 때문에 시작된 나의 작은 관심은 블로그 포스팅을 거의 안하는 내가 불과 며칠 만에 여러 개의 글을 포스팅할 정도의 열정을 가질 정도였으니...

정식명칭은 Gentoo Prefix Bootstrap for Solaris.
솔라리스에서 작동되는 젠투다. 제목만 봐도 환상적이지 않은가.
뛰어난 솔라리스의 기능에 젠투의 emerge까지. 게다가 젠투가 가진 수만개의 패키지들... 컴파일을 통한 최적화된 설치. 솔라리스의 부족한 패키지를 보충하고도 남을 최고의 선택인 것이다.
하지만 안타깝게도 제대로 설치되지 않는다. 후에 설명한다.

먼저, 본인의 솔라리스 시스템은 OpenSolaris 2009.06 Intel 버전에 AMD 듀얼코어 CPU와 램3기가가 장착된 평범한 32비트 데스크탑 컴퓨터다.
젠투의 설치는 대략 3개의 파트로 나뉜다.
1. 신발끈 묶기 (Bootstrap)
2. 필수유틸 설치
3. emerge sync

먼저,  젠투를 설치하기 위해서는 gcc가 반드시 설치되어있어야한다. 설치되어있지 않다면 아래의 명령어로 gcc를 설치해주자.
$ pfexec pkg install SUNWgcc (3.4.3 버전이어야한다. pkg search SUNWgcc로 확인해보자)

젠투를 빌드할 폴더를 만들어준다. 개인 홈디렉토리에 만들어주면 된다.
$ mkdir gentoo

젠투를 빌드할 경로를 지정해준다.
$ export EPREFIX="$HOME/gentoo"

패스를 설정해줘야하는데, 이 부분에서는 젠투 홈페이지에 있는 것과 내용이 조금 달라서 아래의 경로를 사용하시길 바란다.
export PATH="$EPREFIX/usr/bin:$EPREFIX/bin:$EPREFIX/tmp/usr/bin:$EPREFIX/tmp/bin:/usr/sfw/bin:/usr/sfw/i386-pc-solaris2.11/bin:/usr/gnu/bin:/usr/bin:/bin:/sbin:/usr/sbin"

이제 아래의 경로를 클릭해서 젠투 Prefix 파일을 다운로드 한다.

다운로드를 다 했으면 방금만든 gentoo 폴더에 옮기고 755 퍼미션을 준다.
$ chmod 755 bootstrap-prefix.sh
$ mv bootstrap-prefix.sh gentoo/
$ cd gentoo

이제부터 1단계인 신발끈을 묶을 차례다. 아래의 명령어를 차례대로 입력하면 된다.
듀얼코어(코어2듀오보다 낮은)급 이상이면 별로 오래 걸리진 않는다.
$ ./bootstrap-prefix.sh $EPREFIX tree 
$ ./bootstrap-prefix.sh $EPREFIX/tmp make 
$ ./bootstrap-prefix.sh $EPREFIX/tmp wget 
./bootstrap-prefix.sh $EPREFIX/tmp sed 
$ ./bootstrap-prefix.sh $EPREFIX/tmp python 
$ ./bootstrap-prefix.sh $EPREFIX/tmp coreutils 
./bootstrap-prefix.sh $EPREFIX/tmp findutils3 
$ ./bootstrap-prefix.sh $EPREFIX/tmp tar 
$ ./bootstrap-prefix.sh $EPREFIX/tmp patch 
./bootstrap-prefix.sh $EPREFIX/tmp grep 
$ ./bootstrap-prefix.sh $EPREFIX/tmp gawk 
$ ./bootstrap-prefix.sh $EPREFIX/tmp bash 
./bootstrap-prefix.sh $EPREFIX portage

여기까지는 사실상 거의 문제가 없다. 이 중에서 단 하나라도 실패하면 뭔가 문제가 있는 거다.
이제 2단계로 넘어간다.
bash를 rehash 해준다.
$ hash -r

bash와 컴파일러, 그리고 bin유틸 등 필수유틸들을 빌드한다.
$ emerge --oneshot sed
(어떤 시스템에서는 여기서 에러가 났다. 하지만 emerge의 temp 파일에 가서 직접 make해주면 이상없이 잘 됐다)
$ emerge --oneshot --nodeps bash
$ emerge --oneshot wget
$ emerge --oneshot --nodeps baselayout-prefix
$ emerge --oneshot --nodeps xz-utils
$ emerge --oneshot --nodeps m4
$ emerge --oneshot --nodeps flex
$ emerge --oneshot --nodeps bison
$ emerge --oneshot --nodeps binutils-config
$ emerge --oneshot --nodeps binutils
$ emerge --oneshot --nodeps gcc-config
$ emerge --oneshot --nodeps "=gcc-4.2*"
(시간이 꽤 걸린다. 또한, 요즘 나오는 gcc는 대부분 4.4대라서 =gcc-4.4*로 놓고 컴파일을 해봤는데 에러가 났다. 4.3도 역시 에러가 났다. 일단 매뉴얼에서는 4.2로 설치를 한다)

이제는 새롭게 빌드한 gcc 4.2버전으로 필수유틸들을 빌드한다. 원래 솔라리스에 설치되는 gcc 버전은 3.4.x이다.
$ emerge --oneshot coreutils
$ emerge --oneshot findutils
$ emerge --oneshot tar
$ emerge --oneshot grep
$ emerge --oneshot patch
$ emerge --oneshot gawk
$ emerge --oneshot make
$ emerge --oneshot --nodeps file
$ emerge --oneshot --nodeps eselect
오픈인디아나의 경우는 여기서 에러가 아는데, 왜냐하면 저장소에 파일이 없다! 아래의 위치에서 eselect-로 시작하는 받아서 $EPREFIX/usr/portage/distfiles/에 넣어주자.
http://trumpetti.atm.tut.fi/gentoo/distfiles/
 
이쯤에서 스냅샷을 한 번 찍자.

$ emerge --oneshot pax-utils
문제는 바로 이 pax-utils이다. 여기서 젠투 Prefix를 때려치게됐다.
pax-utils에는 14개의 패키지의 의존성을 갖는다.
gnuconfig, autoconfig, zlib, bzip2, automake-wrapper, libperl, perl, perl-cleaner, help2man, texinfo, autoconf, automake, libtool, gnulib, pax-utils 등의 아주 중요한 툴들이 포함되어있어서 이것들이 빌드가 안되면 아무 것도 못한다는 얘기다.
오픈인디아나 148 버전에서는 정상적인 설치가 가능했다.
 

일단 앞에서 2번째까지인 gnuconfig, autoconfig는 빌드가 잘 된다. 하지만, 다음 패키지인 zlib에서 에러가 나는데, 에러메시지를 보면 scanelf라는 명령어가 없어서 빌드할 수 없다는 메시지가 나온다.
(/export/home/jswlinux/gentoo/var/tmp/portage/sys-libs/zlib-1.2.5-r2/temp/environment: line 4263: scanelf: command not found)
문제는 scanelf라는 명령어는 pax-utils에 포함된 명령어이다. 뭘 어쩌라는 말인지...
그래서 pax-utils 소스를 받아다 빌드를 해서 scanelf라는 명령어를 구했는데 일단 해당 메시지가 나오는 패키지는 컴파일이 됐다 (뭔지는 까먹었다). 이게 잘 되서 다음 패키지로 넘어갔고 두어개 정도가 이상없이 잘 빌드가 됐는데, perl에서 더 이상 진행이 안된다. 에러메시지는 
ld.so.1: as: fatal: libz.so.1: open failed: No such file or directory
라고 나오는 것이다. 분명히 저런 파일들은 라이브러리 디렉토리에 다 있었다. 그래서 혹시나 싶어 
export CC="/usr/sfw/bin/gcc" 라고 해주고 다시 빌드를 해봤지만 좀 되는가 싶더니 여전히 똑같은 에러메시지를 냈다. 이것 때문에 해외의 수많은 웹사이트를 뒤지고 다녔지만 자료가 별로 없었다. 국내는 전무한 상태이고, 솔라리스에 젠투 Prefix가 있는지 아는 사람조차 있을까 싶다.
더 이상 진행이 안되는 데에 시간을 계속 쓰고싶진 않았다. 일단 내 지식으로는 해결이 불가능한 부분이기도 하고...
혹시나 오픈솔라리스가 아닌 그냥 솔라리스10이면 되지 않을까 하는 생각도 들지만 나중에 시간이 나면 해볼 생각이다.
만약 pax-utils가 정상적으로 빌드되신 분들은 아래의 사항을 계속 진행하시면 된다.
다시 한 번 강조하지만,  오픈인디아나에서는 잘 된다. 

Portage를 emerge한다.
$ env FEATURES="-collision-protect" emerge --oneshot portage
오픈인디아나 148 버전의 경우는 여기서 에러가 나는 경우 아래처럼 한다.
mv $EPREFIX/usr/lib/libpython2.7.a 
$EPREFIX/usr/lib/_libpython2.7.a 
처음 부트스트랩 당시 빌드됐었던 파이썬의 바이너리 때문에 컴파일이 안된다는 얘기다. 


이제 임시폴더를 지우고 bash를 rehash한다.
$ rm -Rf $EPREFIX/tmp/*
$ hash -r

tree를 업데이트하자.
$ emerge --sync

system을 emerge한다.
$ emerge -u system
오픈인디아나 148의 경우 여기서 에러가 난다. gcc 4.5.2와 mpc 라이브러리간의 circular dependencies 충돌인데 
아직 해결 못했다.  해결했다. 파일을 하나 열고
$ vi $EPREFIX/etc/portage/package.mask
아래의 내용을 입력한다.
>=sys-devel/gcc-4.2.4-r01.3
그런다음 
$ env FEATURES="-collision-protect" emerge --oneshot findutils
끝나면 다시 USE=-git emerge -uav system 해보자. 리스트 뜬다. 뭐 사실은 해결이라기보단 그냥 gcc 4.5.2를 안쓰겠다고 막아놓은 거다.

또한 grep-2.9에서 에러가 날 경우, 위의 예처럼 grep 2.9 버전도 그냥 막아버리자.
큰 이상은 없을거다. 

참고로 USE 플래그나 CFLAGS 옵션을 따로 주는 방법인데 매뉴얼에 나와있길래 적어본다.
$ echo 'USE="unicode nls"' >> $EPREFIX/etc/make.conf 
$ echo 'CFLAGS="-O2 -pipe"' >> $EPREFIX/etc/make.conf 
$ echo 'CXXFLAGS="${CFLAGS}"' >> $EPREFIX/etc/make.conf

이제 대망의 마지막 작업이다.
$ emerge -e system

이것으로서 솔라리스에 원하는 젠투 패키지를 마음대로 가져다 설치할 수 있다. 남부럽지않은 패키지 시스템을 솔라리스에 갖추게 된 것이다.

Bootstrap된 Prefix 환경을 사용하기 위해서는 아래의 스크립트를 사용할 것을 권장한다.
$ cd $EPREFIX/usr/portage/scripts 
$ ./bootstrap-prefix.sh $EPREFIX startscript


블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,
IRC에서 사람들이랑 대화하던 중, 어느 분이 zfs가 뭐냐고 물어보셨다. 컴퓨터를 전공했거나 IT 분야에서 근무하시는 분이 아니었기에 조금 쉬운 설명이 필요했고 당연히 있을 거라고 생각했다. 그래서 금방 인터넷 페이지 링크 하나 드린다고 잠시만 기다리시라고 했는데 찾을 수가 없었다.

내가 찾아본 zfs의 설명을 잠시 보자.
1. ZFS는 간편한 관리성, 트랜젝션 기반의 구문, 완벽한 데이타 무결성 보장, 대용량의 확장성을 제공하는...
2. 기존의 볼륨과 그에 기반한 파티셔닝, 프로비져닝, 대역폭 낭비의 불편성등의 문제를 완전히 제거했...
2. ZFS는 CPU의 파이프라인 개념과 비슷한 I/O 파이프라인 엔진을 가지고 있...
4. 바로 정정이 가능하더라도 모든 데이타를 다시 읽어 들여서 잠재적인 오류를 찾아내게 된...

위의 설명으로 이해시키기엔 도저히 불가능했다. 솔직히 내가 봐도 무슨 말인지 잘 모르겠다. 그래서 리눅스/유닉스에는 관심은 좀 있는데 뭔지는 잘 모르는 그런 분들을 위해서 한 번 설명해보고자 한다. 내 블로그에는 zfs에 대한 찬양에 가까운 내용이 많다보니 이게 뭔지 짚고넘어가야할 것 같았다. 미리 말씀드리지만 사실 나도 잘은 모른다.

먼저 zfs는 Zettabyte File System의 약자이다. 앞의 제타바이트는 도대체 얼마나 클까.
순서는 KB (킬로바이트) - MB (메가바이트) - GB (기가바이트) - TB (테라바이트) - PB (페타바이트) - EB (엑사바이트) - ZB (제타바이트) 이다. 그래도 아직 실감이 안오실 거다.
1,000 기가는 1테라이다. 1,000테라는 1 페타이다. 1,000 페타는 1 엑사이고, 1,000 엑사는 1 제타이다.
이제 실감이 가실 거다. 이 정도 사이즈를 다룰 수 있는 파일시스템이다.

일단 zfs는 포맷이 필요없다. 하드디스크를 연결하고 명령어만 치면 즉시 사용이 가능하다. 요즘에야 파일시스템이 다들 좋아져서 1테라바이트 하드 포맷하는데 몇 분도 채 안걸리지만, zfs는 그나마 그 몇 분의 시간조차도 필요가 없다. 게다가 맘대로 여기저기 뗏다붙였다 할 수 있다.

zfs는 기존의 전통적인 유닉스의 파티션, 즉 /home, /var, /etc 등의 디렉토리별로 나눠서 파티션을 나누는 보통방법과 완전히 다른 새로운 개념의 파일시스템이다. 기존의 파일시스템은 파티션을 나누면 공간을 늘였다줄였다하는 것이 불가능하다. 따라서 운영체제를 설치하기 전에 /var나 /usr 등의 용량계획을 잘 세워서 파티션을 나눠야만 했다. 그렇게 나누는 것이 장애시 복구도 편하고 여러모로 이점이 있기 때문인데, 최근 개인유저들 사이에서는 그냥 / 와 swap 이렇게 달랑 2개만 나누는 것으로 굳어지기도 했다.

그런데 이 zfs는 디렉토리를 따로 나눠줄 필요가 없어졌다. 솔라리스 설치시 그냥 하나의 파티션만 존재하고 그 안에서 zfs가 알아서 관리하는 식인데, 디렉토리를 나눠서 따로 용량을 주는 것도 가능하다는 거다. 또한 RAID를 자체적으로 구현한다. 무슨 말인고 하니, 똑같은 하드디스크를 두 개를 붙여놓고 하나만 쓰되(A), 나머지 하나(B)는 언제나 A와 똑같은 하드디스크를 만들어라는 기능, 다시 말해 미러링이 가능하고 그외 나머지 RAID 의 대부분을 사용할 수 있다. 또한 더 이상 하드디스크에 에러가 나는 일이 없으며 실시간으로 파일시스템을 점검한다. 에러가 생기면 실시간으로 치유가 된다. 뭐 이건 별거 아닌 거 같으니까 다른 얘길 해보자.

내가 반해버린 zfs의 큰 기능은 바로 스냅샷이라는 증분백업이다. 다들 맥의 타임머신이 뭔지는 알면서 증분백업이 무슨 말인지 모르는 분들이 많다. 증분백업이란, 예를 들어서 현재 내 하드디스크에 총 60기가의 데이터가 있다고 가정하자. 처음으로 백업을 하면 일단은 60기가 데이터 모두 외장하드로 백업을 한다. 그리고 다음 날 2기가 정도의 영화파일을 새로 받았고 백업프로그램을 돌리면, 60+2=62기가를 백업하는 게 아니라, 변동된 2기가만 백업을 하는 거다. 이게 바로 증분백업이다.

그런데 zfs의 스냅샷은, 외장하드로 따로 옮기는 백업이 아니라 현재 하드디스크의 상태를 사진찍듯이 이미지를 뜬다. 이미지를 뜬다는 말이 참 설명하기 어려운데, 하드디스크의 데이터를 한 눈에 보이게 펼쳐놓고 위에서 아래로 내려다보면서 카메라로 사진(스냅샷)을 찍는다고 생각하자. 일단 운영체제 설치하고 첫 사진을 찍는다. 60기가짜리 파일이 찍힌 사진이 하나 생겼다. A 사진이라고 하자.
이제 이것저것 다운로드도 하고 프로그램도 설치한다. 3기가의 추가데이터가 생겼다. 이번에는 63기가짜리 데이터가 담긴 하드디스크의 사진을 찍는다. B 사진이라고 하자.
어느 날 갑자기 바이러스인지 뭔지 들어와서 컴퓨터를 완전 헤집고 다녀서 아무래도 더 이상 사용이 안될 것 같다. 그러면, 가장 최근의 사진인 B 사진을 하드디스크 위에 그대로 덮어주기만 하면 B 사진을 찍을 때 당시의 하드디스크로 되돌아간다.

이런 류의 프로그램은 사실 윈도우에도 있고 맥의 타임머신도 비슷한 역할을 한다. 그런데 이 zfs는 스냅샷을 찍는 과정이 불과 1초도 안걸린다. 복원은 다소 시간이 걸리지만 노턴 류의 프로그램 마냥 한두시간씩 기다리는 수준이 아니라 길어봐야 1분 정도다. 하드디스크 안에 몇기가의 데이터가 있는지는 전혀 상관이 없다. 1초에서 1분 이내다. 게다가 사진의 갯수는 무한대다.

사실 내가 솔라리스에 반한 이유는 이게 제일 크다고 볼 수 있겠다. 순간 백업과 순간 복원. 그리고 백업시점 무한대. 그런데 단순히 이게 다는 아니다.
보통 PHP-MySQL 작업을 하다보면 실수로 디비를 덮어써버린다거나 디비를 날려먹는 일이 종종 있다. 특히 큰 서버거나 서비스 중인 서버에서 그랬으면 정말 대형사고다. 그런데 zfs를 이용해서 수시로 스냅샷을 찍어버리면 별로 걱정을 안해도 된다는 거다. 게다가 스냅샷 갯수도 무한대이니 대략 3개월치를 계속 스냅샷을 찍어대면 무려 3개월 동안의 어떠한 상황으로도 돌아갈 수 있다는 거다. 더 응용해보자면 홈디렉토리의 각 사용자별로 스냅샷을 찍어주면, 예를 들어 어떤 한 사용자의 요청으로 인해 시스템 전체가 옛날로 되돌릴 수는 없으니 사용자별로 스냅샷을 찍어주면 해당사용자만 과거로 돌아갈 수 있어서 환상적인 서버운영이 가능하단 거다. 물론 이 경우는 사용자가 많으면 스냅샷 관리하기가 어렵다. 

더 응용해보자.
솔라리스에는 Zone이라고 하는 가상화 솔루션이있다. 이게 뭐냐면, 다들 vmware가 뭔지 아실 거다. 컴퓨터를 가상으로 만들어주는 프로그램인데, vmware처럼 윈도우에서 마우스 클릭해가면서 하는 프로그램만 있는 게 아니라, 솔라리스처럼 깜깜한 화면에 글씨만 주르륵 타이핑하는 그런 컴퓨터에도 가상화 프로그램이 있다.
대부분 솔라리스를 운영하는 서버는, 해커/크래커의 공격에 대비해 웹서버는 가상으로 만들어서 운영한다. 그래서 크래커가 웹서버를 쑥대밭을 만들고 가더라도 가상서버만 날려버리면 본체는 아무런 걱정이 없다. 그런데 문제는, 이 가상서버를 다시 설치해야하고 그 안에 있던 데이터까지 날려먹으니까 골치아프지. 그래서 이 가상서버들도 스냅샷을 찍어대면 크래커가 와서 가상서버 다 박살내도 1초만에 복구시켜버리면 되는 거다. 완전 크래킹 의지를 상실하게 만들어버리는 거다. 이게 바로 zfs의 진정한 사용이 아닌가 싶다.

서버급 규모에서는 단순히 스냅샷 말고도 여러가지 데이터 처리/보관에 대한 기능이 많다. 그런데 아무래도 집에서만 쓰다보니 그런 걸 해볼 일도 없거니와 별 필요도 없다. 그럼에도 불구하고 스냅샷/롤백 이거만으로도 정말 뿅~가게 만드는 환상적인 파일시스템인 것이다.

솔라리스. 어쩌면 너에게 반한 게 아니라 zfs에 반한 걸지도 모르겠다.
블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,
요즘 하루도 빼놓지 않고 오픈솔라리스 커뮤니티(http://opensolaris.org/jive/forum.jspa?forumID=13)를 들락날락 거린다. 일단 2010.06 버전이 언제 나오는지가 궁금하기도 하거니와 향후 오픈솔라리스의 진로가 어떻게 될 것인지 무척이나 궁금하기 때문이다.

그게 뭐가 그리 궁금하냐면, 내 생각에 취업을 위해서라면 IBM의 AIX 내지는 솔라리스를 다룰 줄 알아야할 것 같은데, 둘 중 뭘 해야할지 아직 결정을 못내렸기 때문이다. 둘 다 하면 되지 않느냐 라고 생각이 들곤 하는데, 일단은 한 우물만 파는 것이 좋다고 생각하기 때문이다. 게다가 AIX는 서버도 따로 구매를 해야하기 때문에, 일단 Intel 시스템에 쉽게 설치되는 솔라리스와는 추가적인 비용이 들어간다. 그런데 왜 리눅스가 아니라 유닉스일까...
일단 내 생각이긴 한데, 리눅스는 엄청나게 많은 사람들이 공부하고 있고 굳이 전산전공이 아니더라도 컴퓨터에 조금이라도 관심이 있는 사람들은 다 한 번씩 깔아서 써봤을 정도이기 때문에, 어차피 리눅스는 기본으로 적당한 수준에서 다룰 줄 아는 정도라면 남들과 조금은 차별화된 기술이 있어야하지 않을까 하는 게 내 생각이다.

한국에서 일하는 아는 동생 말로는 AIX는 IBM 관련업체에서 일할 거 아니면 비추라고 하는데, 미국에서 IBM의 입지는 초강력 IT기업이기 때문에 그 파워를 무시할 수가 없는 수준이다. 일단 시장점유율은 뭐가 더 우세하다고 할 수 없는 수준이지만 일단 확실한 점은, IBM은 오픈소스 진영의 강력한 후원자로서 AIX 말고도 서버업체에서는 최고의 위치에 있는 회사지만 그렇다고 HP나 Sun에서 리눅스 서버를 안하는 건 아니라는 거다. 그래서 결론은, 뭘 해야할지 여전히 모르겠단 거다.

일단은 솔라리스에 더 땡기고 있다. AIX는 아직 안써봐서 모르겠지만 리눅스가 아닌 Unix는 뭘 해도 불편할 거라는 건 안봐도 알 것 같다. 솔직히 오픈솔라리스를 노트북에 설치해서 쓸 때만 해도, 깔려있는 걸 쓸 때는 불편한 걸 모르지만, 뭔가를 새로 설치하려고 하는데 만약 솔라리스에 그런 패키지가 없으면 아주 답답하다. 소스 컴파일로 설치하면 되겠지만 소스 컴파일이 잘 안된다. 대부분의 오픈소스 쪽은 gcc로 컴파일을 해야하는데, 그 과정에서 없는 라이브러리들이 무쟈게 많다. 이것도 이래 불편한데, AIX는 더 불편하겠지.

일단은, 솔라리스는 내가 이전 포스팅(http://jswlinux.tistory.com/tag/오픈솔라리스)에도 몇 번이나 강조했지만, zfs와 zone 이것만으로도 이미 결론은 났다고 볼 정도다. 그래서 솔라리스에 좀 더 땡기는 거다. 그런데 이노무 솔라리스가 오라클 땜시 결론이 안나니...

현재 우리 집에서 쓰는 컴퓨터를 비롯해서 일하는 가게에서 쓰는 서버&PC까지, 리눅스는 단 한 대도 없다. 미안하다 리눅스. 집에서 쓰는 컴은 아이맥 20"이고, 서버는 오픈솔라리스 2009.06. 일하는 가게 역시 내 전용 컴은 아이맥 24", 서버는 오픈솔라리스 2009.06이다. 최근 두 달 사이 실수로 엄청난 데이터를 날려먹으면서 맥의 타임머신 같은 증분백업툴이 필요한데 리눅스에는 그런 게 없는 것 같고, 그렇다고 3개월 4개월씩 하드 전체를 백업하기엔 용량이 무쟈게 딸린다.

며칠 전, 토렌트에서 뭘 좀 다운받아야할 일이 생겨서 오픈솔라리스 패키지를 뒤져보니까 그나마 좀 익숙한 rtorrent가 없다. BitTorrent가 있긴 한데 사용법이 좀 생소한 건 둘째치고서라도, 맥의 uTorrent에서 정상적으로 받아지는 파일이 BitTorrent에서 안받아지는 이상한 현상이 생기는 거다. 그래서 테스트를 좀 해보고자 rTorrent의 소스를 다운받아서 컴파일을 하려고 하는데 이게 또 컴파일이 안되는 거다. 내가 아는 지식을 총 동원해서 라이브러리 패스 지정해주고 별짓 다 해봤는데 일단 컴파일이 안된다. 뿐만 아니라 숙제할 때 가끔 필요한 콘솔형 계산기인 Mathomatic 역시 컴파일이 안된다. 역시 솔라리스가 기업에서 쓸 서버로서는 정말 좋지만 (회사에서 토렌트로 다운받을 일은 없을테니) 나처럼 개인이 집에서 가정용 서버로 쓰기에는 무척이나 불편하다는 사실을 깨닫게 됐다. 순간 마음이 흔들려서 그냥 원래 쓰던 리눅스로 다시 밀어버릴까도 생각해봤지만, 다시 밀어버리면 솔라리스 공부하는데 지장이 생길 것 같기도 하고 기왕 마음 먹은 거, 작심삼일은 가야하지 않나 싶어 일단 어떻게든 써보기로 했다.

그 와중에 Nexenta라는 또 다른 오픈솔라리스의 배포판을 알게됐다. 사용기나 설치후기 내지는 뭔가 정보가 있을까 싶어서 한국 사이트를 구글링 해봤는데 전혀 없다. 전~~~혀 없다. 아예 없다. 한 개도 없다. 대체 IT 강국 대한민국은 리눅스 아니면 아예 관심조차 없는 것인가.

따라서, 본 포스팅이 한국 최초의 Nexenta 사용후기가 아닐까 싶다 (말만 거창하다). 설치과정은 http://www.nexenta.org/projects/site/wiki/GettingStarted 에서 보고 따라하면 되겠다. 설치는 리눅스 설치를 안해봤더라도 상당히 쉬운 편이다. 지역시간대 설정하고 root 비번, 일반사용자 비번 정해주고 dhcp와 ip6만 Yes/No 결정만 하면 그게 끝이다. 참고로 저 사이트의 스샷과는 달리 Nexenta의 최신버전은 X-Windows가 포함되어있지 않다.

Nexenta에 대해 간략히 소개해본다.
1. 오픈솔라리스 기반
2. ZFS deduplication 지원 (deduplication을 뭐라고 해석해야할지 모르겠다)
3. Crossbow (네트워크 레이어 가상화 기능) 지원
4. 13,000 여개의 패키지
5. 우분투 8.04 저장소 기반의 패키지 구성
6. 최신 dpkg, apt, gcc, binutils, coreutils, perl, python, ruby, qt libs, gtk libs 등 포함
7. 아파치, PHP, MySQL, PostgreSQL, exim4 등의 서버 어플리케이션을 위한 Service Management Facility 지원
8. 데비안과 100% 똑같은 환경, 쉬운 업그레이드, 쉬운 설치.
9. Vim, Screen 기본 포함
10. apt-clone 포함 
(zfs와 통합된 새로운 툴로서, apt-get dist-upgrade나 기타 패키지 업데이트시 새로운 BE를 만들고 이에 대해 스냅샷을 찍는 유틸리티. 즉 업데이트 이후 뭔가 잘못되면 다시 되돌아갈 수 있다.)

그야말로 대부분의 리눅스 유저들이 딱 찾는 OS가 아닐까 싶다. 솔라리스만의 강력함, 그리고 익숙한 데비안 환경. 우분투와 거의 비슷한 수의 패키지는 그야말로 내가 원하던 배포판이었던 것이다. 외국쪽 인터넷 신문기사를 좀 뒤져보니까, 넥센타 출시 이후 몇몇 상용유닉스 업체에서 조금 긴장모드에 돌입했다고 한다. 그만큼 솔라리스와 데비안의 결합은 강력하다는 것이다. 일단 vmware에 설치를 했고 사용을 좀 해봤다.

먼저, Stable 버전인 NCP2를 설치해봤는데 이게 apt-get dist-upgrade하니까 작동이 안되는 거다. 그래서 좀 알아보니까 NCP2 버전에는 저게 좀 문제란다. 그래서 NCP3 Unstable 버전을 깔아서 쓰란다. 그래서 NCP3 Unstable 버전을 설치했다.

설치는 위에 설명한대로 몇 가지 엔터만 눌러주니까 완료됐다. 오픈솔라리스와의 구성에서 조금 차이가 있다면, zfs list하면 다소 적절히 용도에 맞게 나눠져있는 것이 넥센타에는 전혀 나뉘어져있지 않다. 달랑 통짜 하나만 되어있다. 나중에 홈디렉토리 정도는 따로 나눠줘야할 것 같다.
그외 dpkg, apt-get 등은 데비안과 완전 같았다.

디렉토리 구조는 오픈솔라리스의 구조를 따르지만 설정파일의 형태, 예를 들면 아파치 서버 설정파일이나 bashrc 등은 데비안과 완전히 같았다. 따라서 아파치 모듈의 경우, /etc/apache2/mods-enable/ 안에 링크만 걸어줌으로서 모듈을 키고 끄는 것이 가능했다. 다만 특이한 점은, 넥센타에 대해서 간략히 알아보기 부분의 7번 사항, SMF의 지원으로 인해 /etc/init.d/apache2 와 svcadm에서 enable 시키는 것이 둘다 똑같이 작동되는 재밌는 현상이 발견됐다. 따라서 일관성을 유지하기 위해서는 관리자가 어느 하나를 선택해서 사용해야할 것 같다. 그외 mysql을 설치할 때는 우분투처럼 설치 중간에 MySQL root의 패스워드를 입력하라는 화면도 나왔었다. 한 가지 아쉬운 점도 있는데 pfexec 명령어가 안먹힌다는 거다. /etc/user_attr파일에 분명 roles=root를 줬는데도 안되는 거다. 보니까 sudoer에 일반계정이 하나 등록되어있는 걸 보니 데비안처럼 sudo를 쓰라는 거 같은데 개인적으로 pfexec 기능이 무척 신선해서 그게 좋았었다.

다만 X-Windows 데스크탑 지원에 있어서는 아쉬운 것이 많았는데, 일단 ubuntu-desktop이라는 패키지가 없어서 우분투 데스크탑의 그놈 환경을 구성하려면 패키지를 일일히 알아보고 설치해야한다는 단점이 있었고, 또한 단순히 apt-get install xorg gdm 으로 설치시에는 마우스가 전혀 작동하질 않았는데다 로그인을 하더라도 데스크탑 매니져 역시 아무 것도 로딩되질 않았다.
이에 대해서 넥센타 포럼은 데스크탑 환경의 넥센타는 StormOS라는 것을 사용하길 권장하고 있다.

일단 mathomatic이라는 계산기는 소스를 다운받아서 컴파일을 해봤지만 되진 않았다. 왜 안되는지는 내가 프로그래머는 아니니까 아무리 웹서핑하고 연구해봐도 도저히 모르겠다. 다만 apt-get으로 설치할 수 있는 패키지의 수가 데비안/우분투와 거의 비슷한 수준이니까 아마 없는 건 없겠지만서도 그 많은 패키지 중에서 내가 필요한 몇 개가 없는 것도 조금 아쉽긴 하다.
다만, 그럼에도 불구하고, apt-get으로 쉽게 설치할 수 있는 13,000여개나 되는 엄청난 양의 패키지 지원과 우분투 식의 쉬운 설정파일은 아무래도 지금 설치해놓은 오픈솔라리스를 뒤엎고 넥센타로 갈아타야겠다는 생각을 하게 만들어버린다.

다만 외국포럼 쪽에서의 사용후기나 경험담을 보면, 오픈솔라리스로 중대형 서버를 구축해서 테스팅을 해보면 안정성 있고 신뢰감이 있게 돌아가는데 넥센타는 중형급 이상의 서버에서는 조금 불안정하다고 한다. 즉, 나처럼 집에서 가정용으로 쓰기엔 적합하다는 거다. 일단 넥센타가 나온지 그리 오래되지 않았으니 (첫버전 2008년 6월) 안정성을 갖추면 솔라리스와 리눅스 시장 둘 다 잡을 수 있을만큼 충분한 가능성이 있지 않을까 싶다.

오늘이나 내일 갈아탄다. ㅎㅎ


결론:
갈아타봤다. 그런데 못쓰겠다. ㅎㅎ
먼저 기본적인 세팅은 문제가 없는데, 웹서버를 위한 zone을 설치하고 zone 안에서 APM을 설치하는데 무슨 에러가 그리 많이 나는지, 설치도 안될 뿐더러 이상한 에러도 많다. 못쓰겠다.
문득 젠투-솔라리스 패키지가 생각났는데, 차라리 그게 나을 거 같다.
그걸 해보고 다시 소감문을 올려드린다.
블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,
리눅스를 접한지도 벌써 14년이라는 세월이 흘렀다. 내 블로그에 누차 설명했지만 슬랙웨어 2.2를 처음으로 리눅스를 접했는데 어떻게 보면 운명이라고 할 수 있을 정도로 내 PC에 설치가 잘됐었다. 그때당시는 설치조차도 어려울 정도였고 심지어는 하드웨어 때문에 X-Windows를 못띄우는 사람이 한 둘이 아니었다. 다시 말하면, X-Windows까지 띄워서 쓰는 사람이 별로 없었단 거다. 그런데 내 PC는 운좋게 아무런 삽질도 하지 않고 모든 것이 일사천리로 진행됐었다. 그때 처음으로 용산에서 나한테 컴퓨터를 팔아준 아저씨가 고마웠다 (95년도쯤이었는데, 무려 220만원이나 주고 샀다).

다들 그렇겠지만, 나도 역시 처음에 리눅스를 설치하고는 명령어 몇 개 쳐보다 "내가 이걸로 뭘 할 수 있을까"하는 생각에 바로 지워버리곤 했다. 그걸 몇 번이나 되풀이했다. 그도 그럴 것이 사실 나는 프로그래밍을 할 줄 몰랐고 그 쪽에는 관심도 없었기 때문이다. 게다가 그 때 당시의 리눅스는 X-Windows 띄워도 할 게 없었다. 그야말로 텅빈 화면에 터미널 하나 띄워져있는 정도의 수준이었던 거다. 그러다가 우연히 천리안 리눅스 동호회에 가입을 했고, 질문/답변 게시판에서 내가 설치하면서 겪었던 경험을 토대로 답변을 몇 번 해주다보니 꽤 유명한 사람이 되어있었던 거다 (나만의 착각일까). 그래서 천리안 리눅스 동호회에서 한 2-3년간 운영진을 했고 어린 나이임에도 그때 당시 많은 분들이 리눅스를 거의 모르던 시절에 공개세미나도 참여했었다. 그때당시 쓰였던 교재의 서두를 집필했는데, 이게 아직도 KLDP에 보관되어있다 (http://wiki.kldp.org/KoreanDoc/Begin-KLDP). 그때는 "선이"라는 닉네임을 썼는데 이게 나중에 "서니"라는 닉네임으로 바뀐 거다. 그런데 그때 교재를 편집하던 분이 내 실명이 진짜 "선이"인줄 알고 그렇게 넣어버렸다. ㅎㅎㅎ

매번 리눅스 관련 블로그를 포스팅할 때마다 이놈의 과거얘기는 맨날 하는 것 같다.
리눅스 동호회 활동을 하면서부터 M$타도 리눅스 찬양을 외치는 맹신도, 요즘말로 리눅스 빠돌이가 되었다. 무조건 윈도그(Windog)는 나쁜 운영체제고 리눅스만이 우리의 구세주며 이 시대를 바로잡을 수 있는 운영체제라고 굳게 믿어가며 리눅스에 매진했었다. 마치 마르크스 주의에서 말하는 선동세력에서 열정만 있고 지식은 없는, 가장 무모하고 선동 초기에 가장 유용한 계급으로 분류되는 그런 회원 중 하나였다고 생각된다. 그때 쌓은 리눅스 내공이 지금까지 이어져오는 걸 보면, 그때 참 많이 하긴 많이 했었다.

군대를 갔다왔고 제대하고 나니까 리눅스의 붐이 일고있었던 시기였다. 지금은 없어진 한컴리눅스 사에서 나온 리눅스를 필두로 수많은 국내 배포판들이 국내 리눅스 시장에서 선전하고 있었고, 내가 천리안 리눅스 동호회에서 활동할 시절 그러니까 대한민국 리눅스 1세대들은 이미 쟁쟁한 기업 혹은 직접 서버 시장에 뛰어들어 사업을 하고있었던 거다. 성공한 분들도 몇 있고, 연락이 안되는 분들도 몇 있다. 연락이 안되는 분들은 좋은데 취직해서 일하느라 바쁜 걸로 생각하고 있다.
암튼, 그때까지도 리눅스가 최고였고 사실상 나의 리눅스 내공은 군 제대 후부터 새마을금고 입사 전까지 쌓은 것이 최고로 많고 가장 값진 때였다. 그때 젠투, LFS 등등 고난도의 배포판들을 두루 섭렵했고 내가 꼬셔서 젠투를 쓰게 한 Badung이라는 닉네임을 쓰는 유저는 내 덕분에 젠투를 쓰게됐다고 얘기한다.

하루는 절친한 친구한테 리눅스를 권했다. 그 친구 성격이라면 M$에 노예가 된 우리의 처지를 깨닫고 자유를 위해 OS를 스스로 고쳐나가는 매트릭스의 네오와 같은 친구일거라 생각했기 때문이었다. 그런데 결론은 정 반대였다.
그때당시 잘나가던 한컴리눅스 3.0인가를 설치해줬는데 하는 말이, "이게 뭐야. 화면도 안예쁘고, 그래픽도 별로고, MSN 메신저도 잘 안되잖아" 였다. 그래서 그 친구는 리눅스 화면을 본지 2분만에 지워버렸다. 그러면서 리눅스가 결코 M$를 따라잡는 일은 없을 것 같다라는 얘길 했다. 그에 발끈한 나는, 그래. 10년만 두고보자. 하고 말했지만, 그 친구는 10년이 지나도 여전할 것 같다고 얘길 했다. 그리고 여전하다.

새마을금고에 취직한 이후 젠투를 유지보수하는데에 들일 시간이 거의 없었던 나는, 리눅스를 접한 이래 처음으로 내 컴퓨터에서 리눅스를 지워버렸다. 그리고 3년 여의 직장생활을 했다. 그 와중에서도 나는 오픈소스를 쓰고자 내가 일하는 지점의 직원들 PC에 오픈오피스를 정식으로 도입하고자 새마을금고 연합회 전산정보부와 접촉을 했다. 허가를 받았고 우리 지점만 쓰게됐다. 그리고 유학을 왔다.

미국에 와서 꽤 많은 수의 Macintosh를 봤다. 많이 쓴다. 태어나서 맥이라는 물건은 처음 봤다. 관심도 없었거니와 응용프로그램이 얼마 없는 리눅스와 같은 소수만이 쓰는 OS라고 생각했다. 알아봤더니 Unix 기반이란다. 그게 너무나도 갖고싶었다. 이젠 사고싶어서 돌아가실 지경이 됐다. 그래서 20인치짜리 아이맥으로 한 대 구입을 했다. 써보고 대략 1주일만에 이런 평가를 내렸다.

"내가 리눅스를 쓰면서 간절히 원했던 모든 것이 구현되어있는 운영체제다."

유닉스 기반, 아름다운 화면, 누구나 사용하기 쉬운 인터페이스, 윈도우만큼은 아니지만 꽤 많은 양의 정식출시된 게임들. 리눅스는 점점 잊어갔다. 맥이 Unix 기반이기 때문에 아파치, MySQL 등등 리눅스에서 운영할 수 있는 서버 모두 운영이 가능했고 심지어는 GNU 툴과 gcc 등의 개발환경까지 모두 갖췄기 때문에 일단 터미널을 열면 리눅스를 쓰는 것과 거의 같은 느낌을 줬다. 게다가 BSD Port까지 있어서 굳이 수고스럽게 컴파일 방법을 찾지 않아도 됐었다. 더군다나 수많은 양의 무료 소프트웨어들이 널리고 널렸다 (대부분의 비-Mac유저들은 모르는 사실이다).

맥은 정말 최고였다. 지금껏 리눅스 밖에 모르던 리눅스와 함께한 내 인생에서 리눅스는 잊고 오로지 맥만이 진리가 됐다. 앞으로 구입하는 모든 PC는 맥만 구입하노라 하고 결심했을 정도였다. 다만 와이프가 맥을 싫어해서 (즐겨보는 TV 웹사이트가 맥에서는 잘 안나온다) 소니 바이오 한 대를 구입했지만 이 노트북마저도 해킨토시를 깔아볼려고 별짓을 다했다. 결국은 포기하고 해킨토시의 최강자라고 불리우는 델미니9을 사서 해킨을 깔아쓰고있다.

한 가지 웃기는 건, 내가 맥을 쓰는 와중에 한국 우분투 포럼에서 많은 활동을 하게됐다는 점이다. 구형 노트북이 한 대 생겼는데, 여기에 뭘 설치할까 하고 알아보다가 우분투를 쓰게됐고 IRC에서 채팅하는 걸 즐기는 나로서는 IRC에 매일 채팅을 함으로서 사람들과 친해지게 됐다. 그러면서 우분투 포럼에서 조금 활동을 하게됐는데, 우분투 포럼에서 맥 얘기만 해댔다. 어쨌든, 활동을 조금 하게됨으로써 IRC 우분투 채널 방장이 됐고 몇몇 소소한 활동을 하고있다.

이쯤에서 솔라리스가 등장한다. Mac과 역시 마찬가지로 이전에는 본적도 없고 관심도 없었다. 단순히 상용유닉스라는 것만 알았고, 리눅스와 달라서 쓰기 불편하다는 정도의 인식이 있었다. 그런데 어느날 문득 오픈솔라리스 2009.06 버전을 설치해서 쓰게됐는데, 이게 너무나도 환상적인 운영체제인 거다. 맥을 접했을 때는 워낙 들뜬 마음에 사전조사를 엄청나게 많이 했고 맥을 구입하기도 전부터 모든 기능을 다 알아버린 상태여서 감동이 크진 않았는데, 전혀 기대없이 그냥 한 번 깔아본 솔라리스는 지금 내 인생을 바꾸는 중이다.

나는 금융업에 종사한 사람이어서 사실 컴퓨터에 대해서는 잘 모른다는 말을 내세운다. 그도 그럴 것이 내가 프로그래밍을 배운 것도 아니요, 전산학을 전공한 것도 아니기 때문에 뭔가를 깊이있게 아는 것이 없었고 아무 것도 모르면서 마구 떠들어대기가 뭐하기 때문에 IT에 대해서 얘기할 때는 무척이나 조심스럽다. 이런 내가 대체 솔라리스에 대해서 뭘 알기에 환상적이라고 할까.

내가 솔라리스에 반한 건 딱 두 가지다. zfs, zone. DTrace는 아직 못써봤다. 이건 공부를 좀 해봐야할 것 같다.
zfs. 아마도 전세계 OS만드는 회사/사람들이 가장 군침흘리는 FileSystem이 아닐까 싶다. 최고다. 정말 궁극의 FS이고, 앞으로도 zfs 이상의 개념을 갖는 FS가 나올까 싶다. 그래봐야 내가 해본 건 zfs의 기능 중 극히 일부인 스냅샷, 롤백 정도만 해봤지만 불과 그것만으로도 이거 정말 환상적이라는 생각이 들게 만들 정도다. 애플이 zfs를 맥OSX에 도입하려고 하다 중간에 없어졌는데 (법적인 이유 때문에) 정말 한탄스러운 일일 정도다. zfs, 최고다.

zone. 정말 유용하고 강력하다. 다른 상용 유닉스에도 비슷한 기술이 있는데 사실 상용유닉스는 접하기가 어려우니까 결국 가상화기술은 솔라리스의 zone을 처음 만져본 거다. Zone은 커널 수준에서 가상화기능을 제공하는데, 요즘 가상서버로 호스팅을 하는 게 유행인 추세다. 이것에 대한 설명은 웹서핑을 통해 알아보시고, 현재 나는 집에서 운영 중인 서버를 오픈솔라리스로 설치하고 webserver라는 가상zone을 만들어서 서버로 운영하고 있다. 그래서 이 가상zone이 해킹/크래킹 혹은 오류로 인해 망가지더라도 내 솔라리스 서버 자체는 아무 이상이 없는 거다.

제목에 써있는, 말할 수 없는 비밀을 말하기 위해 여지껏 설명해왔다.
지인에게 얻은 AMD Athlon 64 데탑에 오픈솔라리스를 설치해서 쓰다보니 회사에서 내가 쓰는 컴퓨터에 설치된 우분투 9.10과 자꾸만 비교되는 거다. 물론 데스크탑의 멀티미디어 측면에서 봤을 땐 리눅스를 따라갈 유닉스는 맥OSX을 제외하고 없다는 건 진리다. 그런데 회사에서 업무적으로 사용하는 PC에서 문서작성&웹서핑 정도의 OS로는 오픈솔라리스도 크게 문제가 없단 사실이다.

그런데 자꾸만 비교가 되는 부분은, 우분투 데탑을 쓰면서 안정된 느낌을 받지 못한다는 점이다. 뭐랄까... 어떤 어플을 하나 실행하면 조금 쓰다가 죽는 일이 생긴다거나, 어떤 어플이 제대로 작동하지 않는다거나... 다시 말해 리눅스에 대해 신뢰가 가지 않는 증상이 내 마음 속에 나타나기 시작한 거다. 이 증상은 우분투 10.04 LTS가 나오면서 더 심해졌다. 큰 기대를 가지는 Long-Term Support 버전인 10.04는 문제가 좀 있었다. 자세한 설명은 하지않겠다. 해결할 수 있는 문제였지만 결국 이것으로 인해 안정적이지 못하고 결국 리눅스라는 OS에 대한 신뢰가 점차 흔들리기 시작했다. 우분투 10.04의 문제점과는 상관없이, 하루는 내가 실수로 1주일간 엄청난 시간을 투자해서 만든 게 있었다. 모르고 지워버렸는데 이때 zfs만큼 간절한 게 없었다. 내 잘못이지만 나는 이 우분투를 갈아엎고 오픈솔라리스를 데스크탑으로 써야겠다는 생각을 했다. 행동까지 실천에 옮겼는데, 그 PC는 오픈솔라리스가 설치되지 않아서 (커널에서 진행이 더 이상 안된다) 어쩔 수 없이 우분투를 쓰고있따. 

물론 내가 이런 소리하는 게 웃기는 건 안다. 전세계 수많은 서버가 리눅스로 돌아가는데... 리눅스 자체를 신뢰할 수 없다는 게 아니다. 오픈솔라리스를 써오면서 최고의 유닉스 OS라고 생각했던 리눅스에 대한 생각이 오픈솔라리스로 옮겨가고 있는 거라고 생각한다.

이제는 서버를 운영한다면 솔라리스로 할 거다. 이미 집에서 그렇게 하고있고, 일하는 가게에서도 우분투 9.10 뒤엎고 오픈솔라리스 설치했다. 모든 것이 정상적으로 돌아가고 있으며, 12시간마다 한 번씩 zfs 스냅샷을 찍고, 웹서버와 ssh 서버는 가상 zone을 만들어서 운영하고 있다. 아... 모든 것이 perfect하다.

이제는 리눅스 유저들에게 리눅스를 추천하고싶지 않다. 이게 내가 말할 수 없는 비밀이다. 아이러니컬하게도 나는 한국 우분투 포럼의 발전을 위해 도와주고 있지만, 데스크탑이 아니라면 우분투를 추천하고싶지 않다. 오히려 오픈솔라리스를 쓰라고 추천하고싶다. 그런데 내가 이토록 빠져든 오픈솔라리스가 3개월 이내에 망할 것인지 아닐 것인지 운명의 기로에 서있다. 솔직히 말해서 개인적으로 너무나도 슬프다. 뒤늦게 이렇게 뛰어난 유닉스를 알게됐고 이제 자격증까지 공부하고 싶을 정도로 반해버렸는데...

맺음말을 어떻게 써야할지 모르겠다.
맥, 사랑한다. 솔라리스, 정말 반해버렸다. 리눅스, 미안하다...
블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,

아버지...

그 외 2010. 5. 25. 21:19


오늘 우연히 아주 놀라운 블로그를 발견했다.

예전에 아버지가 출연했던 TV 프로그램의 자료를 갖고있는 블로그가 있었던 거다...


한때 구글에서 찾으면 뭔가 나올까 싶어서 (아무래도 연예인이셨으니) 구글링을 해봤는데 아버지가 쓰셨던 예명이 검색으로는 도저히 자료를 찾을 수가 없는 정도였고 그래서 결국 포기했었는데 이렇게 하나 찾으니까 무척 반갑다고나 해야할까...

울 아버지는 MBC 코미디언 공채 2기 출신이다. 위키백과에는 안적혀있지만 "청춘만만세", "웃으면 복이와요" 등에 출연하셨었고 당시엔 꽤 유명했었다. 신문/잡지에서 인터뷰도 했었고, 미혼일 때는 결혼은 언제할꺼냐 류의 흔한 연예란에도 가끔 나오셨었다. 그에 관련된 신문/잡지자료는 아직도 집에 보관 중이다.  수많은 유명 코미디언들과 아는 사이었으며, 어릴적 기억에 코미디언 구봉서 씨의 팔순(인가 칠순인가) 잔치에서 사회도 봤었고, 개그맨 엄용수, 강석, 이용식, 김병조 등등과는 매일 같이 자고먹고한 사이였다고 한다.  내 동생은 이름이 두 개인데, 하나는 집에서 식구들끼리만 쓰는 이름이 있고, 다른 하나는 법적으로 등록된 이름이 있는데, 집에서 쓰는 이름을 개그맨 이용식 씨께서 지어준 이름이라고 한다.  그래서, 내 친구들이나 내 동생 친구들 사이에서는 아는 사람은 그 이름을 안다.


보통 코미디언/개그맨 아빠들은 무뚝뚝하고 집에서 하나도 안웃긴다는데, 울 아버지는 재밌었다. 어릴 때 나랑 동생한테 늘 최고였고 (상대적으로 어머니가 악역을 맡으셨다), 집에 놀러온 친구들한테도 용돈을 쥐어주셨던 분이었다. 그런데 어느날인가 PD랑 싸웠고 그 과정에서 PD 이빨 2개를 부러뜨리셨단다. 그후로 인생의 내리막길을 타기 시작하신거다. 연예인이 할 줄 아는 게 뭐 있겠나. 밤무대 전전하면서 타 방송사 엑스트라 출연하시고, 3류영화 조연으로 나오시면서 생활하셨는데 사실 그게 먹고살기위한 수단이었지, 본인의 꿈이나 어떤 목표가 있어서 하신 건 아니었다.


어찌됐든, 그것으로 인해 우리집은 참 어렵게 살았고 돈 때문에 스트레스 받는 일이 참 많았다. 지금도 없진 않다. 어릴 때 보고자란 그런 경험때문에 연예인은 정말 하지말아야할 직업이라고 생각하면서 자라왔던 것 같다. 물론 내가 연예인 하게 생긴 외모는 절대로 아니다.


98년 IMF터지고 바로 다음달인 1월에 악성폐렴으로 돌아가셨다.

어느 행사장에서 공연을 하고 돌아오셨는데 얼굴에 분장/화장을 하신 상태에 땀에 쩔은 상태이니 샤워를 안할 수가 없는 상황인데 마침 보일러가 고장나있는 상태였다. 결국 12월 한겨울에 찬물로 샤워를 하셨는데 그게 원인이 되서 돌아가시게 된거다. 그때 당시에는 밤 11시 12시에 갈 수 있는 목욕탕이나 그런 곳이 없었던 시절이었다.


실은 울 아버지는 결핵과 천식이란 병을 평생 달고사셨다. 계단을 조금만 올라가도 숨이차서 쉬었다 가야하고, 매일같이 약봉투를 갖고다니며 약을 드셔야했다. 그런 분이 몸으로 뛰어야하는 직업인 코미디언을 하셨으니 얼마나 힘들셨을런지는 나도 상상이 안간다.

원래 결핵은, 잘먹고 잘쉬면 완치가 되는 병이다. 그런데 잘 먹고 잘 쉬려면 일을 그만둬야하는데 한 가정의 가장으로서 생계를 책임지는 사람 입장에서 일을 그만둘 수가 없으니 약에 의지하면서 평생을 사신 거다.


암튼 그 샤워 이후 병원에 입원하셨는데 좀처럼 퇴원을 안시켜주는거다. 그러다가 큰 병원으로 옮겨야한다는 주치의 말에 난 아버지가 곧 돌아가실 것이라고 확신 아닌 확신을 하게됐다. 사실 곁에서 결핵과 천식으로 고생하시는 아버지를 보고자란 아들이, 그런 상황에서 그런 확신을 하는 게 무리는 아니겠지. 난 그때 이미 마음의 준비를 했다. 아마도 처음이자 마지막으로 울었던 것 같다. 실제로 그 이후로는 한 번도 눈물을 흘리지 않았다. 내 동생 친구들은 (여동생이라 여자들이다) 나보고 매정하니 어쩌니하고 손가락질 하는 애들도 있었지만, 남자니까 그럴 수 있겠지 라고 생각한 애들도 있었단다. 뭐 암튼 그랬다. 그날 엄청 울고, 그 이후로는 한 번도 울지 않았다. 심지어는 장례식장에서도, 화장터에서 화장할 때에도, 유골가루 뿌릴 때에도... (당시 할아버지가 살아계셨기 때문에 화장을 했다)


인하대 병원으로 옮기기 전부터 호흡기를 착용했는데, 그 호흡기에는 수면제가 들어있어서 계속 잠만 주무셨다. 게다가 그 호흡기는 법적으로 20일인가 이상을 착용할 수 없다고 한다. 진단병명이 악성폐렴이었고 호흡을 하면 폐에서 산소를 받아들이는 능력이 아주 저조한 상태라고 했다. 그래서 호흡기를 떼는 순간 돌아가시는 거라고 생각하면 된단다. 다행스러운 건 그래도 고통없이 주무시다 돌아가셨단 거다.


지금 생각하면 참으로 아쉬운 게, 아버지가 병원에 입원해계실 때 대화를 몇마디 못나눠봤다는 거다. 수면제 들은 호흡기만 착용하고 계셨으니 말을 하고싶어도 할 수가 없었다.  호흡기를 중간에 딱 한 번 떼셨는데, 그때 날 불러서 누구누구한테 돈 50만원 받을 거 있으니까 그거 잊지말고 꼭 받아라. 라는 말씀이었다. 그 와중에서도 식구들을 위해서 그 작은 돈이라도 잊지않으셨던 거다.


나중에 들은 얘기인데, 호흡기 착용하고 며칠 안있어서 호흡기를 떼게 됐는데 그때 당시 울 아버지가 엄청 난동(?)을 부리셨다고 한다. 내가 왜 호흡기를 착용해야하는지, 내가 왜 여기 입원해있어야하는지, 빨리 날 내보내달라고 그러셨단다. 그러면서 눈물을 흘리셨다는데, 아마도 그때 본인이 돌아가실 것을 예견하셨던 것 같다.

암튼, 그 50만원 잊지말라는 그 말을 들은 이후로는 한 번도 대화를 나눠보지 못했다. 다른사람에게 있어서, "우리 걱정하지 마세요. 잘 살께요" 라는 말을 할 수 있는 것 자체도 다행이라고 생각한다. 그만큼 난 그말 조차도 할 수 없었던 게 아쉬웠었다.


돌아가신 이후 몇년의 세월이 흐르고 훗날 어머니랑 이런 대화를 했다. 만약 아버지가 지금까지 살아계셨더라면 우리는 어떻게 살고 있었을까.

어머니랑 나랑 똑같이 생각했던 건, 아마 지금보다 더 못살았을 거다. 라는 결론이었다. 아버지한테 문제가 있었던 것이라기보단, 연예인이라는 직업 자체가 한국 사회에서는 아주 무능력한 존재라는 점인 거다. 기술도, 할 줄 아는 것도, 아무 것도 없는 빈털털이다. 적어도 울 아버진 그랬다. 게다가 돌아가시면서 빚까지 남기고 돌아가셨다. 그 빚은 아직도 남아있다. 2배로 커진 상태로.


군대 제대 후 이것저것 알바를 하다가 결국 새마을금고에 입사를 했고 거기서 3년 동안 경력을 쌓았다. 그 와중에 결혼을 했고 그후 여기 미국으로 유학을 와서 졸업한뒤 지금은 하와이 주 정부에서 근무하고 있다.  내 동생은, 한국 최고의 무역회사라고 불리는 "세아상역"에서 일하고 있다가 출산 후에는 육아에만 전념하고 있다. 고생하신 아버지 덕분에 우리는 나름대로 잘 살고 있다고 생각한다.


아버지가 돌아가신지도 벌써 십수년이라는 세월이 흘렀고 지금은 그냥 덤덤한 편이지만, 막상 이렇게 인터넷에서 찾은 사진 몇장으로인해 어릴적 과거의 일이 마치 비디오테이프를 빨리감듯 다시 머리 속에 전부 스쳐지나갔다.  돌이킬 수 없는 일이고 되돌아갈 수 없는 시간이지만, 나에게 주어진 남은 삶을 후회하지 않도록 열심히 사는 것만이 내가 할 수 있는 아버지께의 효도가 아닐까 싶다...


블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,
제목만 봐서는 무쟈게 철학적이다. 그런 내용을 쓸려고 한 건 아닌데 앞으로 쓸 내용에 적당한 제목같다.

나는 컴퓨터로 다른 사람들과 소통을 하기시작한 이래, 줄곧 단 하나의 아이디만을 사용해오고 있다. PC통신 천리안을 쓰기시작한 95년도부터 지금껏 jswlinux라는 아이디만 써오고 있는데, 독특하기도 하거니와 딱 봐도 뭘 하는 사람인지도 파악이 될만큼 단순명료한 아이디라고 생각한다. 게다가 이 아이디는 외국사람들에게도 쉽게 읽히는 아이디이다.

오늘 우연히 구글에서 내 아이디로 구글링을 해봤다. 나는 얼마나 유명할까. 구글은 나에 대한 정모를 얼마나 갖고있을까. 당연히 예상했던대로 그간 내가 작성해온 모든 글이 다 검색됐다. 개중에는 내가 왜 이런 글을 썼을까하는 챙피한 글도 있었고-나이가 좀 어려서그랬겠지만-, 이게 과연 내가 썼던 글이었나하고 놀란 글도 있었다. 예전에 새마을금고 다니면서 금고 내 오피스 프로그램을 오픈오피스로 도입하고자, 새마을금고 연합회 전산정보부와 얘기를 좀 나눈 적이 있었는데, 오픈오피스를 도입하면서 생겼던 문제를 오픈오피스 커뮤니티에 의뢰했고 김정규님께서 해결하는데 도움을 주셨던 글까지 모두 읽을 수 있었다. 그러면서도 내가 그런 글을 올린 적이 있었던가 하는 생각을 하게됐다.

최근 과거의 나를 바라볼 땐, "음~ 그랬었지"라는 생각보다는, "내가 그랬었나?"라는 생각을 더 많이 하게된다. 나이 탓일까? 그래봤자 이제 얼마 되지도 않는 나이이지만, 아직 자녀가 없어서 그런지 나와 내 와이프는 여전히 연애할 때 그대로다. 우리는 아직도 장난치고 아직도 농담따먹기하고 참 철없는 부부처럼 보이는데 아이가 없어서 그런 것 같다.

구글을 통한 과거의 내 모습, 비록 내 얼굴이 나오거나 내 모습이 나오는 사진 속의 나는 아니지만, 글을 통해서 그때당시의 나를 상상할 수 있고 지금의 나를 바라볼 수 있음은 아직도 옛추억에 사로잡혀 그때를 그리워하는 중년의 아저씨가 되가는 듯한 상상을 해보게 된다...
블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,
안녕하세요. Seony입니다.
생애 첫 대학졸업장을 받았습니다.
(관련 스토리는 http://jswlinux.tistory.com/entry/Hawaii-1 에 있습니다)

보통 졸업을 한 시점에서 2달 후에 졸업장이 나오는데, 제껀 좀 빨리 나왔네요.
아마 졸업장 폰트 땜시 무슨 내용인지 잘 몰라보실텐데요,

The Regents of
The University of Hawaii
on the recommendation of the Faculty at
Kapiolani Community College
have conferred upon
Seowon Jung
the degree of
Associate in Arts
Liberal Arts
with all its privileges and obligations
Given at Honolulu, Hawaii, this eighteenth day of December,
two thousand nine.

이라고 적혀있습니다. 별거 없구요, 그냥 한국으로 치자면 2년제 전문대 졸업장 정도입니다.
4년제로 편입했으니, 아직 2년에서 2년 반 정도 남았네요. 고등학교 때 했던 공부를 대략 15년만에 하려니 조금 머리가 안돌아가는 게 걱정스러울 뿐입니다.

블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,
한 4일 써봤나 싶다. 여전히 뭐가 뭔지 모르겠고, 뭔가 잘못되면 재설치해야하나 하는 생각이 든다.
그런데 재밌다!

한 3-4년 전에는 솔라리스가 왠지 다른 세상의 OS인듯 화면도 익숙치 않았고 뭐가 뭔지도 모르겠고, 자료도 없고 해서 쓰기 힘들었는데, 이번에 깔아보니 GNOME은 리눅스나 별반 다를 게 없을 정도로 세련됐고 Compiz까지도 잘 동작했을 정도니 잘 모르는 사람이 보면 리눅스라고 착각할 정도로 잘 만들었단 생각이 들었다.

패키지 매니저라는 게 있어서, 마치 우분투처럼 필요한 패키지를 (비록 많지는 않지만) 쉽게 찾아서 설치할 수 있었고 그외의 메뉴들은 정말 리눅스랑 똑같았다. 노트북에 설치했음에도 불구하고 대부분의 하드웨어가 작동했고 성능도 매우 좋았다.

내 노트북은 Sony Vaio Notebook VGN-NS190J 이고, Intel Core 2 Duo 2.0GHz, 4기가 램, 인텔 센트리노 무선랜, Marvell Yukon LAN, 인텔 내장사운드 정도 되겠다. 여기서 사운드는 드라이버가 설치됐음에도 불구하고 소리가 나오질 않았는데, 어차피 솔라리스에서 음악들을 일은 없으니 개의치 않았다. 다만 Marvell의 Yukon 기가비트 이더넷 랜카드가 잡히지 않았는데, 이건 해당 홈페이지가서 드라이버를 다운로드했고 아주 쉽게 설치가 됐다. 이건 설치노트에 기록한다.

말로만 듣던 zfs는 정말 강력했다. 이걸 보면서 왜 애플이 Snow Leopard에 zfs를 채용하려다 말았는지에 대한 기사를 찾아보게 됐었을 정도였다. 애플이 zfs 도입했었으면, 안그래도 느린 타임머신이 지금보다 훨씬 더 빨라졌을 거다. 다만, 사용법과 개념이 익숙치 않아서 스냅샷을 찍었는데 제대로 안찍혀서 복구가 안되는 문제를 경험했고 하드디스크 전체가 아니라 일부분씩 따로따로 스냅샷을 찍는다는 것도 알았다. 마찬가지로 상세한 자료가 없어서 Sun 홈페이지에 있는 ZFS Administration 가이드에 많이 의존했고 그걸 통해서 대충 감을 익혔다. 그런데 zfs가 2006년도에 나온 파일시스템이라는 점을 감안하면 정말 강력하고, 아마도 정말 최후의 파일시스템이 되지 않을까 싶다. 
웹서핑을 하다보니 Java Web Console이라는 웹브라우저를 통한 ZFS 관리를 할 수 있는 툴을 발견했는데, 이게 솔라리스 10에는 있고 오픈솔라리스에는 없는 거다. 난 분명히 둘이 서로 완벽히 똑같고 오히려 오픈솔라리스에 더 최신기술이 들어가있다고 들었는데 Java Web Console이 오픈솔라리스에는 없는 것이었다. 왜 없는지에 대해서도 한참 구글링을 했다. 한국 사이트에는 있을리가 만무했고, 오히려 zfs 파일시스템의 사용법조차도 자세히 나온 곳이 없었다. 이것도 한참을 헤맸고, 왜 없는지에 대해서는 못찾았다. 다만 설치는 어찌어찌해서 정상적으로 가동은 시켜냈다.

Zone은, 역시 처음에 개념과 사용법에 익숙치 않아서 자료를 한참 찾아댔다. 이것은 Solaris Technet의 김석님께서 쓰신 솔라리스 컨테이너 비교분석 자료에서 조금 도움을 얻었다. 열심히 쓰신 문서가, 마치 자기가 만든 자료인양 사용하는 학원강사들이 있다는 걸 알았는데 그래서 아마도 한글자료 찾기가 어려웠나 싶다. 이 자리를 빌어 자료만들어주시는 분들께 감사드린다. 아무튼, zone으로 웹서버 전용 존을 하나 만들어봤는데, 이것도 무척 재밌고 강력하다는 생각이 들었다. 솔라리스 쓰는 분들이 흔히 하는 말들이 "아름다운 OS", "아름다운 파일시스템" 등등 아름답다는 표현을 붙이는데, 쓰다보면 정말 강력하다는 느낌이 든다. 그리고 이 강력함이 아름다운 것으로 승화되는 것 같다. 마치 스타크래프트의 프로토스가 저그로 오염된 행성을 파괴하는 것을 보고 아름답다는 표현되어있는데 (스타크래프트 게임 패키지 내 스토리북) 그게 그런 의미인가보다. 강력하면 아름다워진다.

Mac OS X 이후 특정 Unix에 이렇게 매료된 게 처음인 것 같다. 게다가 우분투와 비슷한 수준의 세련된 GNOME은, 아마도 리눅서들이 오픈솔라리스로 넘어가게될만큼 친숙한 환경이었다.
오픈솔라리스를 쓰다보니 대체 솔라리스와 오픈솔라리스와의 차이는 뭘까하고 구글링을 해봤는데, 이것조차도 답을 구하기가 어려웠다. 질문을 하는 사람도 없고 대답을 해주는 사람도 없었다. 결국은 unix.com이라는 유명한 유닉서 사이트에서 답을 구했는데, 오픈솔라리스는 Sun Microsystems에서 정식으로 지원해주는 "솔라리스의 소스코드를 바탕으로하는 오픈소스 프로젝트"라는 점이고, 솔라리스는 "솔라리스"라는 브랜드 이름을 갖고있으며 테스트되었고, 검증되었고, Sun으로부터 유지/보수가 이루어지고, 차기버젼의 솔라리스는 항상 오픈솔라리스의 소스코드로부터 나온다는 점이다. 즉, 레드햇과 페도라 정도의 관계로 이해하면 되겠다. 내가 참고한 원문은 http://www.unix.com/whats-your-mind/24870-sun-solaris-open-solaris.html 에서 확인할 수 있다.

솔라리스. 반해버렸다.
블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,
1주일 동안 삽질해가면서 make.conf랑 커널 옵션 찾아내고 별짓 쌩쑈를 다 해서 젠투를 설치했건만, 설치한지 불과 2주도 안되서 젠투를 밀어버렸다. 왜 그랬을까.
내 나이 30대에 전산이라고는 쥐뿔도 모르는 은행원 출신인데다 회계랑 재무 전공하러 미국까지 와놓구선, 4년제 편입할 때쯤 되서 전공을 컴퓨터로 바꿔버렸다. 왜 그랬을까.

내 블로그의 다른 글에서도 여러차례 적어놨지만, 나는 유닉스 계열의 OS를 정말 좋아한다. 리눅스, MacOS X 등등이 너무 좋다. 그래서 컴퓨터라고는 개뿔도 모를 것 같은 전직 은행원 출신이 리눅스 커널설정 고친다고 /usr/src/linux/.config 들여다보고 있는 장면은 좀 예상 밖일 거다. 근데 이게 내가 고등학교 2학년 때부터 해오던 짓이었다.

슬랙웨어 2.2부터 시작해서 별의별 배포판을 다 구경해본 -절대 사용이 아니다. 구경만 해봤다- 바로서는 째끔 차이는 있겠지만 어차피 거기서 거기다. 다만 데비안/우분투 쓰다가 CentOS 구경해보니까 이거는 갭이 좀 컸다. 레드햇 계열 쓰다가 데비안 계열로 넘어오는 건 할만한데, 데비안 계열 쓰다가 레드햇 계열로는 못넘어간다는 말이 실감이 가더라.

이런 나한테도 정말로 적응이 안되는 게 있었다면, 리눅스는 여차여차해서 대충 알겠는데, FreeBSD랑 유닉스는 도통 모르겠던 거다. 표준 명령어 ls, cp, ln 같은거 말고는 당최 뭘 어떻게 쓰는지도 모르겠고, 그노무 슬라이스라는 건 대체 파티션이란 얘긴지 디렉토리를 보기좋게 잘라놓은 건지 모르겠단 말이었다. 게다가 쉘은 왜 그모양인지 백스페이스키도 안먹지, 탭키의 자동완성도 안먹지, vi 열면 방향키도 안먹지.

늦은 나이에 전공을 전산으로 바꾼 사건은 나에게는 아주 의미가 크다.
어차피 회계전공해도 한국에서 그 나이에 취업될리는 만무하고, 그렇다고 미국에서 취업이 잘되는 직업도 아니고.
아, 물론 취업이 잘되는 분야는 맞다. 그런데 너무 인기가 좋아서 경쟁이 치열하다보니 요즘은 만나는 사람들마다 전공 물어보면 전부 다 회계한단다. 처음에는 "오~ 같은거 공부하는 사람이네" 했었는데, 이제는 "또 회계야..." 이런 생각 든다. 다 경쟁자인 셈이다.
미국 내에서도 경쟁이 치열해서 취업하기 힘들 뿐더러, 워낙 사람이 많다보니 취업이 되도 월급 쥐꼬리만큼 나오는거 (한국보다도 월급이 더 적다) 차라리 취업 잘되고 돈 많이 버는 걸로 하자는 결론을 냈다. 어차피 한국으로 돌아가더라도, 한국은 전공에 상관없이 취업이 가능한 나라잖아. 미국은 거의 불가능하지만...
그와 동시에, 한국으로 돌아가지 않겠다라는 다짐이기도 했다. 그래서 Computer Science로 전공을 바꿨다. 다행히 Community College에서 수학을 꽤 높은 반까지 해놔서 다행이었다.

그러다보니, 늦은 나이에 전공도 바꿨고 취업도 되야하고 이런저런 별 생각 다 하니까 이게 아무 죄없는 젠투한테 시선이 가더라. 과연 내가 이거 공부해서 취업하는데 도움이 될까. 과연 젠투로 서버를 돌리는 곳이 있을까. 그런데 젠투를 계속 써보고 싶기는 한데... 우선 재미가 있으니...
그러다 문득 하와이 대학교 myuh 시스템이 생각났다. 하와이 대학교랑 HPU는 내부 시스템이 대부분 솔라리스다. 이걸 공부하면 취업하는데 도움이 되겠지. 하와이 섬나라 애들 할 줄 아는게 대부분 윈도우니까.

설치하면서 문제가 생기는 것들을 구글링하니까, 한국에는 한글로 나와있는 자료들이 별로 많지않다. 대부분 vmware를 이용한 설치 및 기타 등등 설치에 대한 내용이 대부분이었고, 몇몇 유닉스 관련 사이트에서도 솔라리스 강좌를 보면 대부분 유닉스란 무엇인가부터 시작해서 ls니 cp니 하는 아주 기초적인 유닉스 사용법부터 시작하는 문서들 뿐이었다. 즉, 나처럼 리눅스를 째끔 쓸 줄 아는 사람들이 사용 중 닥치는 문제라던가 하는 점에 있어서는 해결하기가 매우 난감했다.

결국은, 대부분 외국 사이트에서 해결했고 그나마도 관련자료가 별로 많지 않았다.
따라서 오픈솔라리스를 쓰면서 생긴 문제점과 해결책을 적는 노트를 티스토리에 하나 포스팅해서, 계속 업데이트하는 식으로 쓸까한다.
블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,