brunch

You can make anything
by writing

C.S.Lewis

by 정광섭 May 13. 2021

“유닉스의 탄생”을 읽고

세상을 바꾼 운영체제를 만든 천재들의 이야기

유닉스(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  

unix에서 파일을 만드는 system call 이름이 creat 인 이유가 궁금했는데 켄 톰프슨의 오타였다고 합니다.

유닉스의 signal 을 전송하는 명령어 이름이 kill 인데 이때문에 사용자들이 프로세스를 종료하는 명령어로 오해를 하고 저자는 send_signal 로 할걸이라고 후회했다고 합니다.

요새 애자일이 각광받는데 벨연구소에서 초기 유닉스 개발자들이 일하는 모습을 보니 이미 애자일 하게 일하고 있었다는 생각이 듭니다. (작고 동작하는 app을 사용자들에게 자주 전달, 신뢰와 협력에 기반한 협업 등)


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari