1. 철학이 있는 운영체제 ‘리눅스’(Linux)라는 이름을 들어 본 것은 10여년 전. 내게 리눅스는 컴퓨터 전문가가 되려면 반드시 넘어야 할 산이었다. 이곳저곳을 기웃거리다 마침내 도시바 노트북에 ‘와우 리눅스’를 깐 게 7년쯤 전이다. 이때 비로소 리눅스 사용자에게 익숙한 용어, ‘삽질’이 시작되었다. 처음엔 리눅스에 그래픽 유저 인터페이스를 작동시키는 X윈도우를 띄우는 일조차 버거웠고, 네트워크 카드를 잡는 것도 쉽지 않았다. 언제 그랬냐는 듯 지금은 리눅스도 윈도만큼 설치가 쉬워졌고 쓰는 법도 간단하지만, 아직도 리눅스를 잘 모르는 이들이 많다. 리눅스는 프리 소프트웨어(Free Software)이다. 여기서 프리(Free)는 일부 사람들이 오해하는 것처럼 ‘공짜’가 아니다. ‘자유’라는 뜻이다. 리눅스를 자유롭게 쓸 수 있고, 복사할 수 있고, 배포할 수 있고, 개선할 수 있다는 의미다. 리눅스는 다음 4가지 자유정신에 뿌리를 두고 있다. ? 어떤 목적으로든 프로그램을 쓸 수 있는 자유. ? 프로그램의 작동 원리에 대해 학습하고, 필요에 따라 변경할 수 있는 자유. ? 프로그램 복사본을 재배포할 수 있는 자유. ? 프로그램을 개선하고 이를 공개할 수 있는 자유. 프로그램의 작동 원리를 알아보고 이를 개선하려면 프로그램 소스 공개가 필수적이다. 그래서 리눅스 커널은 일반에게 공개되어 있다. 리눅스는 리누스 토발즈가 커널을 완성하고 이를 인터넷에 공개해 세계의 수많은 프로그래머들이 참여해 발전시켜온 운영체제다. 여기에 4가지 자유정신을 덧붙여 의미를 더한 사람은 리처드 스톨만이다. 우리가 실제로 커널 소스를 열어 수정할 능력이 있는지 여부는 중요하지 않다. 공동 참여로 만들어지고 진화되는 운영체제, 거기에 자유정신까지 갖추고 있는 운영체제를 어찌 좋아하지 않겠는가.
2. 선택의 자유를 마음껏 누려라 리눅스는 종류가 여러 가지다. 패키지 관리 방식에 따라 deb 확장자를 쓰는 데비안(Devian) 계열, rpm 확장자의 레드햇(Red Hat) 계열, tgz 확장자를 이용하는 슬랙웨어(Slackware) 계열이 있다. 또한 리눅스는 배포판이 수백 가지나 된다. 리눅스이지만 서로 다른 리눅스. 이를 이해하려면 운영체제 구조를 이해할 필요가 있다. 운영체제를 단순화하면 '커널과 커널이 아닌 부분'으로 나뉜다. 커널은 컴퓨터를 제어하고 메모리를 관리하는 운영체제의 핵심이다. 그렇다면 커널이 아닌 부분은 GUI와 프로그램 등의 나머지를 가리킨다. 리눅스 배포판은 결국 커널만 같은 것을 쓸 뿐 나머지는 각자 달리 제작된 것을 뜻한다. 커널은 같지만 GUI나 프로그램이 다르기 때문에 같은 리눅스라도 전혀 다른 분위기가 연출되는 것이다. 대표적인 배포판은 레드햇과 노벨이고 우리나라에는 한컴리눅스가 있다. 그밖에도 맨드레이크, 데비안, 젠투, 노픽스, 슬랙웨어, 라이코리스, 젠드로스, 린스파이어 등이 존재하는데 돈을 받느냐 아니냐에 따라 무료와 유료 배포판으로 구분한다. 리눅스를 데스크탑 PC에 깔아 쓰는 사람들은 5개에서 10개 정도의 배포판을 테스트해보면서 자신에게 맞는 것을 찾아간다. 이 과정에서 리눅스를 더욱 자세히 알 수 있지만 그만큼 많은 시간을 투자해야 한다. 하지만 결코 아깝지 않은 시간이다. 선택의 즐거움은 ‘윈도우 매니저’도 마찬가지다. 리눅스 커널에는 그래픽 인터페이스가 포함되어 있지 않다. 윈도우 매니저는 이 커널을 둘러싸는 그래픽 인터페이스를 구성하는 중요한 요소다. 리눅스에 조금만 관심을 가진 이라면 귀에 익은 KDE나 그놈(Gnome)이 바로 윈도우 매니저의 대표 주자다. 유명세는 덜하지만 플럭스박스(fluxbox), 윈도우 메이커(windows maker,), 인라이튼먼트(enlightenment), XFCE도 있다. 이들은 그놈이나 KDE보다 시스템 자원을 덜 잡아먹는다.
3. 인터페이스를 내 마음대로… 윈도 이용자들은 인터페이스 설정에 익숙하지 않다. 기껏해야 배경그림을 바꾸는 정도다. 그 외에는 이미 정해진 대로 쓰는 게 일반적이다. 리눅스는 다르다. 3D 그래픽카드만 있다면 얼마든지 다르게 꾸민다. 클릭 한 번이면 맥 OSX의 분위기도 난다. 제목 표시줄에 투명 효과를 주고 최소화, 최대화, 닫기 버튼을 형광빛으로 장식하면 비스타의 에어로 효과가 부럽지 않다. 빼놓을 수 없는 것은 3D 효과다. 윈도 비스타도 3D 효과가 있지만 그야말로 맛만 보여주는 것이다. 진정한 3D는 리눅스에서 실현된다. 리눅스의 3D 바람은 XGL이 이끈다. XGL은 그래픽 칩을 이용해 데스크탑의 디스플레이 기능을 강화하는 소프트웨어다. XGL은 2차원의 바탕화면을 3차원 정육면체로 둔갑시켜 360도 회전시키고 프로그램 창이 젤리처럼 흔들리는 등 마법 같은 기능을 자랑한다. 노벨에서 개발하는 XGL은 리눅스의 그래픽 칩을 제어하는 X서버를 대신해 2D는 물론 3D까지 처리한다. 이 과정에서 속도를 높이려고 오픈 GL를 이용하는데, XGL의 원래 이름이 X-to-OpenGL인 것은 그래서다. XGL이 노벨에서 진행하는 것이라면 라이벌 레드햇은 AIGLX로 3D 바람에 합세했다. XGL은 X서버를 완전히 대체하지만 AIGLX은 기존의 X서버를 약간 수정할 뿐이다. 하지만 둘 다 소스가 공개되었기 때문에 윈도에 대항하는 협력자로서 데스크탑 PC 시장의 3D 바람에 힘을 보탤 것이다. 리눅스는 겉모습만 원하는 대로 손볼 수 있는 것은 아니다. 그래픽 인터페이스와 응용 프로그램에 대한 설정 파일은 사용자의 홈(home) 폴더에 저장한다. 설치되는 모든 응용 프로그램은 홈 폴더에 있는 설정 파일을 1차적으로 참고한다. 예전에는 이 설정 파일을 직접 고쳐야 했지만 요즘은 대부분 그래픽 환경에서 손보기 때문에 그만큼 설정을 변경하기가 쉽다. 원하는 대로 가꾸는 운영체제, 원하는 대로 작동하게 하는 운영체제. 바로 리눅스의 매력이다.
4. 운영체제도 응용 프로그램도 공짜 앞서 언급했듯이 리눅스는 프리 소프트웨어다. 다시 말하지만 이것이 공짜를 뜻하는 것은 아니다. 하지만 자유로운 이용과 배포를 추구하는 리눅스는 유료 버전과 함께 무료 버전도 많이 나온다. 유료 버전이라도 리눅스 커널에 대한 요금을 받는 게 아니다. 패키지 구성과 기술 지원에 대한 비용이다. 이런 지원을 포기한다면? 공짜 리눅스를 쓰면 된다. 게다가 리눅스에서 돌아가는 프로그램들도 공짜다. 리눅스는 프로그램을 설치하는 과정도 간단하다. 다른 운영체제는 OS를 깐 뒤 응용 프로그램을 따로 설치해야 한다. 하지만 리눅스는 커널과 응용 프로그램 설치가 통합되었다. 그래서 시간이 오래 걸리지만 적어도 이것저것 따로 설치하는 불편은 없다. 단 한 번에 오피스, 웹, 그래픽, 멀티미디어 프로그램이 모두 깔리는 것이다. 설치할 때부터 응용 프로그램이 깔리는 것은 업데이트에도 효과적이다. 리눅스 커널에 대한 업데이트 뿐 아니라 설치된 응용 프로그램에 대한 업데이트도 시스템 차원에서 한꺼번에 관리하기 때문이다. 윈도는 개별적으로 업데이트 버전을 확인하지만 리눅스는 어떤 응용 프로그램이든 새로운 버전이 나오면 알림 영역에서 알려준다. 물론 업데이트 설치는 클릭 몇 번으로 가볍게 끝난다. 한 가지 아쉬움이라면 윈도용 프로그램의 상당수가 리눅스용으로 개발되어 있지만 기능이 완벽하지 않다는 것이다. 그나마 이것들이 공짜라는 사실에 만족해야 할 것이다. 솔직히 액티브 X를 이용하는 인터넷 뱅킹과 온라인 게임을 빼면 리눅스도 아쉬울 게 없다.
5. 각 하드웨어에 최적화할 수 있어 리눅스는 원래 여러 종류의 하드웨어에서 잘 돌아가도록 만들어졌다. 인텔과 AMD 기반의 x86 PC에서도, 맥 OSX 기반의 애플 시스템에서도 문제없이 작동한다. 새로운 하드웨어가 나올 때도 재빨리 대응할 수 있다. 예를 들어, AMD가 64비트 CPU를 내놓았을 때도 그 장점을 가장 먼저 적용한 운영체제가 리눅스다. 앞으로 어떤 하드웨어가 새롭게 나오더라도 가장 먼저 궁합을 맞출 수 있을 것이다. 보통 운영체제는 여러 하드웨어에서 돌아가도록 하려고 갖가지 드라이버를 모두 집어넣는다. 그 때문에 덩치가 커진다. 윈도 비스타를 예로 들면, 설치 DVD에 무려 1만9천500개의 드라이버가 들어 있다. 윈도 XP는 1만 개의 드라이버를 포함한다. 드라이버가 많다는 것은 호환성이 좋다는 뜻이지만 그만큼 무겁다는 얘기다. 하지만 내가 쓰지도 않는 하드웨어 정보를 가지고 있을 이유가 무엇인가? 리눅스는 자신의 하드웨어에 딱 맞는 상태로 직접 구성을 할 수 있다. 내 시스템에 최적화되었기 때문에 그만큼 속도도 빠르고 안정적이다.
6. 안정적인 디렉토리 구조 윈도를 쓰다가 리눅스로 옮겼을 때 가장 당황스러운 것은 파일 시스템이다. 리눅스에는 C나 D 드라이브와 같은 파티션 개념이 없다. 대신 디렉토리 구분자와 유사한 슬래시(/)를 디렉토리와 파티션 구분자로 쓴다. 리눅스의 /home, /usr, /var, /bin, /lib 디렉토리는 하나의 파티션에 포함되거나 별도 파티션에 독립할 수 있다. 보통 /home 폴더(디렉토리)를 독립된 파티션에 두고 나머지 디렉토리들은 한데 모아놓는다. home 폴더를 분리시키는 것은 리눅스의 장점이다. 이용자의 설정 파일과 중요한 데이터가 저장되는 곳이 home 폴더이므로 시스템에 이상이 생겨 다시 깔거나 다른 리눅스 버전을 설치할 때도 home 폴더는 그대로 보존된다. 윈도 비스타도 사용자 폴더를 다른 파티션으로 옮길 수 있게 해 보존성을 높이려는 노력을 보이지만 숨겨진 설정 파일까지 보존하지는 못한다.
7. 이견이 없는 파일시스템의 우수성 리눅스의 파일 시스템이 우월하다는 것은 파일 조각 모음이 필요 없다는 점에서도 드러난다. 윈도 파일 시스템인 NTFS와 FAT는 파일을 더할 때마다 바로 가까운 곳에 저장한다. 그래서 시간이 지날수록 구조가 복잡해지는 것이다. 이해를 돕기 위해 그림과 함께 설명한다. 아래 그림은 하드디스크의 저장 공간을 축소한 것이다. 처음에는 아무 것도 표시되지 않았다. 빨간색 글자는 위치를 뜻한다(그림 103). 즉, 맨 왼쪽 위는 aa, 맨 위 오른쪽은 za, 그리고 끝줄의 왼쪽은 az다. 이제 파일을 저장하면 다음과 같이 바뀐다(104). 먼저, 4번째 줄은 TOC(table of contents)다. 여기에는 파일 이름과 주소가 저장된다. 그림을 보면 hello.txt라는 파일이 ae부터 le까지 저장된 것을 알 수 있다. 실제로 ae와 le 사이에는 Hello,_world라는 내용이 저장되었다. 여기에 또 다른 파일(이름이 bye.txt)을 저장해 보자(그림 015). 그러면 hello 바로 옆으로, 위치로 보면 me에서 ze까지 두 번째 파일이 들어간다. 이렇게 두 개의 파일이 붙어 있으면 당연히 읽는 속도는 빨라진다. 문제는 파일을 저장만 해놓지 않는다는 것이다. 지우고, 저장하기를 반복하다보면 구조가 꼬이는데, 이것이 속도를 떨어뜨린다. 다음 그림에서 첫 번째 파일 hello를 지우고 hello!!를 저장한다고 치자. 원래 자리에서는 공간이 없다. 이때 생각할 수 있는 방법은 두 가지. 원래 파일을 지우고 새로 만드는 것이다. 이때 TOC를 보면 파일 이름은 hello로 같지만 위치만 afnf로 바뀌었다(그림 105). 두 번째는 기존 자료를 그대로 두고 느낌표를 덧붙이는 것이다(그림 106). 따라서 TOC에서 hello의 주소가 aeleafbf로 바뀐다. 이제 FAT가 왜 정기적으로 조각모음을 해야 하는지 이해했을 것이다. 파일이 새로 생기거나 지워지는 과정에서 주소가 뒤섞이면서 가까이 붙어 있어야 할 데이터들이 이리저리 흩어지기 때문에 조각모음을 하지 않으면 속도가 크게 떨어진다. 그렇다면 리눅스는 어떨까? 리눅스는 태생부터 다중 사용자(multi?users)를 겨냥했다. 즉, 여러 사람들이 동시에 하나 이상의 파일에 접근할 수 있게 했다는 얘기다. 따라서 처음부터 파일을 인접한 위치에 저장하지 않고 충분한 공간을 확보한다. 그림처럼 hello와 bye 파일을 넣었을 때 두 파일의 원래 위치가 멀찌감치 떨어져 있다. 따라서 hello가 바뀌더라도 다른 곳으로 옮기기만 하면 된다. 파일 시스템에 관해 윈도와 리눅스의 차이는 단순하다. 윈도는 모든 것을 처음부터 다닥다닥 붙여놓는다. 그래서 파일을 썼다 지우면 구조가 복잡해진다. 반면에 리눅스는 파일들을 여기저기 흩뿌리므로 단순하고 빠르다.
8. 기술적으로 탁월한 보안 개념 2006년 시만텍(Symantec) 보고서에 따르면 윈도를 겨냥한 바이러스와 악성코드는 12만 가지에 이른다. 반면에 리눅스를 겨냥한 바이러스는 500여 종에 불과하다. 윈도에 대한 보안상의 결함이 단순히 그 운영체제가 많이 쓰이기 때문이라고 본다면 잘못 해석한 것이다. 리눅스는 쓰는 사람이 적어서가 아니라 구조적으로 보안에 강하게 설계되어 있다. 리눅스를 설치한 뒤에는 ‘사용자 계정’으로 로그온하는데, 사용자 계정은 home 폴더 아래에 있는 사용자 폴더 이외에는 접근만 할 뿐 쓰지를 못한다. 응용 프로그램을 설치할 때처럼 시스템 폴더에 대한 쓰기 권한이 필요하다면 root 계정 비밀번호를 입력해 root 계정 권한을 얻어야 한다. 따라서 비밀번호가 노출되지 않는 한 사용자 계정에 의해 시스템 파일이 변경되거나 공격당할 가능성은 대단히 낮다. 설령 공격을 당하더라도 그 피해가 home 폴더를 벗어나지는 않는다. MS가 이번에 선보인 비스타는 리눅스의 바로 이 아이디어를 가져다 보안을 강화했다. 윈도 비스타의 사용자 계정 제어(UAC)는 리눅스의 root 계정과 사용자 계정의 권한 구분과 운영 방식을 도입한 것이다. 그러나 MS는 계정에 따라 권한을 구분하는 데 익숙하지 않는 윈도 이용자를 위해 관리자 권한으로 로그온 하지만 실제 운영은 일반 사용자 권한으로 돌아가게 했다. 관리자 권한이 필요할 때도 비밀번호를 쓰는 리눅스와 달리 마우스 클릭이라는 방법을 택했다. 또한 윈도는 home 폴더 개념이 없기 때문에 일반 사용자의 응용 프로그램 설정을 ‘가상화’(virtualiztion) 기술로 해결한다. 윈도 비스타의 보안은 강화된 것은 사실이지만 그 모델이 리눅스다. 단순히 사용자가 적어서가 아니라 리눅스의 보안 기술 자체가 우월하다는 증거다.
9. 블루 스크린이 없는 안정성 윈도의 치명적인 약점인 블루 스크린. 이 파란화면이 나오면 방법이 없다. 시스템을 재부팅하는 수밖에. 윈도 비스타는 크게 줄어들었지만 윈도 98 이전의 운영체제에서는 자주 볼 수 있었던 오류다. 리눅스에는 블루 스크린이 없다. 시스템이 반응을 하지 않고 멈추는 상황이 아주 가끔 생기지만 윈도처럼 전원을 다시 켜지는 않는다. 리눅스의 먹통은 그 원인이 대부분 커널 바깥의 X 서버나 윈도우 매니저에서 발생하기 때문이다. 리눅스는 보통 6개의 가상 터미널을 가지고 있다. 따라서 그놈이나 KDE에서 오류를 일으켜 시스템이 반응을 하지 않더라도 <Ctrl + Alt + F1>~<Ctrl + Alt + F6> 키를 눌러 가상 터미널로 들어간 뒤 root 계정으로 로그온해서 문제를 해결하면 된다. 그놈이나 KDE가 아닌 프로그램이 반응을 하지 않을 때도 해결책은 단순하다. 콘솔(console) 창을 열어 문제가 발생한 프로그램을 찾은 뒤 kill 명령을 이용해 강제로 종료시키면 된다.
10. 지구촌 커뮤니티가 함께 만들어간다 리눅스 이외의 운영체제는 한 회사가 모든 권한을 갖고 판매한다. 그러나 리눅스는 주인이 없다. 개발 단계부터 온라인에 공개되는, 그래서 수많은 이들이 함께 만들어가는 모두가 주인인 운영체제다. 리눅스를 쓴다는 것은 구매자의 입장에서 판매자를 대하는 게 아니라 리눅스라는 커다란 커뮤니티에 참여한다는 뜻이다. 커뮤니티에는 고수도 존재하고 초보자도 있다. 고수는 초보자를 돕기에 적극적이고 초보자는 배우기에 적극적이다. 채팅을 통해 직접적인 배움도 얻을 수 있고, 이미 작성된 문서를 통해 깨달음을 얻기도 한다. 리눅스 커뮤니티에 참가한 이들이 한결같이 느끼는 것은 ‘사람들이 좋다’는 것이다. 리눅스를 하다보면 좋은 사람들을 많이 만난다. ‘나눔’이라는 위대한 철학에 매료된 이들이어서 그런지 모두가 순수하고 욕심이 없다. 자신이 아는 것을 꽁꽁 숨겨두는 욕심꾸러기는 없다. 하나를 얻으면 둘을 베푸는 넉넉함이 아름답다. 리눅스는 많은 사람들의 정성이 녹아 있는 결정체다. 바로 그런 운영체제를 쓴다는 것은, 다시 말하지만 커다란 리눅스의 커뮤니티에 참여하는 것이고, 그런 참여를 통해 리눅스는 조금씩 발전한다. |