80년대와 90년대 대학에서 컴퓨터과학을 공부한 사람들이라면 추억에 잠길 수 있는 책이다. 저자인 브라이언 커니핸은 프로그래밍 언어인 ‘C’를 만든 데니스 리치와 함께 C 해설서를 발간, 많은 프로그래머들이 기억하는 사람이다.

이 책은 지난해 유닉스 탄생 50주년을 맞아(유닉스의 프로토타입은 1969년 만들었다) 유닉스의 탄생과 발전 과정, 그 개발 현장에 있던 사람들의 이야기를 되돌아보고 벨 연구소의 조직과 문화를 소개하는 책이다. 

현대 컴퓨팅 기술에서 유닉스 운영체제가 왜 커다란 발자취를 남기고 새로운 패러다임을 만들었는지를 이해하려면 만든 사람들, 이를 지원한 조직, 그리고 이어받아 발전시킨 수많은 사람들의 노력을 알아야 한다. 

간단하게 요약하기는 어렵지만 유닉스는 현재 우리가 사용하고 있는 많은 프로그래밍 방식의 기본을 만든 초석이라고 볼 수 있다. 벨 연구소에서 탄생한 유닉스는 우리가 사용하는 수십억 개 기기 대부분의 운영체제의 뿌리라고 할 수 있다. 

지금도 사용 중인 맥OS를 비롯해 리눅스, 솔라리스, AIX, HP-UX 등이 다 유닉스에서 파생된 것이고 안드로이드 역시 리눅스 커널에서 출발할 것이라 유닉스의 후손이라 볼 수 있다. 그런 측면에서 유닉스는 지금 우리가 사용하는 대부분의 컴퓨팅 기기에 그 흔적이 그래도 남아 있다. (영어 위키피디아에는 이 역사를 다이어그램으로 잘 설명하고 있다)

책에는 우리나라 얘기가 안 나오지만 유닉스는 한국의 컴퓨터 발전에도 큰 역할을 했다. 1982년 한국전자통신연구원(ETRI)와 삼성전자 등이 협력해 만든 최초의 미니컴퓨터가 바로 유닉스를 라이선스해 만든 것이다. 국내 최초의 인터넷 역시 유닉스 기기를 기반으로 구축됐다. 사실 개인적으로 나에게 가장 익숙한 운영체제 역시 유닉스이다. 

[사진:셔틀스톡]

이 책은 벨 연구소의 구성과 역사, 1127센터의 컴퓨팅 연구그룹 사람들과 특징을 소개하면서 시작한다. 그 조직이 갖고 있는 강점과 유산에 대해서는 9장에서 다시 정리해 알려주는데 관리자에게는 이 9장이 가장 중요한 내용이 될 수 있다고 생각한다. 

이후 유닉스 프로토타입을 만든 1969년에 갖고 있던 컴퓨팅 환경, 즉 CTSS와 멀틱스, 유닉스라는 이름의 유래를 거쳐 유닉스 탄생의 핵심 인물인 켄 톰프슨을 소개한다. 유닉스는 멀틱스의 문제에 불만을 가졌던 몇 사람이 만들어 낸 걸작이다. 

이후에는 1판에서 7판까지에 추가되고 새롭게 만들어 낸 다양한 프로그래밍 도구들에 대한 개발 과정과 그 중심 인물을 설명하는데 개발자가 아니라면 이 부분은 가볍게 넘어가도 된다. 

그러나 개발자들에게는 우리가 사용했던 쉘, 파이프, Yacc, Lex, Make 같은 그 많은 다양한 도구들이 유닉스 그룹에 의해서 얼마나 신속하게 열정적으로 만들어졌는지 흥미진진하게 읽을 수 있다. Nroff, Troff, Eqn 등을 읽으면서 내가 이런 문서 도구들로 논문을 쓰고 문서를 작성했던 기억이 떠올라 잠시 추억에 잠기기도 했다. 

유닉스는 처음으로 고급 언어로 작성된 운영체제다. C 언어는 바로 이 유닉스를 위해 태어났고 이후 가장 널리 사용된 언어가 되었다(가장 욕을 많이 먹는 언어이기도 하다). 이것이 바로 운영 체제가 다양한 하드웨어에 쉽게 이식돼 거의 대부분의 컴퓨터에 활용될 수 있게 된 이유다. 그 이전에는 대부분의 운영체제는 하드웨어에 종속적이었다.

또 지금 누구나 익숙하게 사용하는 계층적 파일 구조, 작은 프로그램으로 모듈화하고 프로그램을 도구로 활용하는 개념, 일반 텍스트가 표준 데이터 포맷이 되고 프로그램을 작성하는 프로그램, 특화된 언어는 모두 유닉스에서 그 개념이 탄생하거나 발전했다. 

벨 연구소 버전을 이어받아 버클리대학에서 만들어 낸 BSD 유닉스는 빌 조이라는 걸출한 소프트웨어 엔지니어 손을 통해 인터넷 표준 프로토콜인 TCP/IP를 포함한 버전이 됐고 이는 인터넷의 발전에 지대한 공헌을 했다. 뿐만 아니라 무료로 공개돼 지금의 오픈소스 문화를 만들어냈다. BSD 유닉스는 선OS가 됐고 맥OS의 기반이 됐다. 버클리 그룹은 1991년에는 벨 연구소 코드를 다 버리고 새로 작성한 버전을 발표했다. 

벨 연구소 전경. 2016년에 노키아가 알카텔-루슨트을 인수해 현재는 노키아의 자회사가 됐다. [사진:위키피디아]

벨 연구소의 유닉스 그룹은 많은 책과 소개서, 해설서를 출간하기도 해서 수많은 개발자들이 기술을 이해하고 컴퓨터 과학에 뜻을 두게 만들었다. 앞에서 말한 C 프로그래밍 언어 해설서 외에도 에이호(Aho)와 울만(Ullman)이 쓴 컴파일러 디자인 원리, 울먼과 홉크로포트의 ‘컴퓨터 알고리듬 디자인과 분석’, C++ 언어를 만든 스트롭스트룹의 C++ 관련 책들은 학교 다닐 때 다들 교재로 봤을 것이다. 

제록스의 팔로알토연구소(PARC), IBM의 왓슨 연구소와 함께 80~90년대 컴퓨팅 이론과 구현의 리더로 활동했던 벨 연구소의 역할은 이후 AT&T의 또다른 분할과 변화에 따라 규모도 축소되고 구성도 크게 달라졌으며 1127센터도 해산된다. 

그럼에도 어떻게 벨 연구소에서 유닉스가 탄생할 수 있었는지에 대해 저자는 안정적이고 문제가 풍부한 환경, 최고의 인재 채용, 기술적 관리, 협력하는 환경, 그리고 재미로 꼽는다. 

저자는 "연구 제안서가 없었고 분기 진행 보고서도 없었으며 뭔가 착수하기 전에 경영진의 허가를 구할 필요가 없었다. 벨 연구소에서 30년 넘게 일하는 동안 나는 무슨 연구를 할지 지시받은 적이 없다"고 이 조직의 강점을 한마디로 얘기하고 있다. 

1983년 컴퓨터 과학의 노벨상이라고 부르는 미국컴퓨터학회(ACM) 튜링상을 유닉스의 창시자인 켄 톰프슨과 데니스 리치에게 수여하면서 선정위원회는 다음과 같이 얘기했다고 한다. "유닉스 시스템 모델은 한 세대 동안 소프트웨어 설계자들이 프로그래밍에 관해 새로운 방식으로 생각하도록 이끌어주었습니다. 유닉스 시스템의 천재성은 프로그래머가 다른 프로그래머의 작업을 기반으로 개발할 수 있게 해주는 그 프레임워크에 있습니다."

자신이 개발자라고 생각하거나 기술 창업자라고 생각하는 사람은 이 책을 읽으면서 선배들이 어떤 철학과 노력으로 지금의 컴퓨팅 환경을 만들어 냈는가를 확인하면서 선배들의 노력에 존경을 표현해야 할 것이다. 

브라이언 커니핸 저 | 하성창 역 | 한빛미디어 | 2020년 8월 3일 펴냄

테크와 과학 그리고 디지털 산업 부문에서 꼭 읽어 볼만한 양서를 과학기술 전문서점, 책과얽힘과 함께 선정해 소개합니다.

저작권자 © 디지털투데이 (DigitalToday) 무단전재 및 재배포 금지

관련기사