초보자도 알아야 할 리눅스 역사(하) 핀란드에는 자일리톨만 있는 것이 아니다

핀란드에는 자일리톨만 있는 것이 아니다

이야기는 여기서 갑자기 핀란드로 넘어간다. 수진과 미지의 눈이 휘둥그레졌다.

“핀란드요?”

“후바후바~~~~ 하는 그……”

“전부터 궁금했는데, 거기 사람들 정말 자기전에……”

그렇다, 광고가 사람을 망치는 극단적인 경우로 이런 경우도 있는 법. 그러나 술취한 익수의 귀에 그런 말이 들어올 리 없다. 익수는 그런 수진과 미지의 말을 무시하고 말을 이었다.

“핀란드에, 골방에다가 컴퓨터와 말린 파스타만 넣어주면 혼자서도 밤새도록 잘 놀았다는 총각이 하나 있었다.”

“폐인이다!”

“무슨 소리야.”

“주침야활하고 면식을 주로하니 폐인이죠.”

“우리 오빠네, 우리 오빠 리누진 씨도 골방에 컴하고 컵라면만 넣어놓으면 잘 지내는데.”

“이효리 스페셜 동영상이랑 #양 누드 같은 거 보면서.”

“맞아맞아!!!!”

“이것들이!!!!!!!!”

익수는 헛기침을 하며 미지와 수진을 진정시켰다.

“하여간, 같은 주침야활에 면식을 해도 누진이 놈은 야동이나 보는 반면에, 그 핀란드의 리누스 토발즈는 운영체제를 만들었다, 이거다. 대단하지 않냐?”

학 문적인 성과는 당연히 다른 사람과 나누어야 한다고 생각하는 통계학 교수 외조부의 영향으로 어린 시절부터 컴퓨터를 접할 수 있었던 리누스는 외모에 콤플렉스를 지니고 있으면서도 수학과 과학에 재능을 보이는, 어찌 보면 괴짜다우면서도 나름대로 조용한 청소년기를 보냈다. 헬싱키 대학교 컴퓨터 공학과에 진학하여 조교가 된 그는 미닉스를 사용하다가, 미닉스를 만든 앤드류 타넨바움의 “운영체제, 디자인 및 실행”을 참고하여 자기가 사용하는 386 컴퓨터를 위한 새로운 운영체제를 만들기 시작하였다. 이것이 최초의 리눅스 커널이 되어 수많은 개발자를 매료시키는 데에는 그리 오랜 시간이 걸리지는 않았다. 리누스가 최초로 만들어 낸 것은 이전에 유닉스 시스템을 간단히 만들어 학생들이 사용하기 편하도록 앤드루 타넨바움 교수가 만들어낸 ‘미닉스(MINIX)’를 바탕으로 하는, 모놀리식(Monolithic) 방식의 새로운 운영체제 커널이었다. 이것은 일반 사용자를 고려하는 것이 아닌, 개발자가 만들어낸 커널 그 자체였기 때문에 기본적인 기능에, 리누스가 리눅스 커널의 인터페이스로 본 셸을 대신하여 만든 배쉬(BASH: Bone Again SHell)만이 있는 불완전한 운영체제였다. 아마도 처음에는 리누스 자신도 이런 마이너한 물건이 이렇게 널리 사용될 것이라고는 꿈에도 생각하지 못했을 것이다.

리누스는 1991년 여름, comp.os.minix 뉴스그룹에 포직스 표준을 요청하는 글을 올려 새로운 운영체제를 개발하고 있다는 암시를 풍겼고, 뒤이어 1991년 8월 25일 새로운 운영체제의 개발을 알리는 짧은 글을 남겼다. 이 글을 읽은 많은 개발자들은 이 최초의 커널에 관심을 보였다. 그리고 뉴스그룹을 통해 리눅스에 대한 많은 의견과 버그 리포트가 올라오며, 리눅스 커널은 빠르게 안정적인 모습이 되어 갔다. 다시 말해 마치 공각기동대에 나오는 “인형사”가 스스로 “나는 정보의 바다에서 태어난 생명체.”라고 말하기 이전에, 리눅스는 훗날 정보의 바다가 될 인터넷에서 태동하여 성장하는 첫 번째 운영체제가 되었다. 어떤 의미에서 인형사는 리눅스를 형님으로 모셔야 할 지도 모를 일이다.

1994년, 개발자의 이름을 따서 리눅스라는 이름이 붙은 이 커널의 1.0 버전이 발표된다. 이때 FSF(free software foundation:자유 소프트웨어 재단)이 리눅스의 발전에 합세하며 리눅스의 발전에도 가속이 붙기 시작하였다.

리처드 스톨만(Richard Stallman)이 이끄는 FSF는 1984년 이래 “유닉스와 비슷하면서도 강력한, 그리고 누구의 지배도 받지 않는” 운영체제에서 GPL을 따르는 자신의 소프트웨어를 사용하고자 하였다. 그 계획의 일환으로 먼저 소프트웨어가 개발되고, 뒤이어 GNU 커널이 계획되던 중 1991년 리눅스 커널이 먼저 공개되어 여러 개발자의 노력으로 발전해 나가자, FSF는 리눅스를 적극 지원하며 GNU 프로젝트를 도입한다. 리누스가 80386용 리눅스 커널을 개발하자 곧이어 GCC라고 불리는 C/C++ 컴파일러와 에디터인 Emacs는 물론, 여러 가지 유닉스 유틸리티의 GNU 버전이 리눅스에 포함되었다. 또한 소스가 공개된 기존의 프로그램을 리눅스에서 GCC를 사용하여 컴파일 하여, 리눅스에서 사용할 수 있게 되었다. 리눅스 커널은 GNU 시스템과 결합하여 비로소 하나의 완성된 시스템의 모습을 갖추게 되었다. 이를 계기로 리눅스는 오픈 소스 진영의 대표적인 운영체제가 되었으며, 인터페이스와 다양한 유틸리티 등 사용자를 위한 환경이 만들어지며 일반 대중에게 모습을 드러냈다.

리눅스에 게도 경쟁자가 없지는 않았다. 거의 같은 시기에 윌리엄과 라인 졸리츠(William & Lynne Jolitz)는 실험적으로 386에 BSD를 이식했다. BSD 기술과 리누스의 미숙한 초기 노력을 비교하던 대부분의 관찰자들은 BSD 포트(port)가 PC의 가장 중요한 공개 유닉스가 될 것이라 예측했다. 하지만 진화의 방향은 알 수가 없다는 특징이 있다. 예상을 깨고 리눅스가 큰 성공을 거둔 것이다. 물론 리눅스의 성공은 기술적인 면 뿐 아니라 사회적인 측면도 강하게 지니고 있었으며, 유명한 에릭 레이몬드는 리눅스의 발전을 인터넷 시대의 요구를 반영하는 소프트웨어 공학의 새로운 유형으로 정의하기도 했다.

리눅스는 다른 유닉스들과는 완전히 다른 방식으로 발달했다. 맨 처음부터 인터넷에 의해 조정되는 수많은 자원자에 의해 ‘우연히’ 해킹됐다. 품질은 엄격한 표준이나 독재에 의해 이뤄지지 않았으며, 릴리즈되면 며칠 내에 수백 명의 사용자로부터 피드백을 받고, 개발자들이 지속적으로 변화를 소개하는, 다윈주의적인 적자생존의 선택을 할 수 있게 하는 그런 단순한 전략에 의해 관리됐다. 1993년 후반 리눅스는 안정성과 신뢰성에서 상용 유닉스와 경쟁할 수 있었으며 많은 소프트웨어를 운영했다. 이러한 인기는 1994년과 그 이후에도 계속된다.

최초의 리눅스 커널은 1991년 발표한 0.01 버전이었다. 여러 해의 개발 기간을 거쳐 1994년 3월 1.0 커널이 완성됐다. 이후 1.1, 1.2, 1.3을 거쳐 1996년 7월 2.0, 1999년 1월 2.2를 거쳐 리눅스의 중흥기를 이루는 커널 2.4가 발표되었다. 리눅스는 점점 대형화하고며 엔터프라이즈 서버로 새로운 자리 잡기를 시도하고 있다. 불과 10년 전 386에서 간신히 돌아가던 유닉스 비슷한 그 무엇이 이제는 주류가 되어가는 것이다. 그러면서 다른 운영체제의 거대화에 수반됐던 많은 문제가 반복되고 있다. 리눅스 역시 코드가 수만 줄에서 수백만 줄로 증식하며 복잡한 미래에 부딪히고 있다. 현재 나와 있는 2.6은, 버그의 바다라는 말도 듣고 있기는 하지만 많은 리눅서들에게는 최고의 크리스마스 선물이 되었다. (어딘가 엄청 비참한 이야기가 될 수도 있다. 넘어가자.)

리 눅스 토발즈는 리눅스의 소스코드를 GNU의 GPL(General Public License)에 따라 인터넷에 공개하여, 모든 사람이 자유롭게 사용할 수 있을 뿐 아니라 개선에도 참여 할 수 있는 길을 제시하였다. 이는 리눅스 개발의 역사적인 특징인 인터넷을 통한 자발적인 협력 모델의 시작을 의미하는 기념비적인 일이었다. 다시 말해, 리눅스를 만들었다고는 하지만, 레드햇 사 등의 지분은 갖고 있을 지언정 커널 자체를 상업화하여 떼돈을 벌지는 않았다는 것이다.

“그러면 그 레드햇 주식으로 먹고 사는 건가요?”

“아니. 얼마 전까지는 트랜스메타라는 회사에서 일했고, 얼마전에 그만두었다고 하던걸.”

“그러면 요즘은요?”

“OSDL이라고, 오픈소스 관련 모임에서 일하는 것 같더라. 리눅스가 이제야 자신의 취미가 아니라 본업이 될 것 같다고 코멘트를 남겼더라구. 물론 영어로.”

물 론 그의 자서전을 보면 그는 돈의 중요성을 잘 알고 있으며, 레드햇 사의 주식값이 오르는 것에 가슴을 졸이며 집을 사는 문제로 고민하는 평범한 사람이지만, 이 커널을 완전히 공개할 수 있는 “용기”를 낸 것은 어느 정도 그의 환경에 기인하는 일이라 생각할 수 있을 것이다. 그의 외할아버지는 학문적인 성과를 다른 사람과 나누어야 한다고 생각하는 학자였으며, 그의 아버지는 공산주의자였다. 또한 뛰어난 복지정책으로 금전적인 탐욕을 부리는 사람이 적은데다 그런 탐욕을 부리는 사람은 경멸의 대상이 되는 핀란드라는 나라에서 태어났기 때문에, 지식의 결과물을 물질적인 탐욕의 도구로 사용하는 것을 꺼리게되었다는 점도 있을 것이다. 역사상의 수많은 과학적 업적이 그러했듯, 리누스의 성과는 원하는 모든 사람과 공유되어 유용하게 사용되고 발전하였다. 처음에는 서버, 그 이후에는 데스크탑, 최근에는 임베디드 시스템에서 리눅스는 상당히 각광받으며 다양한 환경에 최적화되어 사용되고 있다.

리 누스 토발즈는 2002년 12월 한국에 방문하였다. 정말 순식간에 일이 진행되어 홍보기간도 없이 신청 다음날 바로 신라호텔에서 세미나가 열릴 정도였지만, 약 1600명 이상의 리눅서가 신청하고 최소 1000명 이상이 세미나에 방문하였다고 한다. 여러 사정으로 하룻밤 사이에 소문이 퍼지고 그 다음날 하루동안 등록신청을 받아 그 이튿날 열린 세미나였기에 리눅스 유저들의 열정이 얼마나 대단한지 실감할 수 있는 자리라 할 수 있었다.

리누스는 먼저 오픈 소스에 대한 전반적인 이야기를 하고, 아마도 운 좋으면 올해 안에 릴리즈될 커널 2.6을 소개하였다. 사실 기술적인 오역이 많을 것 같아 동시통역기를 사용하지 않는 사람이 많았으나, 중간에 통역기를 사용해 보니 상당히 매끄럽게 잘 해 주셨다. 통역하신 분께서 고충이 많으셨을 것 같았지만. 나름대로 리눅서들에게는 상당한 기쁨이 아닐 수 없는 일이었다.

“조교님도 다녀왔어요?”

“그럼, 이 녀석이랑 같이 갔었지. 꿀꿀하게도.”

“아, 그러지 말아요. 난 정말 감동했다고요.”

“통역기도 안 썼으면서 무슨 소리 하는지 네가 알아 듣기는 했어?”

“두 가지로 요약할 수 있었다니까요. 목마른 놈이 우물을 파라는 것하고, 재미있는 것을 하라는 것. 그 이상 무슨 말이 필요해요?”

“몰라, 그래도 몸매는 영 아니더만.”

“MS 이야기나 그런거 할 때도 당당하니까 그런거 하나도 눈에 안 들어오던데요 뭐. 솔직히 말해서 형보다 낫지.”

“시끄러, 리누진. 너야말로 군대도 안 간 놈이 임신 4개월이면서 뭐냐?”

“내가 뭘요!”

두 남자의 어이없는 뱃살논쟁에 미지와 수진은 다시 술잔을 기울일 뿐이었다.

“그런데 오빠. 리눅스는 집에 쓰는 한컴도 있고, 학교에 있는 레드햇도 있고, 그렇잖아요.”

“그게 배포판이지. 기본적인 커널은 같은데 회사마다 다르게 패키징해서, 이것저것 유틸리티랑 함께 한방에 깔아 쓸 수 있게 만든 거잖아. 왜?”

“그러면 그런 건 회사에서 프로그래머들이 만드는 거지? 그러면 그 커널이라는 건 리누스 혼자 만드는 거야?”

리눅스 커널을 만드는 사람들

리 눅스에서는 유난히 커널에 대한 언급이 많다. 때문에 잘 모르는 사람은 윈도우나 다른 운영체제에도 커널이 있다고 말하면 놀라기도 하지만, 어차피 커널이라는 것 자체가 운영체제의 핵심적인 부분을 뜻하는 말이니 리눅스에만 커널이 있다고 생각하는 것은 금물이다. 커널은 하드웨어를 관리하며 시스템에서 일어날 수 있는 이벤트를 처리한다. 또한 프로그램이 실제 실행되는 형태인 프로세스를 원활하게 관리하여 우리가 프로그램을 사용할 수 있게 하며, 프로세스들의 순서를 나누어 동시에 여러 프로그램을 실행할 수 있게 한다. 또한 파일 시스템을 관리하기도 한다.

리눅스 커널이 유명한 것은 그 커널이 공개되어 있으며 누구나 그 커널 소스를 직접 수정하거나 컴파일 할 때 옵션을 주어 자신의 환경에 최적화 할 수 있기 때문이다. kernel.org에서는 최신의 커널을 다운로드 할 수 있으며 옛 버전의 커널을 구할 수도 있어 새로운 커널을 컴파일하여 시스템의 성능을 높이려는 사람은 물론 옛 버전의 단순한 커널을 이용하여 운영체제에 대해 알아보고자 하는 사람들에게도 현실적으로 큰 도움이 된다. 그나저나 이런 커널은 매우 빠르게 업데이트되며, 각 버전의 패치가 많이 나와 있다. 이런 것들은 전 세계의 리눅서들이 보내오는 요구사항과 다양한 패치를 반영하고 테스트하여 취합한 것이다.

물론 리누스 혼자서 그 많은 작업을 하고 있는 것은 아니다. 이전에는 앨런 콕스가 이 작업을 도왔으며, 최근에는 마르첼로 토사티가 앨런 콕스를 대신하여 커널 메인테이너로서 활동하고 있다.

“그러면 오빠도 뭔가 원하는 기능이 있으면 보낼 수 있는거예요?”

“있기야 있지만.”

누진은 웃었다.

“아직은 그런데 올릴 수 있을 만큼 능력이 좋질 않아서.”

“공부해, 임마. 그러지 말고.”

“형보다 열심히 하니까 걱정 놓으세요.”

MT의 밤이 깊어가고 있었다.

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.