2021년 7월 18일 일요일

[독서 기록] 유닉스의 탄생 - bioneer 서버를 추억하며

1990년대 초반, 내가 다니던 대학원의 몇몇 연구실에서 조금씩 돈을 모아서 당시로서는 꽤 좋은 리눅스 서버를 조립한 일이 있다. 그 서버의 이름은 'bioneer'. 이를 한글로 표기하는 문제에 대해서는 다들 고민을 별로 하지 않았다. 월드와이드웹은 고사하고 학교에서 이메일 주소를 공식적으로 발급해 주지도 않던 시절, bioneer는 생명정보학 도구의 산실이자 학과의 모든 구성원들에게 이메일 계정을 하나씩 안겨준 귀한 자원이었다. 지금은 중앙대학교 교수로 재직 중인 한윤수 교수가 직접 코딩하여 만든 텍스트 터미널 방식의 bbs 프로그램은 학생들의 일상과 실험 노하우를 공유하는 매우 중요한 정보 교류의 장이었다. bioneer라는 이름은 우리 학과의 당시 영문 명칭인 Department of Biological Science & Engineering에서 딴 것으로 기억한다. 이 bioneer라는 이름이 우리나라 생명공학계의 최초 벤처기업인 (주)한국생공이 1996년 (주)바이오니아로 상호를 변경하는데 어느 정도는 영감을 제공하였을 것으로 믿는다.

당시 바이오니어 서버를 만드는데 주도 역할을 했던 사람은 누구였던가? 안타깝게도 정확하게 기억나지는 않는다. 아마도 홍석진, 한윤수, 홍승범 동문 등이었던 것 같다. 혹시 정확한 정보를 알고 계신 동문이 있다면 연락 주시기를! 이러한 일을 학생들의 열의만으로는 할 수 없는 노릇이었고, 박찬규 교수님이 분위기 조성에 도움을 주셨던 것으로 기억한다. 학과 선배 중에서도 기여를 한 사람이 있었을 것이다. 이 작은 역사가 나로 하여금 리눅스에 관한 관심을 갖게 만드는 계기가 되었고, 1994년 드디어 내 생애 최초로 개인 PC를 갖게 되었을 때 리눅스를 설치하여 간단하게 bbs도 운영해 보고 학위 논문 원고도 LaTex으로 쓰게 된 계기가 되었다. 컴퓨터는 계속 바뀌었지만 이때 지은 eos라는 서버명은 그 이후로도 꽤 오랫동안 사용하였다. 사실은 1993년 여름 어렵게 장만한 캐논 SLR 카메라 EOS 5에서 딴 이름이지만... 다음 주에 컴퓨터를 하나 발주할 일이 있는데 생각이 난 김에 eos라는 이름을 다시 사용해야 되겠다. AMD CPU를 쓰는 컴퓨터로는 첫 경험이 될 것이다.

학부생 때에 SSM-16에 접속하여 포트란 실습을 한 일이 있어서 리눅스의 텍스트 터미널 환경을 별로 낯설게 여길 필요가 없었던 것도 큰 도움이 되었다. 1984년에 개발된 국내 최초의 상용 컴퓨터인 SSM-16에 대해서는 ETRI 40주년 자료를 참고하기 바란다. 아, SSM은 '삼성 수퍼마이크로'의 약자였구나!(1996년 전자신문 기사) 예전보다는 SSM-16에 대한 정보를 찾기가 수월해져서 다행이라고 생각한다.

서론이 지나치게 길었다.

나의 업무에서 여전히 중요하게 쓰이는 자료 처리용 스크립트 언어 AWK의 저자 중 한 사람인 브라이언 커니핸이 쓰고 하성창이 번역한 책 『유닉스의 탄생』(한빛미디어 2020년)을 재미있게 읽었다. 훗날 누군가 짧았던, 그러나 굵게 흔적을 남긴 bioneer 서버의 역사에 대한 글을 쓰게 될지 누가 알겠는가?

UNIX와 C 언어는 미국 AT&T의 연구 개발 자회사인 벨 전화 연구소(Bell Telephone Laboratories, 혹은 단순히 '벨 연구소')에서 태어났다. UNIX가 탄생되는 순간은 이 책의 80쪽부터 나온다. MIT와 공동 작업으로 진행되었던 멀틱스(초기 시분할 운영체제의 하나, 1964~2000) 개발에서 손을 뗀 사람들이 거의 놀고 있었던 DEC PDP-7을 활용하기 위해 창의력을 발휘한 것이다. 멀틱스의 복잡성에 대한 반작용으로 탄생한 것이 유닉스라니! 켄 톰프슨은 PDP-7에 달린 특이한 디스크 드라이브의 작동 효율을 높이기 위해 새로운 디스크 스케쥴링 알고리즘을 작성했고, 이를 시험하기 위해 그의 아내가 한 살짜리 아들을 데리고 부모님을 뵈러 간 3주 동안 유닉스의 프로토타입을 만든 것이다.

당시 벨 연구소는 연구자들이 최대한 자율적으로 일할 수 있게 배려하는 분위기였고, 대학을 찾아다니며 좋은 인재를 영입하는데 많은 노력을 기울이고 있었다. 요즘 우리나라와 같이 '블라인드 채용'만이 공정한 인재 등용 방법이라면서 이를 강하게 추진하는 것과는 크게 대조가 된다. 유닉스는 벨 연구소의 모기업에 결코 재정적인 성공을 가져다주지 못했다. 주변 대학에 영업 비밀 보호 협약만 맺는 조건으로 싼 가격(명목상의 매체 수수료)에 배포를 하여 인기를 누리기 시작했다. 요즘 말하는 오픈 소스 방식은 분명히 아니었고 라이선스를 취득한 사람끼리만 유닉스와 관련된 경험을 공유할 수 있었다. 그러나 커뮤니티가 확산되고 점차 다른 종류의 하드웨어로 이식되는 것도 가능해졌다. 무엇보다도 중요한 것은 그 과정에서 호환성이 중요한 전통으로 자리잡게 되었다고 한다. 유닉스에서 직접적으로 파생되었거나 영향을 받은 후손이 지금은 시장에서 큰 비중을 차지하게 되었고, 그 한가운데에 리눅스가 있다.

벨 연구소는 소속 연구원들이 책을 발간하는 것을 장려하였다고 한다(201쪽부터). 초창기 유닉스에서는 문서 생성용 도구가 큰 비중을 차지하였고, 이로 말미암아 각종 매뉴얼이나 기술 논문 및 책이 만들어질 수 있었다. 특히 벨 연구소의 컴퓨팅 과학 연구 센터에서는 책을 집필하기 위해 별도의 개인 시간을 쓸 필요가 없었다. 덕분에 벨 연구소는 컴퓨팅과 컴퓨터 과학에 대한 권위 있는 책을 쓰는 곳으로 유명해졌다. 

비교적 규모가 작은 기업의 연구소에서 이렇게 좋은 책을 많이 낼 수 있었던 원인을 저자는 이렇게 파악하고 있다. 이를 원문에서 그대로 인용해 본다(203쪽~). 기술적인 글쓰기를 즐기는 나에게 매우 깊은 인상을 준 대목이다. 
  • 글쓰기를 진지하게 대했고, 스스로 공을 들여 썼으며, 다른 사람들이 쓴 글을 읽고 훌륭한 비평을 제시했다.
  • 연구소 경영진이 책 쓰기를 지지해 주었다... 6개월 동안 책을 몰두하여 쓸 수 있었고, 저작권은 벨 연구소가 보유하지만 저자가 인세를 받았다.
  • 프로그래밍 환경으로서 C와 유닉스, 연구 분야로서의 문서 생성, 컴퓨터 기술을 주제로 한 글쓰기를 주요 활동으로 삼은 것 간의 공생 관계다.

유닉스 개발에 가장 크게 기여한 소수의 천재를 고르라면 케네스 톰프슨과 데니스 리치로 대상을 좁히지 않을 수 없지만, 저자는 당시 벨 연구소 컴퓨팅 과학 연구센터의 분위기는 열정으로 뭉치고 우애 넘치며 자유로운 환경임을 강조하고 있다. 자유로운 연구를 지속적으로 지원하였던 부서장이라든가, 인턴 연구원으로 잠시 근무하면서 머물면서 유닉스 시스템의 성장과 발전에 기여한 사람들(예: 훗날 구글의 CEO가 된 에릭 슈미트) 등등.. 이 책을 읽으면서 그 어디에서도 치열한 경쟁이나 성과를 둘러싼 싸움 같은 것은 찾아볼 수 없었다. 오히려 관리자로 승진하기 싫어서 애쓰는 모습이 애교스럽게 묘사되기도 하였다. 혹시 일부러 저자가 낭만적으로 책을 쓴 것은 아니었을까? 

'하고 싶은 일을 열심히 했을 뿐인데, 시간이 지나고 보니 역사가 되어 있더라구요.'

언젠가 이런 말을 할 수 있는 날이 온다면 얼마나 영광일까?

댓글 없음: