오픈소스 이야기

조회 수 526 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

오픈소스에 대한 이해를 만화로 쉽게 할 수 있는 블로그가 있어서 원작자 님의 허락을 얻고 공유합니다. 공유를 허락해주신 원작자님에게 감사 드립니다.
원작자 : https://joone.net/


해커 집단: 유닉스 공동체와 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

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

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

  • ?
    krhamoni 2018.04.20 19:59

    이 글을 보니 갑자기 한국의 최초 컴퓨터 도입 시기에는 어땠을지 궁금해집니다.


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 최준호 - 프로그래밍의 깊은 세계로 들어가는 길 file Kevin 2018.04.22 1138
공지 허준회 - 더 나은 세상을 위한 소통 file Kevin 2018.04.22 669
공지 류창우 - 그냥 부담 없이 취미로 2 file Kevin 2018.04.22 558
공지 이희승 - 도전과 점진적 개선, 그리고 변화에 열린 마음 1 file Kevin 2018.04.22 1164
공지 김정균 - 자신을 발전시키는 소중한 공부 file Kevin 2018.04.22 488
공지 허태준 - 가장 의미 있고 즐거운 개발 file Kevin 2018.04.22 2587
공지 오픈소스 이야기 게시판 이용안내 3 file Kevin 2018.04.13 1632
19 BSD 유닉스 3화 – BSD 유닉스 시작 1 Kevin 2018.04.13 431
18 GNU Project - ‘GNU’s Not Unix 1 Kevin 2018.04.13 428
17 라이온스 교수의 유닉스 해설서 1 Kevin 2018.04.13 425
16 Python 프로그래밍 언어 2 1 Kevin 2023.04.25 424
15 LLVM 프로젝트 (2/2) 2 Kevin 2023.01.20 424
14 월드와이드웹(WWW)의 시작 4 1 Kevin 2021.05.16 420
13 자유 소프트웨어 재단을 아시나요? 1 Kevin 2018.04.13 394
12 gpl-violations.org 1 Kevin 2022.09.02 366
11 KHTML 1 Kevin 2022.08.03 355
10 월드와이드웹(WWW)의 시작 2 Kevin 2021.02.01 354
9 GIT Kevin 2022.10.03 351
8 오픈소스는 어떻게 대세가 되었을까? 1 PEACH 2018.04.23 337
7 BSD 유닉스 4화 – CSRG(Computer Systems Research Group) 결성 1 Kevin 2018.04.13 333
6 오픈 소스 역사 게시판인가요? 2 세벌 2018.04.14 307
5 깃허브가 직접 깃허브에 오픈한 오픈소스 가이드 4 file PEACH 2018.04.19 294
4 quilt 사용하기 Kevin 2022.10.03 265
3 오픈소스 세계의 짠한 현실 2 file Kevin 2023.12.19 256
2 + 인가요? More 인가요? 1 세벌 2018.04.20 217
1 diff & patch Kevin 2022.10.03 204
Board Pagination Prev 1 ... 2 3 4 Next
/ 4
CLOSE