메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

인물 탐방 : 현대 컴퓨터의 선구자이자 C와 유닉스의 개발자 데니스 리치(Dennis Ritchie)

한빛미디어

|

2020-08-12

|

by 한빛

11,878

데니스 리치는 1941년 9월에 태어났다. 그의 아버지인 앨리스터 리치(Alistair Ritchie)는 머리힐에 있는 벨 연구소에서 수년간 일했다. 데니스는 하버드 대학교에 진학해서 학부 때는 물리학을, 대학원에서는 응용수학을 전공했다. 그의 1968년 박사 논문 주제는 함수의 하위재귀적 계층구조(subrecursive hierarchies of functions)였는데 이 분야 전문가가 아닌 사람에게는(나를 포함해서) 난해한 주제다. [그림 3-14]는 그 논문의 일부로 흐릿한 원고 사본에서 가져왔다. 그는 자신의 진로 결정에 관해 설명하면서 다음과 같이 말했다. 

 

“학부 시절 경험으로 저는 물리학자가 될 만큼 똑똑하지 않다는 점과 컴퓨팅이 꽤 논리 정연한 학문이라는 것을 확실히 알았습니다. 대학원에서는 제가 알고리즘 이론의 전문가가 될 만큼 똑똑하지 않다는 점과 함수형 언어보다 절차적 언어를 좋아한다는 것을 분명히 알게 되었죠.” 

 

deni_fig1.jpg

[그림 3-13] 데니스 리치, 1984년경(제라드 홀즈먼 제공) 

 

deni_fig2.jpg

[그림 3-14] 데니스 리치의 박사 논문에서 발췌한 부분(컴퓨터 역사 박물관 제공) 

 

C++를 만든 비야네 스트롭스트룹이 다음처럼 말한 적이 있다. 

 

“데니스 리치가 그 10년을 난해한 수학 분야에 투자하기로 했다면 유닉스는 아직 태어나지 않았을 것입니다.” 

 

데니스는 벨 연구소에서 인턴으로 여름을 몇 번 보냈고, 1967년에 컴퓨팅 과학 연구 센터에 기술직 멤버로 합류했다. 처음 몇 년간 그는 멀틱스 개발 프로젝트에 참여했다. 앞서 이야기한 것처럼 멀틱스는 너무 야심 찬 계획이 었다. 목표를 달성하지 못하리라는 것이 분명해지면서 벨 연구소는 1969년에 발을 뺐다. 하지만 프로젝트에 참여했던 켄, 데니스와 다른 동료들은 혁신적인 운영체제를 설계하는 경험을 하는 동시에 고수준 언어 구현에 대해 깊이 이해하게 됐고, 훨씬 더 현실적인 목표에 맞춰 개발을 새로 시작할 기 회가 생겼다. 그 결과로 만들어진 것이 유닉스 운영체제와 C 프로그래밍 언어다.

 

C 프로그래밍 언어는 1970년대 초에 만들어졌고 멀틱스 구현용 고수준 언어를 다뤘던 데니스의 경험을 바탕으로 개발됐다. C 언어는 당시 컴퓨터의 성능 제약을 감안하여 다른 고수준 언어보다 크기를 훨씬 줄인 언어였다. 정말로 당시에는 복잡한 언어를 위한 복잡한 컴파일러를 지원할 만한 메모리나 처리 능력이 충분하지 않았기 때문이다. 그러한 환경 때문에 자원을 최소한으로 사용해야만 했는데, 켄과 데니스가 선호하는 간단하고 균일한 메커니즘은 이 원칙에 잘 부합했다. C 언어는 실제 컴퓨터 하드웨어에도 잘 들어 맞아서, 명확한 규칙에 따라 C 코드를 효율적으로 작동하는 좋은 어셈블리어 코드로 변환할 수 있었다. 

 

C 언어가 등장하면서 운영체제 전체를 고수준 언어로 작성할 수 있게 됐다. 1973년에는 유닉스를 원래 어셈블리어 형태에서 C 언어로 바꿔서 작성하는 작업이 완료됐다. 이 덕분에 시스템을 유지 보수하고 수정하기가 훨씬 용이해졌다. 또한 더 큰 진보는 운영체제를 원래 PDP-11 컴퓨터에서 다양한 아키텍처 기반의 다른 컴퓨터로 옮기는 일, 즉 이식(porting)이 가능해진 것이다. 시스템 코드 대부분이 C 언어로 작성됐으므로 운영체제를 이식하는 작업에는 C 컴파일러를 이식하는 것 이외에 많은 일이 필요하지 않았다. 

 

데니스는 대단히 훌륭한 테크니컬 라이터였다. 간결하고 우아한 문체, 능숙한 표현 방식, 그의 성격을 정확히 반영한 번뜩이는 재치까지 두루 갖췄다. 그와 나는 『 C 언어 프로그래밍』을 공동으로 집필했다. 1978년에 초판을, 1988년에 제 2판을 출간했으며, 지금까지 25개 이상의 언어로 번역됐다. 

 

데니스가 작성한 C 언어 레퍼런스 매뉴얼은 1988년에 처음 만들어진 C 언 어 ANSI/ISO 표준의 기초가 됐을 뿐만 아니라 이 책의 주요 부분을 차지 했다. 의심할 여지없이 C 언어와 유닉스의 성공에는 데니스의 글쓰기가 한 몫했다. 

 

데니스는 켄 톰프슨과 함께 C 언어와 유닉스에 대한 공로로 많은 상을 받았다. ACM 튜링상(1983), 미국 기술 메달(US National Medal of Technology)(1999), 일본 정보 통신상(Japan Prize for Information and Communications)(2011)을 받았고, 미국 발명가 명예의 전당National Inventors Hall of Fame (2019, 사후)에 올랐다. 

 

데니스는 수년 동안 관리직이 되는 것을 잘 피했지만, 마침내 승복하고 소프트웨어 시스템(Software Systems) 부서의 부서장이 됐고 플랜 9 운영체제를 구축하는 그룹을 관리했다. 데니스는 2007년에 관리직에서 물러나서 공식적으로 퇴직했으나, 이후에도 2011년 10월 사망하기 전까지 연구소에 거의 매일 왔다.

 

데니스는 겸손하고 마음이 넓은 사람이었고, 항상 자신이 기여한 부분은 대단치 않게 생각하면서 다른 사람에게 공을 돌렸다. 전형적인 예는 1996년 에 발표한 유닉스의 진화에 대한 회고록에 있는 감사의 글에서 볼 수 있다. 

 

“지칭하는 대상이 명확하지 않은 ‘우리’를 ‘켄 톰프슨, 그리고 제가 준 약간의 도움’으로 해석하면 대체로 맞을 것입니다.” 

 

데니스는 2011년 10월에 세상을 떠났다. 그의 가족들이 쓴 아래 편지는 벨 연구소에서 보존하고 있는 그의 홈페이지(www.bell-labs.com/usr/dmr/www)에서도 볼 수 있다. 

 

“리치 가족을 대표하여 데니스의 형제자매인 린, 존, 빌 리치가. 

우리는 여러분이 남긴 애정 어린 헌사를 읽고 우리가 얼마나 깊이 감동하고, 놀라고, 감사한지 모두에게 전하고 싶었습니다. 우리는 거듭 들려오는 다음 내용이 정녕 사실이라고 말씀드릴 수 있습니다. 

데니스는 항상 친절하고, 상냥하고, 겸손하고, 어떤 때에도 너그러움을 잃지 않는 사람이었습니다. 물론 완전히 컴퓨터 괴짜였죠. 웃음을 터뜨리게 하는 건조 한 유머 감각이 있었고 삶의 부조리에 대해 날카롭게 인식했지만, 그의 세계관에 냉소적인 시선이나 옹졸함 따위는 전혀 없었습니다. 

우리는 그를 잃게 되어 너무나 슬픕니다. 하지만 그가 세상에 얼마나 대단한 영향을 끼쳤는지, 그리고 그의 업적을 넘어서 그의 온화한 성품을 사람들이 얼마나 잘 이해하는지 깨닫게 되어 말로 표현할 수 없을 만큼 감동했습니다.” 

- 린, 존, 빌 리치 드림” 

 

유닉스의 탄생

댓글 입력
자료실