빌 조이는 내가 가장 존경하는 개발자이자, 컴퓨터 과학자이다.

빌 조이의 유명한 업적들 몇 가지를 나열하자면 다음과 같다.

  • VI의 개발(1976년)
  • SUN Microsystems 의 공동 창업자(1982년)
  • BSD Unix 개발자 중 하나
  • Java Language
    • Java Language Specification을 보면 항상 그의 이름이 James Gosling 다음에 나온다.

From: 아웃라이어

이것은 최초로 카드시스템에서 공유시스템으로 전환한 미시건 대학에서 벌어진 일이다. 1967년에 공유시스템의 프로토타입이 건설되어 작동하기 시작했는데, 미시건 대학은 1970년대 초반에 백여 명이 컴퓨터센터에서 한꺼번에 프로그래밍을 할 수 있는 여력을 갖췄다. 컴퓨터 시스템의 체계를 설정하던 초창기 무렵의 개척자 중 한 명인 마이크 알렉산더(Mike Alexander)는 이렇게 말한다.

"60년대 말과 70년대 초에 미시건과 비슷한 수준에 있던 학교가 또 있었는지 모르겠군요. MIT나 카네기 멜론, 다트머스 정도라면 그럴 수도 있겠죠. 그밖에는 생각나지 않네요."

이것이 1971년 가을, 빌 조이가 앤 아버 캠퍼스에서 만난 기회였다. 1

  • 행운 1: 당시 지구상에서 몇 군데 안 되는 프로그래밍 연습에 최적인 미시건 대학교로 빌 조이는 진학했다.

"저는 북쪽 캠퍼스 쪽에 살았고 컴퓨터센터는 남쪽 캠퍼스에 있었어요. 제가 그곳에서 몇 시간을 보냈느냐고요? 이루 말할 수 없을 정도였죠. 컴퓨터센터는 24시간 열려 있었고, 저는 밤새 그곳에 있다가 아침이면 집으로 가곤 했습니다. 그 시절에는 강의실보다 컴퓨터센터에서 더 많은 시간을 보냈어요. 그곳에 있는 사람들 모두가 수업에 출석하지 못했거나 수강신청을 했다는 사실조차 잊고 있다가 뒤늦게 깨닫는 악몽을 꾸곤 했죠. 그런데 한 가지 문제가 있었습니다. 학교 측이 학생들에게 돈을 내고 컴퓨터를 사용하도록 했거든요. 시간이 지나면 못쓰게 되죠. 자리에 앉으면 학생은 얼마동안 컴퓨터를 쓸 계획인지 컴퓨터에 입력해야 합니다. 만약 한 시간이 허락되면 그 시간밖에 사용할 수 없었죠."

그는 추억을 떠올리며 웃었다.

"그런데 누군가가 시간을 입력하라는 'time equals'라는 질문 옆에 글자를 써넣으면, 가령 't equals k' 같은 명령어를 넣으면 시간이 줄어들지 않는다는 사실을 발견했어요. 프로그램 버그였죠. 덕분에 시간에 쫒기지 않고 컴퓨터를 마음껏 사용할 수 있었습니다." 2

  • 행운 2: 컴퓨터센터가 24시간 오픈되어 있었다.
  • 행운 3: 컴퓨터시스템에 버그가 있어 엄청나게 많은 시간을 프로그래밍에 사용할 수 있었다.

"미시건에서 하루에 8~10 시간이나 프로그래밍을 했어요. 버클리에 있을 때는 밤낮으로 프로그래밍을 했죠. 집에 단말기를 갖다 놓고 새벽 두세 시까지 하다가 키보드 위에서 잠들어버린 적도 많았죠. 그러면 어떻게 되는지 아세요? 키가 계속 눌려 있으면 삐, 삐, 삐 하는 소리가 나죠. 그렇게 세 번쯤 키보드에 머리를 박고 나면 침대로 갑니다. 버클리에 갔을 때도 제 실력은 모자랐어요. 그곳에서 2년을 보내며 기술을 갈고닦았죠. 30년을 넘어 지금까지 사용되는 프로그램을 만든 것이 그때의 일입니다."

그는 말을 멈추고 잠시 암산을 했다.

"1971년에 미시건 대학에 입학해 2학년이 되기 전에 프로그래밍을 시작했고 버클리에서 밤낮으로 프로그래밍을 했던 첫해 여름을 추가하면 5년쯤 되네요. 아, 미시건에서의 새내기 시절은 치지 않았군요. 그러면 얼추 1만 시간은 되는 것 같네요." 3

말콤 글래드웰은 빌 조이에 대해 다음과 같이 평한다.

결국 엄청난 연습을 할 수 있었던 조이는 유닉스 코드를 다시 쓰는 문제가 불거졌을 때 그것을 맡을 수 있었다. 물론 조이는 명석했고 무엇보다 배우고 싶어 했다. 이것이 큰 부분을 차지하긴 하지만, 그가 전문가가 될 수 있었던 것은 전문가가 되기 위한 기회가 주어졌기 때문이다. 3

From: 운영체제 아주 쉬운 세 가지 이야기

운영체제 아주 쉬운 세 가지 이야기에서는 "여담: UNIX의 중요성"이라는 쪽글에서 Bill Joy를 다음과 같이 언급한다.

코드를 쉽게 접할 수 있고 가독성이 좋았다는 것도 매우 중요한 특징이다. C언어로 작성된 아름답고 작은 크기의 커널은 많은 사람들이 커널에 새로운 기능과 멋진 특징을 추가할 수 있게 하였다. 예를 들어, Bill Joy가 이끌었던 Berkeley의 사업화 그룹은 환상적인 배포판(Berkeley Systems Distribution, BSD)을 만들었다. 이 배포판은 발전된 가상 메모리, 파일 시스템 및 네트워킹 서브시스템을 가지고 있었다. Joy는 나중에 Sun Microsystems를 설립하였다. 4

참고문헌

  • 아웃라이어 / 말콤 글래드웰 저/노정태 역 / 김영사 / 1판 128쇄 2014년 06월 28일 / 원제 : Outliers
  • 운영체제 아주 쉬운 세 가지 이야기 [제2판] / Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-dusseau 공저 / 원유집, 박민규, 이성진 공역 / 홍릉 / 제2판 발행: 2020년 09월 10일 / 원제: Operating Systems: Three Easy Pieces

주석

  1. 아웃라이어. 2장. 61쪽. 

  2. 아웃라이어. 2장. 62쪽. 

  3. 아웃라이어. 2장. 63쪽.  2

  4. 운영체제 아주 쉬운 세 가지 이야기. 2.6장. 17쪽.