유닉스 탄생의 역사

유닉스 탄생의 역사
유닉스 탄생의 역사

유닉스의 역사에 대해서 알아보는 시간입니다. 유닉스는 AT&T에서 개발한 미니 컴퓨터용 운영체제로 우리가 사용하는 일반 PC에서는 거의 활용되지 않지만 산업용 컴퓨터에서 활용되는 OS로 유명합니다. 이런 유닉스가 왜 AT&T에서 개발되었는지 그리고 벧 연구소가 AT&T 산하에서 했던 일에 대해서는 지난 시간에 알아보았고 오늘은 유닉스의 역사에 대해서 살펴보도록 하겠습니다.

유닉스 탄생의 역사

유닉스는 초기에는 상품으로 판매될 목적으로 개발된 것이 아니다. 이러한 것은 IBM사의 대형 컴퓨터를 개발할 때 이와 함께 전략상품용으로 운영체제를 생각했던 것과는 다소 다른 성격을 가졌다. AT&T는 컴퓨터 업계에 참여하는 것을 금지당했던 1960년대 AT&T 산하의 벧 연구소에서 컴퓨터 OS를 제작하는데 크게 관계가 되어있다. 당시 IBM이 거대화된 상태여서 컴퓨터 업계는 여러 가지 방법으로 이들의 아성을 깨려는 시도를 벌였다. 전기공학의 명문인 제네럴 일렉트릭 사도 이들 중의 하나였다. GE는 에디슨의 백열전등 이래 찬란한 역사를 가진 거대 회사였다. 당시에는 IBM 따위와는 상대가 안될 것이라고 자신만만하게 생각했었다. GE는 MIT와 벧 연구소가 연합하여 IBM과 경합을 벌이게 되었다. GE가 계획하고 있던 컴퓨터는 비상한 관심을 끌 정도로 야심만만하였지만 계획이 다소 진전되면서 투입된 돈이 기하급수적으로 불어나게 되자 1970년 대 초 IBM사에 패배선언을 하여 컴퓨터 업계에서 빠져나가게 되었다. GE의 실패 원인은 여러 가지가 있지만 컴퓨터를 쉽게 여겼다는 것과 컴퓨터 전문 제조 업체에 비해 기반이 약했다는 것이 가장 큰 원인이었다. GE의 첫 제품인 GE645의 경우 컴퓨터의 운영체제를 MULTICS라는 이름의 제품을 사용하였다. 그러나 IBM의 OS에 비해 더욱 발달된 부분도 있었다. 특히 멀티태스크 기능과 같은 것은 다른 것에 비해 훨씬 강력하고 새로운 것이었다. 단 MULTICS는 PL/I라는 컴퓨터 언어로 작성되었기 때문에 뒤떨어졌다는 평가를 받기도 하였다.

한편 GE는 비관하여 컴퓨터 업계를 떠나게 되었고 GE645와 MULTICS는 하니웰이라는 회사에서 인수하여 계속 판매하게 되어 그만큼 헛된 기기가 아닌 것이 입증된 것이다. 그러나 패배는 패배로 끝나게 되어 IBM은 승승장구하여 거대한 기업으로 성장하게 되었다.

벧 연구소의 OS 개발

GE의 패배로 벧 연구소와도 컴퓨터의 OS 제작에 손을 떼게 되었다. 이때 1967년 하버드 대학을 졸업한 후 벧 연구소에서 종사하게 된 켄 톰슨이라는 재미있는 인물이 등장하게 된다. 그는 1969년의 벧 연구소가 GE의 MULTICS 계획에 손을 떼었음에도 불구하고 그는 이 컴퓨터를 살리려는 노력을 계속하게 되었다. 톰슨은 GE645 상에서 실행되는 스페이스 트래블이라는 비디오 게임을 즐겼지만 GE645가 없어도 스페이스 트래블에 정열을 쏟았다고 한다. 벧 연구소의 경영진은 GE의 패배에 질려 새로운 컴퓨터를 구입해주지 않았다. 그래서 톰슨은 억지로 스페이스 트래블을 작동시킬 방법을 모색하게 되었다. 톰슨이 착안한 것은 PDP-7이라는 싼 미니컴퓨터를 이용하는 것이었다. 대단히 간단한 기계여서 이 당시 어셈블러조차 없었던 것이었다. 톰슨은 우선 어셈블러부터 만들기 시작하였다. 아무것도 없었기 때문에 스스로 이것저것 만들어야만 했다.

톰슨은 프로그램 개발에 편리한 툴을 여러 가지 만들었다고 한다. 이렇게 해서 완성된 툴들은 막연하였지만 어느 정도 형태를 갖추고 프로그램 제작핵으로 자리를 잡았지만 OS라고 불릴 만한 것은 아니었다. PDP-7은 여러 가지 제약을 가진 컴퓨터였기 때문에 GECOS시스템에서 개발된 시스템 핵이 PDP-7용으로 매크로 어셈블 되었다. 이 과정에서 포크와 프로세스 이미지라는 개념이 나타났다고 한다. 물론 파일 카피라든지 에디트나 리무브나 프린터 개념도 더불어 생겨났다.

유닉스라는 이름

유닉스라는 이름이 누구에 의해 붙여졌는지에 대해 여러 가지 설이 있지만 1970년 커니핸에 의해 명명되었다는 설도 있다. 톰슨이나 데니스 리치라는 사람은 이 시점에서 그들 전용의 PDP-7을 갖고 있지 않았으므로 벧 연구소에서 유닉스가 어느 정도 대우를 받았는지 쉽게 알 수 있다. 1971년 무렵 유닉스 제1판 매뉴얼이 만들어졌다고 하며 1970년 후반에는 PDP 11/20이 도착했다. 그리고 1972년에 유닉스 제2판이 다시 쓰였다. 이 시점에서 파이프라는 중요한 개념이 도입되었다. 이 무렵 유닉스는 여전히 어셈블러로 쓰였다. 톰슨은 유닉스라는 OS의 일차 완성을 보았기 때문에 이번에는 언어 쪽으로 눈을 돌렸다고 한다.

유닉스의 언어

시스템 기술용어로써 알맞은 것에 ALGOL 60이 있다. 이 ALGOL 60의 영향을 받아 런던 대학과 케임브리지 대학에서 만들어진 것이 CPL이라는 언어이다. 이것을 더욱 간략화한 것이 BCPL이라는 언어로 톰슨은 이것을 철저히 간략화하여 B언어를 만들었다. 여기서 등장한 사람이 리치이다. 뛰어난 감각의 소유자인 그는 B언어의 장점만 고른 후 여러 가지 자신의 생각을 첨가하여 C언어를 만들었다. C언어는 포터빌리티라고 하여 호환성이 뛰어난 언어로 프로그래머의 생각을 정확히 표현할 수 있을 뿐 아니라 속도도 빠른 언어로 믿어졌다.

1973년 톰슨과 리치는 C언어로 유닉스를 쓴다는 야심에 찬 실험에 착수했다. 그때까지 OS라는 것은 어셈블러로 쓰이는 것이라는 생각이 일반적이었는데 이것을 근본부터 뒤집는 실험을 했던 것이다. 이 두 사람은 OS를 어셈블러가 아닌 고급언어인 C언어로 쓰고 싶었다. 이 실험은 뜻대로 진행되었다. 그러자 두 사람은 보다 야심적인 것을 생각하기 시작했다. 앞에서 언급한 것처럼 C언어는 포터빌리티가 뛰어난 언어이므로 PDP 11에서 C언어로 유닉스를 쓴다는 것은 본질적인 문제가 아니다. 여기서 PDP 11과는 매우 다른 아키텍처를 가진 인터 데이터 8/32라는 컴퓨터가 선정되었다. 이 컴퓨터에 대한 유닉스가 C언어로 쓰인다면 어떤 컴퓨터에 대한 유닉스도 C언어로 간단히 쓸 수 있다. 실험은 성공했다. 계속해서 IBM 370 등 여러 가지 컴퓨터를 상대로 실험을 실시하여 성공을 거두었다. 이것과 유닉스 제6판은 비영리적인 목적을 위해 벧 연구소 외에도 값싸게 배포되었다. 이로써 전 미국 대학에서 사용되게 되었다.

Leave a Comment