태그 미디어로그 위치로그
'유닉스'에 해당되는 글 1건
유닉스? unics? unix!
개발자 세상

IT 에서 일반적으로 사용하게 되는 단어에는 재미있는 일화가 많이 담겨져 있는 경우가 많다.

버그(Bug)라는 단어가 어떻게 프로그램 오류를 나타내는 단어가 되었는지, 왜 컴퓨터를 켤때 Booting 이라는 단어를 사용하게 되었는지 그리고, 식사 메뉴중에 하나인 SPAM이 왜 광고메일을 나타내는 단어가 되었는지.. 그 어원을 찾아가다보면 우리가 알지 못했던 그 시대의 생활상을 알 수 있을때도 있다.

이번에는 대표적인 운영체제인 UNIX가 어떻게 UNIX라는 이름을 갖게 되었는지에 대해서 알아보자.

– Unix는 1969년에 벨 연구소에서 인터랙티브 시분할 시스템으로서 만든것이 그 시초가 된 운영체계이다.

1960년대 MIT, 벨 연구소(AT&T Bell Lab.) 및 제너럴 일렉트릭(GE co.)은 “GE-645″ 메인프레임 컴퓨터 상에서 돌리기 위한 실험적인 운영체제인 멀틱스(MULTICS, MULTiplexed Information and Computing Service)를 함께 연구하고 있었다.

이 연구의 목적은 향상된 보안, 시분할 처리와 세그먼트라고 불리는 파일저장 방식 도입등 여러가지 혁신적인 기능들을 갖는 쌍방향 운영체제를 만드는 것이었다.

개발이 끝나고 MULTICS 운영체제가 릴리즈되어 “GE-645″에 탑재하였으나, 그 결과는 참담했다. 수행 속도가 너무 느리고, 사용하기 너무 복잡했기 때문에 사용하기 어렵다는 의견이 많이 나왔고, 결국 MULTICS 연구는 1969년에 중단되었다.

AT&T Bell Lab.은 MULTICS Project가 중단된 이후에 연구원들을 다른 업무에 배치하였다. MULTICS Project에서 시스템 프로그램 일원이었던 AT&T Bell Lab.켄 톰슨(Ken Thompson)은 Project의 실패 이후에 당시 유행하던 일괄처리 운영체제에 매달리거나, 실패작이었던 MULTICS를 다시 시작할 생각이 전혀 없었다.

이때 켄 톰슨이 관심을 갖고 있던것은 MULTICS에서 구현되었던 Space Travel이라는 게임이었다. 하지만, Space Travel은 GE-645 메인프레임 컴퓨터 상에서 매우 느리고, 게임을 하기 위한 비용이 많이 들었다(한번 돌릴때 마다 $75가 들었다고 한다).

켄 톰슨은 데니스 리치(Dennis Ritchie)의 도움으로 놀고 있던 미니(?) 컴퓨터 장비인 DEC(Digital Equipment Co-operation) PDP-7 어셈블리 언어로 다시 Porting을 했다.


켄 톰슨(왼쪽)과 데니스 리치

이 당시 개인적인 사정으로 인해 켄 톰슨의 아내가 어린 아들을 데리고 한달간 집을 떠나 있게 되고, 무엇인가 집중할게 필요했던 켄 톰슨은 한달동안 죽치고 앉아서 Space Travel 게임을 두명이 함께 할 수 있도록 하는 DEC PDP-7을 위한 새로운 운영체제를 개발하게 된다.

거대한 운영체제를 만들고자 한것이 아닌 단순히 Space Travel 게임을 데니스 리치와 함께 하기 위해서 였다.
이 운영체제는 MULTICS, CMAS(Cambridge Multiple Access System), CTSS(Compatible Time Sharing System)의 장점을 수용하여, PROJECT에 참여하는 여러 프로그래머 간에 DATA는 보호하면서, 공유해야할 DATA는 여러 사람이 쉽게 사용할 수 있도록 하는 것이였고, 그것이 최초 UNIX OS로 1969년에 PDP-7미니 컴퓨터 장비에서 동작하는 OS가 된것이다.

아이러니하게도, 이 운영제체를 개발할 당시 AT&T Bell Lab.에서는 개발에 대한 재정적인 지원을 따로 받지도 않았다고 한다.

PDP-7용 새로운 Multi-Tasking OS는 동시에 두 사용자를 지원해서 UNICS(Uniplexed Information and Computing System)라고 불렀다.

실제로는 브라이언 커니건(Brian Kernighan)은 멀틱스에 대한 반발로 “거세된 MULTICS”라는 “eunuchs(내시)”의 동음이의어인 UNICS라는 말장난으로 만들었다고 한다. 즉, 최초의 UNIX의 이름은 UNICS였다.


DEC PDP-7 (엄청 미니하다)

후에, Computer Science Research Group이 PDP-7보다 큰 컴퓨터에서 유닉스를 사용하기를 원했을 때까지도 벨 연구소로부터의 재정적인 지원은 없었다.
톰슨과 리치는 PDP-11/20 용 유닉스에 텍스트 처리 기능을 추가하겠다는 약속을 했고, 이에 따라 벨로 부터 약간의 재정적인 지원을 받게 되었다.
그리고 1970년, UNICS(eunuchs)의 좋지않은 발음때문에 이름을 UNIX로 바꾸었고, 유닉스 운영 체제 (Unix Operating System)라는 이름을 공식적으로 가지고 PDP-11/20에서 운영되었다.


켄 톰슨(seated)과 데니스 리치(Standing) at a PDP-11

이처럼 현재 운영체제에서 대표적으로 인식되는 UNIX가 UNIX라는 이름을 갖기까지 재미있는 일화가 있었다.

필자는 이 일화에서 느낀 점을 간단히 적어보고자 한다.
엄청난 인력과 자본력이 더해진 MULTICS Project의 실패를 보더라도 연구의 결과는 항상 성공이 아니다.

이는 연구는 일정한 Input이 있다고 반드시 일정한 Output이 나오는 그런 공식이 아니기 때문이다.

Project가 실패하더라도 Project를 진행했던 지식과 사람들만 있으면, 그것만으로도 회사의 재산이 될수 있을 것이다.

소프트웨어의 성공은 개발자를 공식에서 사용되는 하나의 INPUT으로 생각하지 않는 존중으로 부터 시작하는게 아닐까 생각하면서 재미없는 글의 마침표를 찍는다.