“유닉스의 탄생” 을 읽고

http://www.yes24.com/Product/Goods/91213198
http://www.yes24.com/Product/Goods/91213198

유닉스(UNIX)를 아시나요?

IT 개발과 관련된 직업이 아니라면 헤어드라이기를 만드는 유닉스 전자를 떠올릴지 모릅니다.

하지만 오늘 안드로이드 스마트 폰을 사용했거나 맥북으로 작업을 했거나 인터넷에서 쇼핑을 하거나 검색 엔진에서 자료를 찾았다면 당신은 오늘도 유닉스를 사용한 겁니다.

전 세계의 인터넷을 이루는 대다수의 서버와 안드로이드 스마트폰은 리눅스라는 유닉스 호환 운영체제를 사용하고 맥북의 운영체제인 OS X 도 FreeBSD 라는 유닉스의 변종에서 출발했으니까요.

이 책의 저자인 브라이언 커니핸은 awk, ampl 언어의 작성자이며 켄 톰프슨과 “C 언어 프로그래밍” 이라는 전산과 학생들의 필독서를 저술한 저명한 개발자입니다.

그는 벨연구소에서 근무하며 유닉스라는 운영체와 C 프로그래밍 언어를 만들어서 세상을 바꾼 천재들과 그들이 이런 놀라운 결과물을 낼 수 있게 한 당시 연구소의 배경과 분위기에 대해서 담담하고 솔직하게 이야기합니다.

Unix 이전 시대

80자밖에 입력할 수 없는 천공카드를 사용하던 당시의 컴퓨터들과 대비해서 MIT 가 만든 CTSS 운영체제는 타자기같은 입력 장치를 제공하고 동시에 여러 명이 사용할 수 있는 혁신적인 운영체제였다고 합니다.

CTSS 의 성공후 후속 제품 개발에 착수한 MIT 는 AT&T 벨연구소 와 GE 를 협력자로 끌어 들였고 멀틱스라는 대규모 프로젝트를 시작했습니다.

하지만 멀틱스는 이전 버전의 문제를 모두 해결하고 새로운 기능을 넣겠다는 높은 목표때문에 지나치게 복잡한 시스템을 만들게 되었고 벨연구소는 멀틱스가 자사의 목표에 부합하지 않는다고 생각해서 프로젝트에서 발을 뺍니다.

멀틱스 프로젝트에 참여한 벨 연구소 직원들은 다른 할 일을 찾아야 했고 여전히 새로운 운영체제를 개발하고 싶어 했지만 경영진은 멀틱스에 덴 경험때문에 새로운 하드웨어를 구매해 주지 않았습니다.

이에 켄 톰프슨과 데니스 리치는 거의 사용되지 않는 낡은 DEC PDP-7(메모리가 무려 16K) 이라는 장비를 발견하고 이 장비를 사용하기 위해 단순한 운영체제를 3주만에 개발합니다.

이는 초기 버전의 유닉스였고 유용함이 알려져서 곧 다른 PDP-7 사용자들에게 퍼져 나갔습니다.

Unix 의 확산

켄과 데니스는 다른 기기에도 유닉스를 이식해서 더 많은 사용자들을 지원하고 싶었지만 경영진은 새 장비 구매를 승인하지 않았습니다.

이에 벨연구소 특허 부서에서 특허출원서를 작성하기 위한 전용 S/W와 H/W를 구매하려는 것을 알고(출원서의 장마다 행별로 번호를 붙이는 기능이 필요했지만 이런 S/W 가 없었다네요.) 유닉스 개발팀이 특허 부서가 필요한 S/W 를 개발해 주고 H/W 를 사용하기로 합의합니다.

물론 반대하는 경영진때문에 운영체제 개발 얘기는 하나도 없었고 승인이 나서 PDP-11 을 구매하고 켄과 데니스는 여기에 유닉스를 이식하고 특허 부서를 위해 문서를 포맷팅해주는 nroff 라는 SW 를 개발합니다.

그후 타이피스트들은 온종일 유닉스를 사용해서 특허출원서를 작성하고 이들이 퇴근한 저녁부터는 켄과 데니스는 PDF-11 에서 개발업무를 수행해서 유닉스를 개선합니다.

이 후에 새로운 장비를 얻게 되자 이들은 다른 장비에 운영체제를 쉽게 이식하기 위해 C 라는 프로그래밍 언어도 만들고 작은 프로그램들을 연결해서 다양한 처리를 하기 위한 파이프 기능등 다양하고 편리한 기능들을 지속적으로 추가하고 주류 운영체제가 됩니다.

유닉스를 기반으로 TCP/IP 와 인터넷이 구현되는등 유닉스는 정말 세상을 바꾼 운영체제였습니다.

저자는 벨연구소가 어떻게 이런 혁신적인 결과를 내었는지 다음과 같이 회고하고 있습니다.

저렇게 유연하고 자유롭고 서로 돕고 필요한 것을 만들어 쓰고 나눠주는 초기 해커 문화에서 유닉스가 태동했고 세상을 바꾼 것을 생각해 보면

분기별 실적을 독촉하고 매출이 인격인 현대 기업 문화에서는 다시는 이런 혁신적이고 이타적인 제품이 나올수는 없다는 생각에 잠시 우울해지기도 했습니다.

이외에 이 책에는 컴퓨터 세상을 만든 쟁쟁한 이들(c++ 을 설계한 비야네 스트라우스트럽, plan 9 운영체제와 go 언어/utf-8 인코딩을 만든 롭 파이크,컴파일러를 만들기 위한 어휘분석기를 개선한 범상치 않았던 인턴인 에릭 슈미츠, vi와 csh 의 창시자이자 썬마이크로시스템즈 창업자인 빌조이등)과 흥미로운 얘기들이 가득하니 운영체제나 IT 의 역사에 관심이 많은 분들께 일독을 권합니다.

  • 저는 리눅스 관련 도서를 집필하기도 했고 아예 밥벌이의 근원이 리눅스이기도 해서 너무 즐겁게 읽었습니다.

P.S

  1. unix 에서 파일을 만드는 system call 이름이 creat 인 이유가 궁금했는데 켄 톰프슨의 오타였다고 합니다.
  2. 기존 shell script 로 컴파일할때 문제(바뀐 소스 파일 인식 불가, 반복 작업등)를 해결하기 위해 컴파일 작업을 묶어서 해주는 make 유틸리티는 tab 으로 들여 쓰기를 안 하면 오류가 나는데 저자가 최초 버전 개발시 아무 생각없이 저렇게 만들었지만 나오자마자 make 사용자들이 너무 많아져서 고칠수 없어서 저렇게 됐다고 합니다.
  3. 요새 애자일이 각광받는데 벨연구소에서 초기 유닉스 개발자들이 일하는 모습을 보니 이미 애자일하게 일하고 있었다는 생각이 듭니다. (작고 동작하는 app 을 사용자들에게 자주 전달, 신뢰와 협력에 기반한 협업등)

Written by

20년 경력의 야크 털 깍기 전문가

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store