20. GNU Project

GNU Project를 시작하기로 결심한 리차드 스톨만(이하 RMS)은 1984년 1월 MIT AI Lab.을 그만두기로 결심한다.

“리차드, 정말 AI Lab. 그만두는거야?”
“응, 진정한 자유 운영체제를 만들어보려고.”

“프로젝트 이름이라도 있어?
“이름은 ‘GNU’s Not Unix;에서 따왔지.”

하지만, 난 이 운영체제를 UNIX 호환으로 만들 생각이야, 그래야 기존 유닉스 사용자가 쉽게 끌어올 수 있지. 어떤가 해커스럽지 않은가?

“커널 뿐만 아니라 어셈블러, 컴파일러, 인터프리터, 디버거, 텍스 편집기, 메일 프로그램 등 만들게 아주 많아. 어때, 프로젝트에 참여하겠나?”

“소장님, AI Lab.을 이제 떠납니다. 그동안 고마웠습니다.”
“이거 너무 아쉽네. 자네 같은 똑똑한 친구들이 많아야 인공지능 분야가 발전할텐데..”

“제가 뜻이 있어서.. 지금이 아니면, 다시 시작하기 어려울 것 같습니다.”

“내 익히 들어서 알고 있네. 자네가 원한다면 연구소 장비는 계속 사용하게나. 좋은 뜻으로 일을 그만둔다고하니 내가 도와야지.”

용기있게 AI Lab.을 나왔지만, 사실 운영체제 개발을 위해 준비된 것은 거의 없었다.

우선 소스 코드가 공개된 컴파일러를 확보하기 위해 VUCK(Free University Compiler Kit)를 개발한 앤드루 타넨바움 교수에게 메일을 보내 GNU Project에서 사용할 수 있는지 여부를 문의했다.

.

“대학은 무료지만, 컴파일러는 그렇지 못하네요. 미안하게도 제 컴파일러는 GNU Project에서 사용할 수는 없습니다.”

RMS는 GNU Project의 첫번째 프로젝트로 컴파일러를 만들기도 결심한다. 하지만, 컴파일러를 밑바닥 부터 만드는 것은 쉽지 않았고, 외부에서 컴파일러 소스코드를 입수한다.

“로렌스 리버모어 연구소가 만든 파스칼 컴파일러 소스 코드구나… 이 코드를 기반으로 C언어 프론트 엔드를 개발하자.”

RMS는 이 컴파일러에 C 언어 프론트 엔드를 추가해서 Motorola 68000 컴퓨터에 이식하기 시작했다.

“허걱 무슨 컴파일러가 파일에 있는 모든 코드를 한번에 파싱해서 명령어로 변환하지..”
“68000은 스택으로 64KB 메모리만 사용할 수 있는데…”

“안되겠다. 역시 바닥부터 컴파일러는 만들어겠다. 이름은 GCC(GNU C Compiler). 이미 C언어 프론트 엔드를 만들었으니, 이걸 재사용하면 되겠네… 하지만, 우선 에디터를 먼저 만들자.”

RMS는 1984년 9월 부터 MIT AI Lab.에서 사용되던 이맥스(Emacs) 편집기의 GNU 버전을 개발하기 시작한다.

“아니 왜 따로 에디터를 만들어? 이미 유닉스에는 vi나 ed가 있잖아?”
“난 유닉스용 텍스트 편집기에는 관심이 없거든.”

RMS는 개발한 이맥스 편집기를 ftp사이트에 올려 놓았고 $150에 이맥스 테이프를 배송하는 사업을 시작했다. 당시 수입이 없었던 RMS는 자유소프트웨어 판매를 통해 수입을 얻게 된 것이다.

“큰 돈은 아니지만, 그럭저럭 이맥스 개발은 계속할 수 있겠군.”

참고

  1. 리차드 스톨만, GNU 운영체제와 자유소프트웨어 운동, 오픈소스 혁명의 목소리, 한빛출판사, 2013

참고로, 등장 인물 간 대화는 자료를 바탕으로 재구성되었습니다.

만화 중 잘못된 부분이나 추가할 내용이 있으면 만화 원고에 직접 의견을 남겨주시면 고맙겠습니다. 그 외 전반적인 만화 후기는 블로그에 바로 답글로 남겨주세요. 다음 이야기는 자유 소프트웨어 재단(Free Software Foundation)을 소개합니다.

19. 리차드 스톨만과 자유소프트웨어 이야기

해커 집단: 유닉스 공동체와 ITS 공동체
해커 공동체는 태생적으로 두 부류로 나눌 수 있다. AT&T와 UC 버클리 대학을 근거지로 한 유닉스 공동체와 MIT AI Lab이 중심이된 ITS 공동체가 있다. 두 공동체는 서로 비슷한 부분이 많은데, 우선 초기 구성원들이 멀틱스 개발에 참여한 경험이 있다는 것과 모두 멀틱스 개발에 회의를 느끼고 독자적인 OS를 PDP-10에서 구현했다는 부분이다. 차이라고 하면, 유닉스 공동체는 기술적 진보에 영향을 주었고, ITS 공동체는 해커, 자유 소프트웨어, 위키 등 해커 문화와 철학에 영향을 주었다. 리누스 토발즈는 기술적으로는 유닉스를 참고해서 리눅스 커널을 만들었고 ITS 해커의 진정한 계승자인 리차드 스톨만(이하 RMS)의 지휘 아래 개발한 GNU 소프트웨어를 사용했다. 또한 리눅스 커널에는 GPL 라이선스가 적용되었는데, 이는 ITS 공동체으로부터 비롯된 자유 소프트웨어 철학이 반영된 결과물이다. 어찌보면 이들 두 진영이 결합한 산물이 리눅스라고 볼 수 있다. 이번 이야기에서는 ITS 공동체의 실질적인 계승자인 리차드 스톨만을 소개하려 한다.

리차드 스톨만
RMS는 이미 고등학교 때 부터 여름 캠프를 통해 컴퓨터를 접했다. 하바드대학에서 물리학을 전공하고 있었으나, 1학년이 끝날 무렵인 1971년 부터 MIT 인공지능연구소에서 프로그래머로 일하기 시작한다. 학부를 마친 그는 MIT에서 물리학 석사를 한 후, 박사학위 1년차에 결국, MIT AI Lab. 연구원으로 전향한다.

그 당시 MIT 인공지능 연구소는 DEC에서 만든 PDP-10이라는 컴퓨터를 사용하고 있었다. 이들은 DEC에서 제공하는 OS 대신 자체 개발한 ITS(Incompatible Timesharing System)라는 시분할 운영체제를 어셈블리어로 개발해서 사용하고 있었다. ITS는 현대 OS와 철학적으로 상당히 다른데, 우선 초기에 개발될 당시, 로그인 암호가 없었고, 사용자는 도움말과 소스코드를 포함해서 모든 파일 수정할 수 있었다. 이러한 ITS 공동체의 철학과 개발 문화가 나중에 자유/오픈소스 소프트웨어, 오픈 디자인, 위키 운동에 영향을 주었다[3]. 그리고, 모든 ITS 컴퓨터가 초기 인터넷의 형태인 아파넷(ARPAnet)에 연결되어 있어서 자연스럽게 해커 문화가 탄생한다.

당시 RMS도 ITS개발에 참여하고 있었다. 그러던, 어느날 제록스 레이저 프린터가 연구소에 들어왔다.

레이저 프린터의 성능은 감동적이었다. 하지만 그런 감동도 잠시뿐, 가끔 종이가 프린터에 걸리면 터미널에서는 알 수가 없었고, 걸린 종이를 빼기 전까지 모든 사람이 프린터를 사용할 수 없었다.

결국, 인쇄 명령을 내린 후에 직접 프린터 앞에 가서 출력이 완료되기까지 기다려야했다.

이 문제를 해결하기 위해 RMS은 작은 프로그램 작성하여 프린터 잼이 발생하면 모든 터미널에게 알림 메시지가 가도록 하였다.

프린터 제어 프로그램 소스 코드를 구할 수 없었기 때문에 따로 프로그램을 만들었지만, 학교내에서 상당히 유용하게 사용되었다.

이와 같은 일종의 해킹이 AI Lab의 상징이 되었고, 그들 스스로를 프로그래머 보다 해커라고 부르기를 좋아했다.

RMS는 나중에 누군가 제록스 프린터 제어 프로그램의 소스코드를 갖고 있는 사실을 알게되었다.

그리고, 직접 개발자를 찾아서 소스코드를 복사해달라고 요청했다.

그는 NDA에 사인하고 프로그램을 개발한 것이라 마음대로 소스코드를 줄 수 없었다.

RMS는 그가 개인적인 이유가 아닌 NDA로 인해 거부한 것이라서 더욱 심각하게 이 사실을 받아들였다. 이 사건은 훗날 자유소프트웨어 운동을 시작하게 되는 계기가 된다.

물론, 좋은 일도 있었다. MIT AI Lab.에 PDP-11에 도입되었을 때, PDP-10과 PDP-11과 네트워킹을 할 필요가 생겼다.

RMS는 이미 하버드대 Computer Lab에서 PDP-10용으로 네트웍 프로그램을 개발한 사실을 알고 있었다.

해커들 사이에 소스코드를 공유하는 것이 당연하던 시절이여서 쉽게 소스코드를 구한다.

그리고 새로운 기능까지 추가한다.

이처럼 1970년대 프로그래머 사이에 소스코드를 빌리는 것은 마치 이웃으로 부터 망치나 설탕을 빌리는 것과 크게 다르지 않았다.

하지만, 좋은 시절은 오래가지 않았다. 1980년대 초 PDP-10이 단종되고 해커들이 다른 회사로 옮기면서 ITS 공동체는 자연스럽게 해체되었다.

MIT AI lab.도 새롭게 DEC에서 개발한 VAX를 도입하면서 어셈블리어로 개발된 ITS를 더 이상 사용할 수 없게 되었다.

결국, ITS를 운영할 인력이 부족해지자 PDP-10에도 DEC가 개발한 OS를 설치하기로 결정한다.

하지만, DEC가 개발한 OS를 사용하려면 복사는 커녕 자료를 유출하지 않겠다는 계약 조건에 동의해야 했다.

RMS는 제록스 프린터 프로그램 소스 코드 공개 문제로 인해 이러한 비공개 협약이 어떤 결과를 가져올지 예상하고 있었다.

그는 독점 소프트웨어 체제에 합류하느냐 마느냐하는 도덕적 선택의 기로에 서게 된다.

결국, 그는 그가 오랫동안 경험한 자유 소프트웨어 대한 신념을 지키고 이를 유지할 수 있는 해커 공동체를 다시 부활시키기 위해 GNU 프로젝트를 시작하게 된다.

참고

  1. 리차드 스톨만, GNU 운영체제와 자유소프트웨어 운동, 오픈소스 혁명의 목소리, 한빛출판사, 2013
  2. Sam Williams, Free as in Freedom. 2002
  3. Incompatible Timesharing System, Wikipedia

참고로, 등장 인물 간 대화는 자료를 바탕으로 재구성되었습니다.

만화 중 잘못된 부분이나 추가할 내용이 있으면 만화 원고에 직접 의견을 남겨주시면 고맙겠습니다. 그 외 전반적인 만화 후기는 블로그에 바로 답글로 남겨주세요. 다음 이야기는 GNU Project를 소개합니다.