[종간특별호: 한노정연 백서] 2007.1.15.

현장에서 미래를 > 연재-기획 > 목록보기 > 글읽기

 
리눅스의 역사와 대중화(1)
 기획: 정보통신

현장에서 미래를  제115호
문태준

기획: 정보통신

리눅스의 역사와 대중화 (1)


문태준 / 한국정보통신산업노동조합 위원장


글 싣는 순서

1. 정보화 사회에 대하여
2. 해커와 유닉스의 역사
3. 리눅스의 발전과정과 자유 소프트웨어(이상 이번 호)
4. 인터넷의 발전과 공개표준(이하 다음 호)
5. 세계를 터는 강도
6. 리눅스의 대중화




1. 정보화 사회에 대하여


1) PC와 인터넷의 발전

필자가 PC를 만진 것은 91년이다. 그때 당시 IBM PC 호환기종인 286 AT를 용산에서 구입하였다. 그리고 그해 여름에 PC통신을 시작하였고 PC통신을 통해 그전까지와는 다른 새로운 만남과 여러 가지 기회를 가지게 되었다. 그 당시 PC통신을 접하고 당시로서는 제한적이기는 하였지만 네트워크라는 것에 참여하게 되면서 현재의 삶에 큰 영향을 미쳤는지도 모르겠다. 당시만하더라도 PC통신은 국내에서 갓 시작한 상태였고(정확히는 87년-88년일 것이다) 일반인들이 서서히 PC에 재미를 들이고 있던 시기이다. 이야기라는 통신 프로그램을 가지고 통신에 접속하였고 아는 사람에게 복사를 한 HWP 1.0 버전을 사용하고 있었다. 일반인들이 문서를 작성하는데 일일이 손으로 쓰지 않고 컴퓨터를 이용해서 처리할 수 있는 것만으로도 놀라운 일이었고 전혀 얼굴도 모르는 사람을 집안에 앉아서 모뎀을 통해 서로 이야기할 수 있고 정보를 주고받을 수 있는 것은 전혀 새로운 경험이었다. 코프로세서(부동소숫점 계산을 할 수 있는 기능)가 없어서 코프로세서 에뮬레이터를 이용하여 심심풀이로 오토캐드 등을 돌렸고 수치계산을 위한 작업에 로터스의 프로그램을 이용하고 데이터베이스용으로 dbase-III를 만졌던 시대였다. 별다른 고민없이 MS-DOS를 사용하다가 부족한 기능 때문에 4-DOS등 유틸리티를 사용하다고 나중에는 MS-DOS에 비하여 여러 가지 기능이 있는 DR-DOS를 사용하게 되었다. DR-DOS는 향상된 메모리 관리, 히스토리 기능의 기본적인 지원, 하드디스크 압축 기능 등 여러 가지 다양한 기능을 가지고 있었다.

이후 컴퓨터는 계속 발전을 하여 286에서 386, 486, 586 등이 계속 발전해서 나왔고 필자가 쓰던 프로그램들은 이와 함께 변화되었다. MS의 윈도우즈가 나왔고 이를 사용하기 위해서 다시 MS-DOS로 돌아가야했고 윈도우즈 3.1, 윈도우즈 95, 윈도우즈 98에 이어 현재는 윈도우즈 2000을 사용하고 있다. 예전에 사용하던 로터스나 디베이스, 쿼트로프로는 이제 없어졌고 피시에는 MS의 엑셀과 파워포인트, MS-WORD가 깔려있고 인터넷 익스플로러가 설치되어 있다. 물론 글도 계속 사용을 한다. 90년대 중반부터 리눅스를 알게 되었고 이를 통하여 데이터베이스, 웹, 네트워크 프로그래밍 등을 하였고 웹, DNS, 메일 서비스 등을 하였다. 국내의 특정한 통신망만을 이용하는 PC통신에서 벗어나 이제 전 세계인들이 참여하는 인터넷에 한 시민으로 열심히 참가를 하고 있다.

짧다면 짧고 한 사람의 인생에 있어서 길다고도 볼 수 있는 이 10년간의 나의 경험담이 결코 개인적인 것은 아닐 것이다. 그만큼 90년대 이후 PC산업과 인터넷의 발전은 세상에 많은 변화를 초래했고 우리가 원했던 원하지 않았던 급격하게 변화를 하면서 현재의 상황에 와 있다. 전 세계가 세계화의 물결을 타면서 다른 나라의 일이 금새 자기 자신의 일로 현실화되고 있고 전 세계적인 변화로부터 그 누구도 자유로울 수 없는 상황이 된 것이다. 급격한 정보통신의 발전으로 우리 삶도 엄청나게 많은 변화를 겪고 있고 이에 따라 새로운 산업이 등장하고 우리의 삶의 양식도 변화하고 있는 것이다.


2) 정보화 사회에 대하여
멀리는 산업혁명을 통해, 현대에 와서는 여러 가지 과학기술의 혁신을 통하여 현실 사회는 빠르게 변화해왔다. 20세기를 과학기술의 세기라고 부르는 것처럼 현대 사회에서 과학기술이 사회 변화에 미친 영향은 아무리 강조를 한다고 해도 지나치지 않을 것이다. 그중에서 위에서 말을 했던 지난 10년은 정보기술의 영향력이 전사회적으로 강화되고 강력한 영향력을 미쳤던 시기로 볼 수가 있다. 현재도 이의 연장선상에 있다. 그러면서 마치 정보화 사회가 이전의 사회와는 전혀 다른 새로운 세계이고 모든 문제를 해결해 줄 것 같은 해결사의 분위기, 낭만적인 전망만이 세상에 팽배하고 있다. 그러나 실제로 정보화가 제기된 배경을 살펴보면 지나치게 기술적인 것에만 집중하고 있는 것이 아닌가라는 우려를 가질 수밖에 없다.

정보화가 제기된 배경은 70년대 오일쇼크 등 자본주의의 경제 위기에 직면하여 이러한 문제를 해결하기 위하여 자본주의 위기 해결을 위한 일환으로서 추진되어온 과학기술혁명의 주요한 성과로서 정보통신혁명 그리고 이러한 정보통신혁명의 자본주의적인 이용이고 그 뒤에서 전 세계에서 활발하게 활동을 강화하고 있는 초국적 자본이 있다.

정보화를 주도하는 것은 인터넷이다. 인터넷을 위한 기반시설인 정보고속도로의 건설과 인터넷을 중심으로 한 정보기술 발달은 상상을 뛰어넘을 정도로 급진전되어 사회 곳곳에서 변화를 촉발하고 있다. 우리는 이러한 정보고속도로의 건설과 정보화의 주창자가 바로 미국과 독점자본인 것을 간과해서는 안된다. 엘 고어 부통령을 정보화의 사도로 앞세운 미국이 인터넷을 통한 정보와 기반시설의 절대 다수를 독점하고 있다는 사실을 잊지 말아야 한다. 정보화의 주창은 철저히 경제적이다. 고속도로가 그러하듯 정보고속도로는 21세기 미국 경제의 활로와 동맥을 의미한다.
정보화의 함의가 어떠하든 정보화는 문화, 경제, 정치 전 분야에 충격적인 변화를 야기하고 있다. 혹자들은 이를 산업혁명에 비유해 정보혁명이라 부르기도 한다. 그 중에 가장 직접적으로 영향을 받는 것이 산업에 있어서이다. 정보화는 곧바로 유통과정을 단순화시키고, 각종 서비스 및 생산방식에 있어서 급진적 변화를 일으키고 있다. 전사적 자원관리, 물류시스템, 바코드 스캐닝 시스템, 전자문서 관리시스템, 시스템통합사업, 의사결정지원시스템 등 정보화되고 전산화된 새로운 시스템들이 기업경영에 적극적으로 도입되고 있다. 전자금융과 전자거래, 나아가 전자화폐의 대중화가 목전에 다가오고 있고 그 뒤에는 국경과 지역을 뛰어넘는 초국적 독점자본의 논리가 서 있다. UR의 타결, WTO의 성립은 세계화의 논리를 더욱 더 부추기고 있고 정보통신기술발전은 여기서 국경과 지역을 뛰어넘어 세계를 하나의 시장으로 묶어주는 매개체가 되고 있다.

정보화의 발전은 여론형성의 방법 및 의사소통의 방식과 인간관계 방식의 변화 등에도 영향을 미친다. 정보화와 함께 변화될 사회문화적 양상은 그리 폭넓게 논의되고 있지 못하다. 정보화의 주체가 거대자본에 의해 진행되고 있는 상황에서 정보의 상품화와 이에 따른 정보소외 등이 사회적 문제로 부각될 것이 우려된다. 앨빈 토플퍼를 위시한 대부분의 미래학자들은 정보화 사회에서 정보를 가진 자가 권력을 잡는다고 주장을 하는데 정보통신기반시설이 거대 자본에 의해 독점되어 있는 상황에서 미래에도 자본이 이 사회를 계속 주무르겠다는 표현이외에는 아무 것도 아니다. 비관적 입장에 선 논자들은 인터넷을 포함한 정보고속도로가 또 다른 첨단 대중통제 기제이자 이윤 창출을 위한 독점자본의 도구에 다름 아니라는 입장을 고수한다. 그리고 이러한 정보고속도로가 가져올 정보 통제와 감시사회의 암울한 미래를 그린다. 정보사회에 대한 비관론적 입장에서 볼 때 정보고속도로 계획은 거대 독점체가 ‘빅 브라더’의 역할을 연출하는 자본의 사기극에 불과한 것이다. 어쩌면 정보통신을 통하지 않는 사회현상은 존재하지 않을 수도 있다. 그런데 정보통신의 모든 기반시설은 점점 거대 자본에 의해 장악되고 있고 정보화 사회는 그들에 의해 주도되고 있다. 행정의 편의성을 겉으로는 내세우지만 본질적으로는 전 국민을 전자적인 매체를 이용해 통제와 감시를 하려는 전자주민카드의 도입도 그 한 예라고 할 수 있을 것이다.

위에서 말을 한 대로 정보화 사회라는 것 자체가 어느 날 갑자기 나타난 것은 아니며 정보기술의 사회적 영향력은 1960년대부터 크게 주목받기 시작했고 최근에 들어서 수면위로 급부상을 한 것이다. 흔히들 탈산업사회라고 이야기를 하지만 공업력을 이용한다는 점에서 산업사회와 정보사회는 본질적으로 같다. 탈산업사회라고 말을 하는 것은 정보화 사회가 현재의 산업사회가 아닌 새롭게 발전한 사회라는 이데올로기적 효과를 주고 있다. 위에서도 이야기했듯이 정보통신기술이라는 것이 자본의 위기를 극복하고 새로운 수익과 이윤을 창출하기 위해서 적극적으로 도입되었고 첨단화된 정보통신의 기술이 기존의 오프라인 사업을 더욱 더 강화하고 온라인과 연결되고 있는 것이다. 거꾸로 최근 인터넷 포탈 사이트 등의 컨텐츠 제공업체들이 수익성 문제에 부딪치고 오프라인 사업과의 연계와 M&A등을 강화하고 있는 것도 이러한 것들을 역설적으로 보여주고 있다는 생각이 든다. 기존의 오프라인 사업이 정보통신기술을 통하여 적극적으로 온라인까지 포괄하고 있는 형태로 나아간다는 것이다. (물론 온라인 나름대로의 여러 가지 사업모델은 있을 것이다.)

위의 문제의식을 가지고 바라본다면 현재 리눅스의 대중화라는 것도 이러한 기술의 개발과 이용방식을 둘러싼 사회적인 대립이라고 볼 수 있을 것이다. 단순하게 어떠한 기술이 더 뛰어나고 어떠한 기술이 더 시대에 뒤떨어진다는 기술적인 관점만의 문제가 아니라 과거와는 다른 새로운 기술개발방식과 이용방식을 둘러싼 다툼이고 이는 곧 이후 사회를 어떻게 운영해 갈 것인가라는 것에 대하여 갈등하고 새로운 모델을 제시하고 있는 것이다. “기술적인 관점”에만 매몰되지 말자는 것이다! 운영체제의 독점이 사회적 문제로 부상하는 것은 정보사회의 인프라, 핵심 기반 기술을 특정한 기업에게 맡길 수 있는 것인가라는 문제를 제기하면서 이에 대하여 새로운 기술을 어떻게 개발하고 어떤 식으로 활용할 것인가에 대한 대안을 찾아야한다. 또한 이러한 문제제기가 어느 날 갑자기 나온 것은 아니고 나름대로의 활동의 역사를 가지고 있고 90년대 후반부에 이에 대한 사회적 관심과 변화를 불러일으키고 있다.


2. 해커와 유닉스의 역사

1) 해커는 범죄자?
해커라는 명칭은 언론에 의해 극히 왜곡되어 현재는 컴퓨터 통신망에 침투하여 남의 정보들 도둑질해가는 범죄자라는 인식이 되었다. 그러나 현재의 컴퓨터 기술, 인터넷의 발전은 정보의 독점에 대항하고 정보를 자유롭게 공유하려고 하였던 이러한 해커들에 의해 발전되었고 현재의 컴퓨터 혁명을 가능하도록 한 배경이 되었다.

1945년 이후 컴퓨팅 테크놀러지는 전 세계의 총명하고 창조적인 수많은 사람들을 유혹하였고 이러한 소수 열정적인 프로그래머에 의해 자의식 강한 기술문화가 계속 되었고 이들은 소프트웨어를 재미로 만들고 즐거워했다. 2차 세계 대전 이후 1970년대 초반까지 배치 컴퓨팅과 메인프레임이 주름답던 때에 이들 “진정한 프로그래머”들은 컴퓨팅에 있어 기술 문화를 주도하였으며 이러한 결과로 대화형 컴퓨팅, 대학, 네트워크의 발전이 이루어졌다. 오늘날의 오픈 소스 해커문화로 진화할 수 있는 공학의 전통을 만든 것이다.

현재 우리가 오늘날 알고 있는 해커 문화의 시초는 MIT에서 1960년대 시작되었다고 볼 수 있다. MIT 대학의 취미 동아리인 MIT 테크 모델 철도 클럽(TMRC, Tech Model Railroad Club)은 1961년 MIT에 처음 도입되었던 PDP-1을 자신들이 좋아하는 기술적인 장난감으로 선택하고 오늘날 우리들도 인식하고 있는 여러 가지 프로그래밍 도구, 관련 은어, 전체 주위 환경을 만들어갔다. TMRC의 해커는 1980년 초기까지 전 세계의 인공지능 연구를 이끄는 센터였던 MIT 인공지능 연구소의 핵심이 되었으며 그 영향력은 ARPAnet 최초의 해인 1969년 이후 더 넓게 퍼졌다. 최초의 대륙간 고속 컴퓨터 네트워크였던 ARPAnet은 국방성의 디지털 통신 실험을 위해 만들었지만 이곳을 통해 수백의 대학과 방위산업체, 연구소를 연결하였고 연구자들은 어떤 곳에서든지 전례 없는 속도와 유연성으로 정보를 교환하고 협동 작업을 진행하였으며 이를 통해 기술적 진보의 속도와 강도를 크게 증가시킬 수 있었다. 또 한편 이를 통해 아르파넷은 미국내의 모든 해커들을 모아내는 역할도 수행한 것이다.

2) 해커의 윤리
이들 1세대 해커들의 가장 큰 공적은 ‘해커의 윤리’라는 최초의 컴퓨터 문화를 창출한 것이었다. 해커의 윤리란 당시 해커들 사이에 묵시적으로 형성된 불문율로 ‘정보의 완전한 개방과 공유’라는 대원칙을 기본으로 삼았다. 이들은 정보의 개방을 방해하는 관료체제와 IBM 같은 공룡기업에 맞서 싸우며 정보의 개방과 공유라는 원칙을 만들었다. 한명의 해커가 어떠한 프로그램을 만들면 누구나 마음대로 프로그램을 복사하여 더 나은 방향으로 개량해 나갔다. 이런 식으로 프로그램은 불과 짧은 시간동안 많은 사람들의 노력에 의해 놀라운 수준으로 발전하게 된다. 이들은 정보의 개방과 공유야말로 노력의 중복을 피하고 창조성을 한껏 높일 수 있는 토대라고 믿었다. 당시 DEC에서는 PDP 마이크로컴퓨터를 공급하고 있었는데, 이 회사의 기계들은 당시에 비교적 저렴한 가격으로 대화형 컴퓨팅과 시분할 시스템을 제공하였고 이러한 저렴한 시분할 시스템을 통해 해커문화가 자라날 수 있는 물질적인 기반이 되었다. MIT에서는 DEC의 소프트웨어를 버리고 자신만의 운영체제인 ITS(Incompatible Timesharing System)을 만들어냈다.
이 당시 나온 언어중의 하나가 인공지능 언어인 LISP이며 ITS 문화의 많은 기술적 창조는 이막스 등을 통해 현재까지 그 영향을 미치고 있다. 해커문화는 네트워크에 연결된 대학에서 자라났다고 했는데 스탠포드 대학의 인공지능 연구소에서 성장한 해커들은 이후 개인용 컴퓨터와 오늘날의 윈도우, 아이콘, 마우스 소프트웨어 인터페이스 개발의 핵심인물이 되었다.
카네기 멜론 대학의 해커들은 전문가 시스템과 산업적 로봇공학에서 최초의 실용적인 대규모 애플리케이션을 이끌게 될 작업을 하고 있었다. 해커 문화와 연관되어 또 중요한 것은 제록스 PARC의 팔로 알토 연구소이다. 1970년 초반부터 1980년 중반까지 10년 이상 PARC는 현재 널리 사용되고 있는 다양한 기술의 출발점이 되었다. 마우스, 윈도우, 아이콘 스타일의 소프트웨어 인터페이스를 발명했으며 레이저 프린터, 근거리 네트워크도 이곳을 통해 나왔다.

3) 유닉스의 탄생
아르파넷이 탄생한 해는 켄 톰슨이라는 벨 연구소의 해커가 유닉스를 발명한 해이기도 하다. 데니스 리치라는 해커는 톰슨의 유아기적 유닉스에서 사용하기 위해 C라는 새로운 언어를 발명하였다. 유닉스와 C는 제한이 없고 유연하게 설계되었다. 그전가지 운영체제는 호스트 기계에서 최대한의 효율을 내기 위해 어셈블리어로 씌어졌지만 톰슨과 리치는 하드웨어와 컴파일러 기술이 전체 운영체제를 C로 작성해도 좋을 만큼 좋아졌다는 것을 인식한 사람들이다. 서로 다른 많은 형태의 기계에서 같은 모습과 같은 기능을 제공할 수 있는 공통 소프트웨어 환경이 만들어지고 있는 것이었다. 유닉스와 C는 이러한 강력한 호환성과 함께 “간단하고 멍청하게”라는 철학에서 만들어졌다. 유닉스는 서로를 유용한 방식으로 결합할 수 있도록 설계된 간단한 프로그램의 유연한 툴킷으로 구성되었다. 이는 쉘 스크립트를 짜보았다면 쉽게 이해가 갈 것이다. 엄청난 기능을 담은 공룡 프로그램을 만드는 것이 아니라 작고 효율적인 프로그램을 결합하여 다양한 기능을 수행할 수 있다. 유닉스는 공식적인 지원 프로그램이 없었지만 AT&T 내에서 아주 빠르게 퍼져나갔으며 1980년대에 수많은 대학과 연구 컴퓨팅 사이트로 퍼져 나갔다. 이러한 흐름과 함께 1975년 최초의 개인용 컴퓨터가 시장에 등장하기 시작했으며 그 이후 엄청난 속도로 성장을 하였다. 마이크로컴퓨터의 잠재력은 명백하였고 젊은 또 다른 해커 세대를 만들어내기 시작하였다.

4) 1980년대의 상황
1980년의 상황은 이와 같이 ITS와 결합된 아르파넷/PDP-10문화, PDP-11과 VAX, 전화 여결과 함께하는 유닉스와 C 그룹, 컴퓨터의 힘을 사람들에게 가져다주는 데 열중한 초기 마이크로컴퓨터광 등의 세 그룹으로 구성이 되었다. ITS는 여전히 높은 지위를 가지고 있었지만 여러 가지 다른 문제들과 함께 이식성의 문제로 미래가 불투명해졌다. 이때부터 VAX에서 작동하는 버클리 계열 유닉스 변종이 가장 좋은 해킹 시스템이 되었고 마이크로 컴퓨터도 놀라운 속도로 성장을 하고 있었다.
당시 MIT AI 연구소의 대표 인물이자 연구소 기술의 상업화에 가장 완고하게 타협을 거부한 사람이 리차드 스톨만이다. 리차드 스톨만은 80년대 초반에 겪던 해커문화의 변동을 깔끔하게 정리하였다. 그는 1982년 C로 작성되고 자유롭게 이용할 수 있는 유닉스의 완전한 복제본을 구성하기 시작하였는데 그럼으로써 ITS의 정신과 전통은 더 새로운 유닉스와 VAX 중심 해커문화의 중요한 일부로 보존이 될 수 있었다. 또한 마이크로칩과 근거리 네트워크 기술이 해커문화에 중대한 영향을 미치기 시작하였으며 버클리의 유닉스 해커 그룹중 일부가 썬 마이크로시스템을 창립하여 워크스테이션의 첫 번째 세대를 만들어내게 되었다.

5) 유닉스의 상업화와 워크스테이션의 등장
1984년에서는 AT&T가 해체되고 유닉스가 최초로 상업 제품이 되었다. 썬 등의 회사에서 나온 워크스테이션급 기계들은 고성능 그래픽이 가능하고 네트워크를 통해 공유 데이터를 전송할 수 있도록 만들어졌다. 1980년 해커 문화는 이러한 환경에서 다양한 소프트웨어와 도구를 만들어내기 위하여 노력하였다. 버클리 유닉스는 아르파넷 프로토콜의 내장 지원을 개발하였는데 이는 네트워킹 문제에 대한 해결책을 제공하고 인터넷의 이후 성장을 뒷받침하는 기술적인 기반이 되었다. 워크스테이션 그래픽을 제어하려는 여러 가지 시도 중 하나는 X윈도우 시스템인데 이는 X 개발자들이 해커 윤리에 따라 기꺼이 소스를 자유롭게 공개하여 인터넷을 통해 보급될 수 있었기 때문에 가능한 것이었다. 독점적인 그래픽 시스템에 대한 X의 승리는 몇 년 후 유닉스에 중요한 영향을 미치는 변화에 대한 전조라고 볼 수 있을 것이다. 네트워킹이 가능한 해커문화 자체 내에서 1980년대의 가장 큰 경쟁은 버클리 유닉스와 AT&T 버전 사이의 열성자들에 생겨났다. 버클리의 해커들은 AT&T와의 싸움과 소송 등을 거쳐 이후 소스와 바이너리 형태의 자유로운 재배포를 허용하는 현재의 BSD 운영체제를 만들어내었다.(FreeBSD, OpenBSD, NetBSD 등이 여기에 속한다.) BSD의 네트워크 기능 및 다양한 유틸리티는 이후 리눅스에도 많은 영향을 미쳤다. AT&T 유닉스는 시장에서 BSD/sun을 따라오지는 못했지만 표준 전쟁에서는 승리하였는데 1990년이 되어서는 AT&T와 BSD의 버전은 구분하기가 어려워졌고 서로의 신기술을 흡수하였다.

6) 개인용 컴퓨터의 대중화
이제 90년대로 넘어가면서 고성능에 저렴한 인텔칩이 등장하고 80년대의 워크스테이션을 위협하는 존재가 된다. 해커들은 10년 전의 미니컴퓨터의 성능에 맞먹는 개인용 컴퓨터를 가지게 되었다. 여기에서 MS-DOS나 맥 등의 사용자들은 빠르게 그 기반을 넓혀나갔는데 UUCP나 인터넷에 비교할만한 주도적인 네트워크의 부재로 협동 해킹의 전통은 만들어지지 못했다. 물론 상용 온라인 서비스가 폭넓게 시작되기는 했지만 개발도구가 포함되지 않은 비유닉스 운영체제는 소스 공개와 정보 공유라는 기존의 해커들의 전통을 유지하기에는 성격이 달랐다. 거꾸로 인터넷에 의해 조직화되고 이제 유닉스 기술 문화로 통합되었다고 볼 수 있는 해커문화의 주류는 상업 서비스에 대해서는 신경을 쓰지 않았다.

또 하나의 문제는 상용 유닉스는 수천 달러대로 여전히 그 가격이 비쌌고 1990년대 초까지는 자유롭게 수정하여 재배포할 수 있는 운영체제의 소스를 얻을 수가 없었다는 것이다. 리차드 스톨만은 완전하게 자유로운 운영체제를 만들기 위하여 GNU 프로젝트를 시작했지만 운영체제를 구성하기 위한 핵심인 커널이 누락되어 있었는데 자체적으로 구현하려고 하였던 커널 작업은 계속 지체가 되고 있었다. 이와 함께 1980년 초반까지 독점적인 유닉스를 상업화하기 위한 10여 년간의 노력이 실패로 돌아가고 있었고 유닉스 플랫폼간 호환성에 대한 약속은 여러 상용 유닉스 버전간의 논쟁 속에 발전을 하지 못하였다. 이런 상황은 마이크로소프트가 여러 가지 기술적인 문제점을 가지고 있는 상황에서도 윈도우 운영체제의 시장점유율을 높이는데 기여하였다.

7) GNU/리눅스의 등장
이러한 상황 때문에 유닉스에 적대적인 관측자들은 유닉스의 죽음이 얼마 남지 않았다고 생각을 하게 되었으며 이제 개개인의 기술 영웅주의가 아니라 마이크로소프트와 같은 거대한 업체에 의해 소프트웨어 산업과 인터넷이 지배될 것이라는 믿음을 가지게 되었다.
바로 이런 상황에서 등장한 것이 리누스 토발즈의 공개 유닉스 커널이다. 헬싱키 대학생이었던 리누스 토발즈는 취미작업으로 공개 커널 개발 작업을 시작했고 인터넷의 많은 해커들을 끌어들여 완전하게 자유롭고 재배포 가능한 커널을 개발해낸 것이다. 물론 PC에서 사용할 수 있는 공개 유닉스는 BSD 쪽에서도 작업이 진행되고 있었지만 현재와 같이 리눅스가 폭발적으로 성장할 수 있었던 배경에는 새로운 소프트웨어 개발방식과 연관이 깊다. 이에 대해서는 성당과 시장이라는 글로 널리 알려져 있다.
또 한편 리눅스의 성장은 일반인들이 인터넷에 자유롭게 접할 수 있게 된 것과 밀접한 연관을 가지고 있다. 1994년 버클리의 유닉스 개발 그룹이 공식적으로 해체되었지만 386BSD의 후손들이나 리눅스 등 서로 다른 공개 유닉스 운영체제가 인터넷을 통하여 활발하게 개발이 되었다. 이러한 결과로 1990년 후반에 해커문화의 주요 활동은 리눅스 개발과 인터넷의 주류화였다. 인터넷의 고속 성장은 해커 문화에 중추적인 지위와 정치적 영향력을 구가할 수 있는 계기를 마련해주었고 이러한 것들이 해커들만의 자족적인 상황이 아니라 90년대 후반과 현재까지 정보통신산업에 엄청난 영향을 미치게 되었다.


3. 리눅스의 발전과정과 자유 소프트웨어

리눅스의 탄생과 발전과정에 대해서는 외부 자료를 통해 소개하고자 한다. 한 가지는 리눅스에 대한 기본적인 소개 자료이고 또 하나는 GNU 프로젝트에 대한 소개이다.

1) 리눅스의 탄생
(이하 자료 출처: http://linuxkorea.co.kr/main/refer/feature.h tml.)

리눅스(Linux)는 개인적인 연구목적에서 시작되었습니다. 91년도에 핀란드의 대학생이었던 리누스 토발즈는 자신이 그전까지 배운 지식을 토대로 하여 당시에 널리 보급된 인텔의 80386 장비에서 운용되는 유닉스 시스템을 만드는 작업을 시작하였습니다. 그러나 단순히 자신의 작업으로서 끝을 맺은 것이 아니라 약간의 성과물을 인터넷에 올리면서 현재와 같은 리눅스의 기본이 만들어지기 시작한 것입니다. 리눅스(Linux)라는 이름은 리누스 토발즈의 이름을 따서 지어졌습니다.

몇 가지 기능이 없는 이 간단한 운영체제는 전 세계 기술자들의 도움을 받아서 그 기능과 규모가 점점더 커지게 되었습니다. 물론 토발즈도 작업에 참여하고 있었지만 자신의 부족한 지식과 기술적인 한계를 외부의 기술자들에 도움을 얻어서 점점더 완벽한 기능의 운영체제로 만들어가지 시작한 것입니다. 일반적으로 프로그램이라고 한다면 특정업체에서 충분한 계획을 세우고 인력을 투입하여 일정기간의 작업을 거쳐서 완성되는 것이었습니다. 그러나 리눅스의 개발방법은 전혀 색다른 것이 된 것입니다. 특정업체가 관여한 것도 아니고 완벽한 개발계획에 의해서 움직인 것도 아니었습니다. 단지 자신이 원하는 기능 또는 기술 등이 포함되기를 원하는 기술자들에 의해서 확장되는 형태로 시작되었던 것입니다.

점점 더 참여자가 늘어남에 따라서 개선속도가 빨라지고 활용의 가능성이 높아져 갔습니다. 여기에 좀 더 힘을 붙여준 것은 GNU 프로그램들이었습니다. 운영체제는 말 그대로 응용프로그램과 하드웨어와의 연결을 담당한 또다른 프로그램일 뿐입니다. 즉 이것만 가지고는 활용이라고 말하기 힘들다는 것입니다. 그래서 반드시 활용을 위한 시스템 유틸리티등과 프로그램을 작성하고 운영하기 위한 라이브러리 등은 필수적이라고 볼 수 있습니다. 이때 이러한 프로그램이나 라이브러리를 얻을 수 있는 곳이 GNU 프로젝트들이었습니다. 기존의 유닉스 명령어와 프로그램을 공개적으로 개발하는 프로젝트였던 이곳에서 리눅스위에서 동작하는 프로그램들을 얻을 수가 있었던 것입니다. 리눅스는 점점 완벽한 운영체제의 모양을 갖춰가게 되었습니다. 이렇게 되기까지는 그다지 오랜 시간이 걸리지 않았습니다. 즉 많은 노력과 비용이 들어가는 상용 운영체제를 개발하는 시간보다 더 짧은 시간에 활용도가 높은 공개 운영체제가 만들어졌던 것입니다. 그래서 94년부터는 본격적인 활용이 가능한 상태가 되었습니다.

이러한 독특한 개발 방법은 기존까지의 프로그램 개발방법론과도 많은 차이를 보이고 있었고 그러한 결과물이 이렇게 놀라운 성능을 발휘할 것이라는 것은 아무도 예상치 못한 것이었습니다. 그래서 GNU 프로젝트와 리눅스의 개발방법론은 소프트웨어 개발에 또 다른 부수적인 업적을 남기게 되었습니다. 91년도의 탄생에서 약 10여년이 흐른 지금까지도 이러한 개발방법은 계속적으로 유지되고 있으며 기능면에 있어서 상용 운영체제가 가지고 있는 거의 대부분의 기능을 수용하고 있고 성능 면에서도 우월성을 가지고 있습니다. 현재에도 계속적인 기능추가와 안정화가 이루어지고 있으며 누구나 자발적으로 참여하고 발전시키고 있는 것입니다.

2) 발전과정
모든 응용프로그램의 기능 및 활용은 운영체제의 기능에 종속되기 때문에 운영체제가 기능이나 성능면에 있어서 제한적이라면 응용프로그램의 질도 그다지 높지는 않을 것입니다. 리눅스가 폭발적으로 인기를 얻기 전까지 또는 요즘도 그렇지만 일반인들에 대한 리눅스의 생각이 이런 것 이었습니다. 쉽게 말하면 기능이나 성능에 있어서 유료 보다 좋지 못하고 믿지 못한다는 것이었습니다. 그러나 리눅스의 성능이나 안정성은 실제 리눅스로 어떠한 서비스를 운영한 기술자, 일반인, 업체 등에 의해서 확인되고 있습니다. 단순히 상용 운영체제를 개발하는 회사의 마케팅 노력이 아닌 실제 운영의 결과를 토대로 장점이 알려지기 시작했기 때문에 어떠한 운영체제에 비해 실제적일 수밖에 없는 것입니다.

최초의 탄생이후 발전방법은 변하지 않았지만 좀 더 많은 기술자들이 참여한다는 점과 이제는 업체의 지원을 받아서 개발을 한다거나 또는 업체가 직접 일부분을 개발한다거나 하는 그러한 방향으로 개발방법이 확장되었다는 점이 발전과정중의 특징이라고 볼 수 있습니다. 또 하나의 특징은 기존의 주요한 소프트웨어 개발업체들에서도 리눅스용 응용프로그램의 개발에 상당한 노력을 한다는 점입니다. 소프트웨어 회사에서는 해당 프로그램을 만들어서 수익이 나지 않는다면 절대로 비용투자를 하며 개발에 매달리지는 않을 것입니다. 그러나 개발을 하기 시작했다는 것은 자신들의 프로그램이 팔릴 정도로 리눅스가 많이 확대되고 활성화 되었다는 것을 업계가 인정했다고 볼 수 있습니다.

리눅스는 이제 두 가지 의미로 사용되고 있습니다. 하나는 운영체제자체로서의 리눅스를 의미하고 또 하나는 리눅스를 활용할 수 있도록 잘 묶어놓은 배포판을 의미합니다. 배포판은 리눅스운영체제와 그밖에 여러 가지 유틸리티 응용프로그램 등을 하나의 설치프로그램을 사용하여 편리하게 설치하여 운용할 수 있도록 만들어놓은 패키지 묶음을 말합니다. 다음 그림을 보면 의미를 명확하게 알 수 있습니다.

배포판은 RedHat Linux 계열과 Debian GNU/Linux 계열 등으로 나뉠수 있습니다. 일반인들도 손쉽게 설치가 가능할 정도로 설치와 운영이 가능해지고 있으며 좀 더 그래픽적인 부분을 원하는 사용자들을 위한 배포판도 마련이 되어 있어서 자신의 구미에 맞는 배포판을 선택하는데 어려움이 없을 것입니다.

일반적으로 리눅스는 유닉스와 같은 계열로 인식되어서 일반사용자들이 접근하기 힘들다는 선입견을 가지고 있지만 이제는 이러한 생각이 바뀌고 있습니다. 리눅스가 다른 상용운영체제와는 다른 성격을 가지고 있는 점은 바로 자신이 원하는 기능을 포함하는 배포판 등의 제작이 가능하다는 점입니다. 현재까지 전 세계적으로 수많은 배포판들이 나오고 있기 때문에 자신의 업무성격에 맞는 것을 찾아서 사용한다면 작업을 좀 더 수월하게 할 수 있을 것입니다.

운영체제의 핵심부분을 커널이라고 부르는데 현재 리눅스 커널 버전은 2.4 버전입니다. 최초 세상에 나올 때 0.01 버전으로 시작한 것에 비해서 괄목할만한 성장을 했다고 볼 수 있습니다. 그러나 단순히 버전이 올라갔다고 해서 좋다고 볼 수 없기 때문에 그 내부의 기능이 어느 정도 유용하느냐가 문제가 될 수 있습니다. 커널 2.4 버전은 엔터프라이즈급의 성능을 발휘하거나 활용하기 위해서 많은 기능들이 추가되어졌습니다. 리눅스가 매우 다양한 부분에서 즉 아주 적은 사양의 시스템(임베디드시스템)에서부터 대형시스템(메인프레임)까지 지원되고 있기 때문에 어떤 특정한 하드웨어나 플랫폼에 종속된 형태로 개발되어지지는 않았습니다. 그러나 그전까지의 개발방향이그림 리눅스의 구성


주로 소규모 서버시스템 등에 집중하고 있었다면 요즘의 커널작업은 이러한 대형시스템 등에도 원할한 성능이 지원될 수 있도록 하고 또한 추가적으로 그러한 대형시스템의 부가장치들에 대한 지원도 포함될 수 있도록 하는 쪽으로 흘러가고 있기 때문에 커널의 이러한 변화는 필수적이라고 볼 수 있습니다. 물론 적은 사양의 시스템도 사용이 가능하도록 하며 새롭게 나타나는 플랫폼에서도 지원이 될 수 있도록 많은 작업들이 병행해서 진행되고 있습니다.

리눅스를 지원하는 상용프로그램들의 수도 급격이 늘어나고 있는 추세에 있기 때문에 기업의 업무에 리눅스를 적용하는 것도 손쉬운 작업이 될 수 있습니다. 지금까지는 운영체제와 그 외 주변적인 유틸리티 또는 GNU 프로그램들 또는 공개 프로젝트 프로그램들이 대부분이었지만 최근 2년간 많은 업체들에서 나온 대부분의 소프트웨어들은 리눅스 버전을 가지고 있습니다. 특히 대형업무용 프로그램들의 리눅스 지원이 매우 가속화되어 있으며 개발 순위에 있어서도 우위를 차지하며 소프트웨어 개발회사의 주요 수입원으로 자리를 잡아가고 있는 것입니다. 그전까지의 일련의 부정적인 견해가 있었는데 주로 공개용이라는 제한점을 가진다는 점 이었습니다. 그리고 이점은 소프트웨어 개발업체로 하여금 자신의 프로그램에 대한 가치를 부여하기가 쉽지 않았습니다. 그러나 이점은 이제 거의 없어져서 소프트웨어업체에서도 리눅스용에서 수익의 일부를 얻을 수 있을 정도로 시장성이 충분히 있다고 보여지고 있습니다. 더 많은 업체들이 현재도 리눅스버전으로의 포팅과 개발을 하고 있습니다.

3) 앞으로의 방향
리눅스의 활용분야는 점점 더 확대되고 있습니다. 기존의 소규모 서버시스템에서 위쪽으로는 대형데이터베이스 호스트의 운영체제로 사용하거나 아래로는 소규모 단말기 등의 임베디드 시스템에 채용될 정도로 많은 변화가 이루어지고 있는 것입니다. 서버로서의 장점은 이미 많은 업체들의 운영경험등과 소프트웨어와의 연동 등을 통하여 많이 나타나고 있기 때문에 기능상의 우위에 대해서 나열할 필요가 없을 정도가 되었습니다. 그러나 다양한 상용운영체제들이 가지는 여러 가지 그들만의 특징을 수용하기에는 아직도 갈 길이 멀다고 할 수 있겠습니다.

대형시스템에 최적화된 기능, 하드웨어의 성능에 최적화, 응용소프트웨어에 대한 충분한 지원, 편리한 사용자 환경 등은 이미 어느 정도의 성과를 나타내고 있으며 다양한 시도와 연구가 계속되고 있습니다. 그리고 이러한 기능들이 좀더 확장이 된다면 기존의 산업 분야 중에 리눅스가 잘 활용되지 않았던 분야에서의 리눅스 도입도 활발해 질 것입니다. 현재 금융등과 같은 시스템의 안정성을 최대로 활용하는 비지니스 환경에서는 도입이 더딘 편입니다만 기존의 유닉스 시스템도 채용이 쉽지 않았던 것을 생각한다면 점차적인 인식변화는 리눅스의 다양한 장점을 잘 활용하는 쪽으로 나아가게 될 것입니다.

4) 자유 소프트웨어와 오픈소스
1984년 MIT 인공 지능 연구소의 연구원이었던 리차드 스톨만은 GNU 프로젝트를 시작하였다. GNU 프로젝트의 목적은 간단히 말해 어느 누구도 소프트웨어에 대하여 비용을 지불하지 않아도 되도록 하는 것이었다. 스톨만은 실행 프로그램을 구성하는 지식이 공개되어야 한다고 생각했기 때문에 GNU 프로젝트를 시작하였다. 그렇지 않으면 소수만이 컴퓨팅을 지배하는 폐해를 낳을 것이다. 아래는 GNU 사이트에서 밝히고 있는 GNU 프로젝트의 역사이다.

GNU 프로젝트의 역사
(이하 자료 출처 : http://www.gnu.org/gnu/gnu-history.ko.html.)


GNU 프로젝트는 “GNU”(Gnu is Not Unix - ‘GNU는 유닉스가 아니다’라는 뜻의 재귀적 약어)라고 불리는 유닉스 호환 자유 소프트웨어들을 개발해 왔습니다. GNU 프로젝트에 대한 최초의 문서로는 본 프로젝트의 창립자인 리차드 스톨만의 GNU 선언문이 있으며, 다른 언어로 옮겨진 번역문으로도 참고할 수 있습니다. 또한, 1983년에 씌어진 발기문도 참고할 수 있습니다.

우리가 사용하는 ‘자유’의 의미는 금전적인 측면의 자유가 아닌 구속되지 않는다는 관점에서의 자유를 의미합니다. 따라서 GNU 소프트웨어를 사용하기 위해서 지불된 비용의 유무에 상관없이 일단 소프트웨어를 입수한 뒤에는 다음과 같은 세 가지 종류의 자유가 실질적으로 보장됩니다.

첫째, 프로그램을 복제(copying)하고 친구나 동료와 함께 이를 공유할 수 있는 자유
둘째, 소스 코드를 원용해서 이를 개작(modification)할 수 있는 자유
셋째, 개작된 프로그램을 배포(distribution)할 수 있는 자유

이러한 자유의 보장은 결국 공동체 전체의 발전에 기여하게 될 것입니다.(GNU 소프트웨어를 배포할 경우, 배포본 제작에 소요된 경비를 충당하기 위해서 이를 적절한 가격에 판매할 수 있습니다.)

GNU 프로젝트는 초기의 컴퓨터 공동체 안에 충만해 있던 호의적인 상호 협력의 정신을 재건하기 위한 구체적인 실현 방법으로 1983년에 시작되었으며, 이는 독점 소프트웨어의 소유자들이 만든 장벽들을 제거함으로써 상호 협력의 풍토를 다시 한 번 부활시키는 것을 그 목적으로 합니다.

리차드 스톨만이 MIT에서 직업적인 연구활동을 시작했던 1971년에 그는 자유 소프트웨어만을 사용하는 연구 그룹에서 일하게 되었는데, 그 시절은 상업적인 컴퓨터 회사들조차도 자유 소프트웨어를 배포하던 때였으므로 프로그래머들은 아무런 제약 없이 서로 협력할 수 있었습니다

그러나 1980년대에 이르러 거의 모든 소프트웨어들은 소유와 독점에 관한 법률에 의해서 제한되었으며, 소유권자들은 소프트웨어의 자유로운 이용을 통한 사용자들의 상호 협력을 그들의 권리를 내세워서 금지시켰습니다. 바로 이것이 GNU 프로젝트가 시작된 이유였습니다.

모든 컴퓨터 사용자들은 운영체제가 필요합니다. 만약 자유롭게 사용할 수 있는 운영체제가 없다면 컴퓨터를 사용하고자 하는 모든 사람들은 독점적인 상용 운영체제를 이용할 수밖에 없을 것입니다. 따라서 자유 소프트웨어에 대한 첫 번째 과제는 자유 운영체제를 만드는 것이었습니다.

운영체제는 단순히 커널만을 의미하는 것이 아닙니다. 운영체제에는 컴파일러와 문서 편집기, 조판 프로그램, 메일 소프트웨어와 같은 다양한 종류의 소프트웨어들이 통합되어 있어야 합니다. 따라서 완성된 운영체제를 만든다는 것은 무척이나 방대한 작업이며 많은 세월이 필요한 일입니다.

우리가 구상했던 운영체제를 유닉스와 호환되도록 결정했던 이유는 유닉스의 설계 방식에 대한 전반적인 우수성과 이식성이 이미 충분히 증명되었기 때문이고, 호환성을 통해서 많은 유닉스 사용자들이 보다 쉽게 GNU 환경으로 적응할 수 있도록 하기 위해서입니다.

자유 운영체제에 대한 우리의 첫 번째 계획은 1990년대에 와서 실현되었습니다. 커널을 제외한 주요 부분들을 새롭게 작성하고 취합하던 과정에서 우리는 리누스 토발즈(Linus Tovalds)에 의해서 리눅스가 개발되고 있다는 사실을 알게 되었고, 리눅스는 곧 GNU와 합류하게 되었습니다. 자유 소프트웨어인 리눅스 커널과의 결합으로 GNU 시스템은 독립된 운영체제로서의 완성된 모습을 갖출 수 있었고 슬랙웨어와 데비안, 레드햇과 같은 GNU 시스템에 기반한 많은 운영체제들이 이제는 수십만에 달하는 사용자를 갖게 되었습니다.

그러나, GNU 프로젝트가 단지 운영체제의 개발에만 국한되는 것은 아닙니다. 우리의 목표는 수요가 있는 모든 부문의 자유 소프트웨어를 제공하는 것입니다. 응용 소프트웨어인 스프레드시트가 이미 활용되고 있으며 GNU Emacs를 몇년 안에 WYSIWYG 형태의 완벽한 탁상 출판 시스템으로 확장시킬 계획입니다.

일반인들을 위한 소프트웨어 역시 마다하지 않을 것입니다. GNU 시스템에 익숙하지 않은 초보자들을 위해서 GNOME과 같은 그래픽 환경의 간편한 사용자 인터페이스에 대한 개발이 이미 진행되고 있습니다.

현재 활용될 수 있는 몇 종류의 게임과 같이 삶의 활력소가 될 수 있는 다양한 종류의 소프트웨어 또한 준비되고 있으며, 이는 우리가 갖고 있는 또 하나의 목표이기도 합니다.

그렇다면, 자유 소프트웨어는 어느 한계까지 발전할 수 있을까요? 특허 제도와 같은 법률적 강제 장치가 자유 소프트웨어를 전면적으로 금지시키지 않는 한 그 가능성은 무한하다고 생각합니다. 우리의 궁극적인 목표는 컴퓨터 사용자들이 희망하는 어떠한 형태의 작업도 완벽하게 실현시킬 수 있는 자유 소프트웨어를 제공하는 것이며, 그것은 곧 소프트웨어에 있어서 독점이라는 해악을 영원히 사라지게 만들 것입니다.(Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA) (계속)

2005-12-28 18:06:01

의견글쓰기 프린트하기 메일로 돌려보기
이 글에 대한 의견보기  다른글 의견보기
아직 올라온 의견글이 없습니다


| 목록보기 | 윗글 | 아랫글 |

(구)한국노동이론정책연구소   (100-272) 서울시 중구 필동2가 128-11 상전빌딩 301호   Tel.(02)2277-7957(팩스겸용)