본문 바로가기

관심사/독후감

<브라이언 커니핸> 유닉스의 탄생

 

이 책은 유닉스의 출시 과정 뿐만 아니라 초기 컴퓨터 과학 성장에 영향을 준 기술들에 대한 이야기가 담겨있다. C 언어, 구문/어휘 분석기, Shell, grep, 파이프, 수학표기법, 이미지 그래픽 표현 방법, 형상 관리 도구, 개발 관리 도구, 함수 라이브러리 등의 시초 등에 대한 내용이 포함되어 있다.

미국의 전화전신회사인 AT&T는 20세기 초에 미국의 전화사업을 독점하고 있었다. 이 회사는 전화기 발명가인 벨이 만든 회사이다. 그리고 이 회사에서는 "통신 기술의 발전을 이끈다"는 비전을 가진 연구소인 "벨 연구소"를 운영하고 있었다.

안정적인 자금 지원을 바탕으로 벨 연구소는 원하는 연구를 자유롭게 할 수 있었다. 이로서 AT&T는 장기적인 안목을 취할 수 있었다. 연구원들이 단기간에 결과를 내지 못하거나 영영 결론을 내지 못할 분야라도 탐구할 수 있었다. 기획 단계에서 겨우 몇 달만 내다보고 다음 분기의 재무 성과를 예측하는 데 많은 노력을 쏟는 요새와는 대조적이다. 

이러한 지원 덕분에 벨 연구소는 MIT 박사 출신 등의 훌륭한 연구원들이 모이는 조직이 되었다. 그러면서 벨 연구소는 컴퓨터 과학 분야에서 필수적인 기술을 발전 시켰다. 그러면서 컴퓨터 과학에 대한 책을 다수 출판하였다. 그러면서 자연스럽게 벨 연구소 안에서 문서 작성 도구가 발전하게 되었다.

이렇게 출판된 책은 대학가에서 교재로 활용되었다. 이를 통해, 벨 연구소의 학문적 위상은 더욱 높아졌다. 어떤 과학자는 벨 연구소에 면접을 보러 갔다가, 대학 교재의 저자들이 모두 모여있는 것을 보고 입사를 결심했다는 일화도 있다. 

벨 연구소는 자유로운 분위기에서 원하는 기술 연구를 수 년간 집중적으로 수행할 수 있는 환경을 제공했다. 연구원들은 서로의 관심사와 아이디어를 공유하며, 함께 모여서 흥미로운 주제에 대해 연구를 했다. 이 과정에서 보고와 피드백은 연구 방향을 개선하고 공유하는 데 활용되었다. 

이 책을 읽으면서 벨 연구소의 실력과 문화를 동경하게 되었다. 천재들이 모여서 하고 싶은 것을 마음껏 실행하고, 지원받고, 마음 맞는 사람들과 모여서 일할 수 있다는게 좋아보였다.

근무 환경도 효율적이고, 즐거워보였다. 각 연구원들은 연구를 할 수 있는 방이 하나씩 주어졌다. 개인적인 자료를 보관하고, 몰입하고 싶을 때에는 이 곳에서 일을 한다. 그러나 "유닉스의 방"이라는 연구실에서 모여서 연구에 대한 이야기를 나누며 즐겁게 일하는 모습이 인상깊었다. 사람들이 모여들다보니 유닉스의 방에 여러 원두와 커피 제조기가 구비되고, 이를 나눠먹는 모습도 재미있어보였다. 

증명사진 대신 미키마우스를 붙여놓은 사원증

시대와 지역을 불문하고 컴퓨터를 좋아하는 긱한 엔지니어는 모두 똑같은 것 같다. 이 곳의 사람들도 반항적이고, 장난기가 많은 과학자들이 모여있었다. 벨 연구소는 격식에 얽매이지 않는 곳이었는데 어느날 보안상의 이유로 사원증을 꼭 매고 다녀야한다는 사내 지침이 내려온 적이 있다 .이 때에는 연구원들이 증명사진 대신 캐릭터 그림을 붙여놓은 사원증을 매며 틀에 반항하던 일화도 있다. 

유닉스는 이런 문화 속에서 자연스럽게 탄생하게 되었다. 시초는 AT&T와 다른 두개의 회사와 함께 다양한 메인 프레임에서 동작할 수 있는 운영체제를 만들고자한 프로젝트인 멀틱스였다. 그러나 프로젝트는 무산되었다. 그러다 켄이라는 과학자가 아내와 돌쟁이 아이가 장인댁에 가있는 시간을 틈내어, 2주만에 유닉스를 만들어냈다. 개발 덕후가 사이드 프로젝트로 운영체제를 만들어낸 것처럼 느껴져서, 이 일화가 재미있었다. 

유닉스가 메인 프레임 컴퓨터가 아니라 소형 컴퓨터에서 작동할 수 있게 개발 된 배경도 재미있다. 유닉스 프로젝트는 초반에 연구소의 지원을 받지 못했다. 그래서 엔지니어들은 문서 프로그램을 필요로 하는 부서에게 문서 프로그램을 구현해주겠다고 지원하게 된다. 엔지니어들은 문서 프로그램 개발을 한다는 것을 빌미로 소형 컴퓨터를 지원받을 수 있었다. 그래서 대외적으로는 문서 프로그램을 개발한다고 하고, 실제로 목표로는 운영체제를 개발하였다.

당시에 메인프레임 서버를 지원받지 못해서, 엔지니어들은 소형 컴퓨터에서 동작하는 운영체제를 개발할 수 밖에 없었다. 이러한 제약사항 덕분에 유닉스는 소형 컴퓨터에서 동작하는 첫번째 운영체제가 될 수 있었다. 이러한 제약사항이 소형 컴퓨터가 널리 보급될 수 있게 된 기회를 만든 셈이었다. 

벨 연구소에서 일하셨던 분들은 구글로 이직을 많이 했다고 한다. 유닉스를 처음 개발한 켄은 구글에 가서 Golang 을 만들었다고 한다. 켄 톰프슨은 유닉스, C언어의 시초였던 B언어, Golang을 만든 사람이다. 각각 독립적인 기술로 알았던 것들이 모두 한 사람이 만들었다는게 재미있었다. 

벨 연구소는 오늘 날에 비유를 한다면, 구글과 가장 가까울 것 같단 생각이 들었다. 내가 벨 연구소에 가고 싶다는건, 구글에 가서 제프딘 같은 개발자들이랑 맵리듀스, 빅테이블, 고랭, 쿠버네티스 같은걸 만들고 싶다는 의미인걸까... 아하핳.

이 책을 읽으면서, 미드나잇 인 파리 영화 속처럼 20세기 초의 벨 연구소로 타임머신을 타고 돌아가서, 벨 연구소에서 커피나 한잔 얻어 먹고 싶다는 생각을 했다. 열심히 상상해서 꿈 속에서 경험해봐야겠다. 

<끝>