오늘:
2,689
어제:
2,285
전체:
3,222,750

오픈소스 이야기

조회 수 610 추천 수 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
번호 제목 글쓴이 날짜 조회 수
공지 오픈소스 이야기 게시판 이용안내 3 file Kevin 2018.04.13 1780
82 2015년 주목받은 신인 오픈소스 SW 11선 1 행복한펭귄 2016.03.23 6094
81 깃허브, 오픈소스 소식 알리는 팟캐스트 ‘온에어’ 행복한펭귄 2016.03.23 5854
80 리누스 토르발즈 기조연설 (리눅스 25년을 말하다) 2 행복한펭귄 2016.05.13 7031
79 꾸준히, 자유롭게, 즐겁게 : 한국 오픈 소스 개발자들 이야기 2 행복한펭귄 2016.08.24 5542
78 왜 굳이 리눅스를 써야하나? 행복한펭귄 2016.08.31 5809
77 리누스 토발즈 강연 The mind behind linux 행복한펭귄 2017.01.19 5455
76 리눅스 생존 가이드 (리눅스 데스크탑 적응기) 2 file 행복한펭귄 2017.01.25 7346
75 자유 소프트웨어 재단을 아시나요? 1 Kevin 2018.04.13 478
74 GNU Project - ‘GNU’s Not Unix 1 Kevin 2018.04.13 497
» 리차드 스톨만과 자유소프트웨어 이야기 1 Kevin 2018.04.13 610
72 라이온스 교수의 유닉스 해설서 1 Kevin 2018.04.13 530
71 BSD 유닉스 1화 – UC 버클리로 간 유닉스 코드 1 Kevin 2018.04.13 669
70 BSD 유닉스 2화 – vi 에디터의 탄생 1 Kevin 2018.04.13 1094
69 BSD 유닉스 3화 – BSD 유닉스 시작 1 Kevin 2018.04.13 538
68 BSD 유닉스 4화 – CSRG(Computer Systems Research Group) 결성 1 Kevin 2018.04.13 405
67 BSD 유닉스 5화 – TCP/IP 개발 1 Kevin 2018.04.13 570
66 BSD 유닉스 6화 – 자유로의 투쟁 2 Kevin 2018.04.13 572
65 해커문화의 탄생 1 Kevin 2018.04.13 562
64 유닉스 철학 - 함께 동작할 수 있는 프로그램을 만들 것 3 Kevin 2018.04.13 810
63 오픈소스에 대한 다큐멘터리 Revolution OS 1 file Kevin 2018.04.13 959
Board Pagination Prev 1 2 3 4 ... 5 Next
/ 5
CLOSE