켄 톰슨(왼쪽)과 데니스 리치(오른쪽)​*​

처음부터 끝까지 자기 손으로 작성하지 않은 코드는 믿으면 안 된다. (특히 나 같은 사람을 직원으로 둔 회사에서 나온 코드라면 더욱 그러하다.)
– 켄 톰슨​1​

초기의 유닉스 작업을 두고, 그것이 마치 회사의 눈을 피해 몇 명이 몰래 마음대로 진행한 일이라는 인상을 가진 이들이 있다. 그것은 틀린 생각이다.
– 데니스 리치​2​

1983년 튜링상 수상 강연 중에서

탁자 위에는 두 장의 종이가 나란히 펼쳐져 있었다. 리치는 팔짱을 끼고 오른손으로는 입과 턱을 감싼 채로 신기한 듯 종이를 계속 쳐다보았다. 놀라우면서도 재미있었다. 어떻게 두 개가 똑같을 수 있단 말인가? 왼쪽에 놓인 종이에는 그가 작성한 코드가 인쇄되어 있었고, 오른쪽에 놓인 종이에는 톰슨이 작성한 코드가 인쇄되어 있었다. 어셈블리어로 작성한 두 개의 코드는 완벽히 일치했다.

톰슨과 리치는 함께 유닉스 개발 작업을 하고 있었다. 두 사람은 멀틱스 개발팀에서 처음 만났지만 그 당시에는 서로를 잘 알지 못했다. 하지만 톰슨이 혼자서 운영체제를 만들려고 할 때 리치는 흥미를 느꼈다. 리치는 유닉스의 구조 설계에 참여했고 입출력 기능을 프로그래밍했다. 두 사람은 배경이 사뭇 달랐지만 서로 통하는 데가 있었다. 이심전심 같은 것이 있었다.

유닉스 개발은 소수의 인원에 의해 이루어지고 있었으므로 최대한 효율적으로 일할 필요가 있었다. 그래서 일이 겹치지 않도록 조심했지만 세상 일이 어디 뜻대로만 되겠는가. 항상 ‘아차’하는 상황이 생기기 마련이다. 지금도 그러했다. 같은 기능을 하는 함수를 두 사람이 따로 작성하고 말았다. 이런 일이 벌어지면 결국 어느 하나를 선택해야 하는데, 한 사람은 헛수고했다는 실망감을 피하기 어렵다.

하지만 이번은 달랐다. 비록 20줄밖에 안 되는 어셈블리 코드였지만 한 글자도 틀리지 않고 완전히 똑같았다. 어느 하나를 버려야 한다는 미안함을 느낄 필요가 없었다.


“리치! 뭐 하고 있나?”

귀 익은 목소리에 리치는 웃음 띤 얼굴을 돌려 뒤를 쳐다보았다. 톰슨이 약간은 골이 나 있는 표정으로 전산실에 들어와 있었다.

“아. 그냥 코드 리뷰 중이었어. 그런데 무슨 일이 있나? 얼굴이 왜 그래?”

“나한테 좋은 소식과 나쁜 소식이 있는데 어느 것부터 듣고 싶나?”

리치는 두 손을 호주머니에 찌르며 답했다. “좋은 소식부터. 하하하.”

“좋아. 좋은 소식부터 말하지. 내가 어제 스페이스 트래블Space travel 기록을 깼다네. 이제 다시 내가 우리 연구소에서 최고야.”

톰슨의 자부심 가득 찬 표정에 리치는 킥킥거렸다. “축하해. 한 턱 쏴야지. 자, 그러면 이제 나쁜 소식은?”

갑자기 톰슨의 얼굴이 수심과 분노로 채워졌다. “젠장. 우리가 요청한 PDP-11 구매 건이 또 반려되었어.”

“뭐라고? 또? 아니 그거 한 대를 못 사주나?” 리치의 목소리도 커졌다.

벌써 지난 몇 달 동안 톰슨은 PDP-11 컴퓨터를 구하기 위해 회사에 구매 신청서를 여러 번 제출했다. 원래 톰슨이 처음 사용했던 기계는 PDP-7 컴퓨터였다. 아무도 사용하지 않아서 구석에 처박혀 있던 기계였기 때문에 톰슨은 누구의 눈치도 보지 않고 마음껏 사용했다. 하지만 그 PDP-7 컴퓨터는 다른 부서의 소유였기 때문에 언제 뺏어갈지 알 수 없었다. 톰슨은 자신의 부서장에게 그 기계를 넘겨받자고 말했지만 면박만 당했다. 기계를 놓을 자리가 없다는 이유에서였다.

결국 톰슨은 회사에 새로운 기계를 구매해달라는 요청을 하기로 마음 먹었다. 그래서 괜찮은 컴퓨터들을 조사하고 공급업체를 불러 상담까지 하고 구매 신청서를 만들어 제출했지만 한참이 지나서 돌아온 대답은 언제나 “안 돼”였다. 황당한 것은 그 이유가 컴퓨터와는 하등의 상관이 없다는 점이었다. 멀틱스Multics에 크게 덴 관리자들은 명시적으로 드러내지는 않았지만 컴퓨터와 관련된 일은 안 하려는 것이 분명했다.​3​

“뭐 좀 좋은 방법이 없을까?” 톰슨은 초조했다. 이러다가 기껏 만들어 놓았던 유닉스가 사장되어 버리는 것이 아닌지 그는 걱정되었다. 리치도 톰슨의 불안함에 전염되어 같이 초조한 마음이 들었다.

“여기 있었군!” 갑자기 오사나가 전산실로 뛰어 들어오더니 들뜬 목소리로 외쳤다. 리치와 톰슨은 무슨 일인가 하고 쳐다보았다. 오사나도 역시 유닉스 개발에 발을 담그고 있는 동료였다. 그는 문서처리에 유닉스를 사용하고 싶어 했다.

“깜짝 놀랄 일이 벌어졌어. 드디어 물주가 나타났단 말이야.”

리치와 톰슨은 두 눈이 번쩍 띄었다. “뭐라고? 누군데?”

오사나는 의기양양한 표정으로 웃으며 말했다. “아니 글쎄, 심리 연구소에서 자기들 예산을 내놓겠다고 나섰어. 그래서 위에서 발칵 뒤집어졌다는데! 자. 이제 PDP-11과 만날 준비를 하세요.”

리치와 톰슨은 조금은 벙찐 얼굴로 서로를 쳐다보았다.

1 2 3 4 5 6 7