21. 자유 소프트웨어 재단

자유 소프트웨어 재단
리차드 스톨만(이하 RMS)이 GNU 이맥스 편집기를 공개한 후, GNU 프로젝트에 참여하는 사람들이 생겨났다.

이후 자유 소프트웨어를 개발과 이용을 장려하기 위해 1985년 자유 소프트웨어 재단(FSF: Free Software Foundation)을 설립한다.

FSF는 이맥스 편집기 배포 사업과 메뉴얼 판매등 여러 사업을 진행했고 기부금도 받기 시작했다.

“이번에 기부금으로 유닉스 시스템을 보냈어요. ”
“AT&T 유닉스는 독점 소프트웨어인데, 우리가 유닉스에서 자유 소프트웨어를 만들어야 할까?”

“유닉스에서 구현하면 우리가 만든 자유 소프트웨어를 유닉스에서 사용할 수 있잖아요”
“하지만, 자유 소프트웨어를 독점 소프트웨어인 유닉스에서 만드는 것은 윤리적인 문제가 있어…”

“그래, 우리가 폭력에 대해 자기방어가 필요하듯이, 독점 소프트웨어를 막을 대체물을 개발해야한다면 독점 소프트웨어 사용도 정당화할 수 있지. 자, 기증 받은 유닉스 컴퓨터도 개발에 사용합시다.”

GCC 출시
FSF는 기부금과 여러 수익을 바탕으로 개발자를 고용했는데, 이들은 여러 종류의 GNU 소프트웨어 패키지를 만들고 관리했다. GNU 컴파일러 모음(GCC)개발도 다시 진행할 수 있었고, 1987년 3월 첫번째 버전을 출시한다.

GNU C 라이브러리와 배시 쉘 개발

1998년 당시 15세였던 롤런드 맥 그래스(Roland McGrath)도 FSF에 채용되어 glibc개발을 시작하고[3], 같은해에 첫번째 버전을 릴리스한다.

브라이언 폭스는 AT&T 유닉스에서 사용되고 있는 본 셸을 대치하기 위해 배시 셸(Bash shell)을 개발했는데, 이렇게 만들어진 GNU C 라이브러리와 배시 셸은 리눅스에서 사용되었다. 이후, GNU 프로젝트는 GNU tar, GDB, GNU Make를 개발했다. gzip의 경우 LZW의 특허 문제를 피하기 위해 새롭게 개발한 압축 프로그램이였다,

“LZW 특허 때문에 자유 소프트웨어 진영에 압축 프로그램이 없다니… 자 gzip을 만들자!”

이처럼 RMS는 FSF지원 아래 부족한 자유 소프트웨어를 하나 하나 개발하기 시작하였고, 1990년 마침내 꿈에 그리던 OS 커널 개발에 착수한다.

“이제 커널을 개발할 때가 온 것 같다.”

Qt의 자유 소프트웨어 전환
데스크탑 진영에도 자유 소프트웨어 바람이 불었는데, 당시 독점 소프트웨어였던 CDE 데스크탑과 이를 구현한 모티프를 대체할 툴킷을 찾기 시작했다. 그 결과, 1996년 KDE 공동체가 생겨났고, Qt GUI 툴킷을 이용하여 KDE 데스크탑을 개발하기 시작했다. Qt는 소스코드가 공개되어 있었지만 2차 저작을 허용하지 않아 자유 소프트웨어 진영으로 부터 비판을 받았다.

“소스코드가 공개되었다고 모두 자유 소프트웨어는 아니지. 그놈(GNOME) 공동체와 함께 Qt의 자유 소프트웨어 버전을 만들어야겠다.”

Qt 사용을 반대해온 사람들이 그놈 공동체를 만들었고 FSF와 함께 하모니라는 Qt의 자유 소프트웨어 버전을 만들기 시작한다.

Qt를 만든 Haavard Nord와 Eirik Chambe-Eng

“그 이야기 들었어? FSF와 GNOME이 하모니라는 Qt 호환 GUI 툴킷을 만든다는 소식”
“이런 RMS가 라이선스 문제로 계속 뭐라하더니만”

결국, 2000년 Qt도 GPL 라이선스를 지원하기로 결정한다.

이처럼 RMS는 FSF지원 아래 부족한 자유 소프트웨어를 하나 하나 개발하기 시작하고, 회사들을 압박해서 독점 소프트웨어를 자유 소프트웨어로 만들었다.

참고

  1. 리차드 스톨만, GNU 운영체제와 자유 소프트웨어 운동, 오픈소스 혁명의 목소리, 한빛출판사, 2013
  2. History of free and open-source software, Wikipedia
  3. Roland McGrath steps down as glibc maintainer after 30 years

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

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

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)을 소개합니다.