유닉스의 역사 2

Posted by 잿빛푸우 greypoooh@daum.net
2008.10.20 23:01 리눅스의 모든것
1. UNIX OS의 탄생

UNIX OS는 언제, 누구에 의해서 만들어졌을까?  또 무슨 목적에서 만들어 졌을까? 

오늘날 UNIX OS가 세계적으로 널리 사용하게 된 계기는 무엇일까요?


간단하게UNIX의 역사에 대한 소개를 하겠다.


UNIX가 탄생하게 된 시기는 1960년대 후반이었다. UNIX OS(Operating System)를 말 할 때는  두 사람을 빼놓을 수 없는데, 그 중 한 사람은 켄 톰슨(Ken Tompson)이고, 나머지  한 사람은 데니스 리치 (Dennis Richie)라는 인물을 꼽을 수 있다. 그 중에서 켄 톰슨은 "UNIX의 아버지"라고 불리고 있으며, UNIX OS를 직접 만든  장본인이기도 하다. 


1965년에 MIT공대와 GE(General Electric)사에서 합작하여 다중 사용자 환경을 구현하기 위한 일환으로 AT&T사의 BELL LAB연구소에서 MULTICS(MULTIplexed  Information Computing System ) OS개발 PROJECT를 추진하게 되었는데,  켄 톰슨은 그 PROJECT의 한 일원으로 시스템 프로그래머로 일하게 되었고, 결국  MULTICS OS가 완성되어 GE사 제품의 "GE 645" 컴퓨터에 탑재하였으나, 수행  SPEED가 너무 느리고 사용이 복잡하여, 불행하게도 MULTICS PROJECT는 1969년에  중단 되었다. 


그러나 톰슨은 MULTICS OS와 CMAS(Cambrige Multiple Access System), CTSS(Compatible Time Sharing System)의 장점을 수용하여, 새로운 OS  즉 "PROJECT에 참여하는 여러 프로그래머 간에 개인의 DATA는 보호하면서, 공유해야 할 DATA는 여러 사람이 쉽게 사용할 수 있도록 해주는 OS"를 개발하였는데,  그것이 바로 최초 "UNIX OS"로 1969년에 PDP-7 미니 컴퓨터 장비에서 움직이는  OS가 된 것이다.  


당시 OS명칭은 다목적용인 MULTICS OS에 대응시켜 단일목적의 의미를 갖는 UNICS(UNIplexed Computing System) OS로 불리였으나, 후에 UNIX로 정식 명칭을 바꾸었고, 최초 UNIX OS는 상업적인 목적에서 개발된 것이 아니고, 숙련된  프로그래머를 위해 PROJECT 개발시 보다 편한 개발환경 제공차원에서 만들어진  것이 다른 OS와 주된 차이점이라 할 수 있다. 


그러나, 최초에 만들어진 UNIX OS는 단일 사용자를 지원하는 OS였으며, OS 소스 코딩도 PDP-7 컴퓨터의 ASSEMBLY 언어로 작성되어, 기계 종속적인 OS로  주로 AT&T사의 BELL LAB연구소에서만 사용 되었다. 켄 톰슨은 시스템 프로그래머로 프로그램 언어에도 상당한 관심을 가지게 되었는데, 당시 ALGOL언어를 수정하여 Cambrige 대학에서 만든 BCPL( Basic  Combined Procedure Language) 언어의 구조적 프로그래밍 개념을 도입하여 B 언어를 1971년에 완성하게 되었고, 이때 데니스 리치는 켄 톰슨의 B언어를  대폭 수정하여, 영문 알파벳 "B" 다음의 "C"를 의미하는 C 언어를 1972년에  고안하게 된다. 


당시 C 언어는 다른 고급수준 언어와 대별되는 차이점이 있었는데, 그것은 구조적 프로그래밍 기법을 갖는 고급언어(High Level Language)의 성격과 저급 수준언어(Low Level Language)가 갖는 BIT단위 처리가 가능한 점으로 OS의 소스 코딩을 C 언어로도 가능하게 된 점인데, 이러한 C 언어의 개발이 없었더라면  오늘날의 업계의 표준인 UNIX OS로 자리를 굳히지 못하였을 것이다. 


켄 톰슨과 데니스 리치는 1973년 PDP-11 장비에서 탑재된 UNIX OS를 C 언어로 코딩하는데 성공하였으며, 이때부터 UNIX OS는 이식성이 강한, 다중 사용자를  지원하는, 간결하면서 프로그램 개발이 용이한 언어로 탄생하게 된다.  


최초 C 언어로 작성된 소스코드는 약 11000 라인으로 그 중 95%인 10000 라인은  C 언어로 작성되었고, 나머지 1000 은 ASSEMBLY 언어로 작성 되었는데, 그 중에  800 라인은 기계 종속적인 부분 때문이고, 나머지 200 라인은 수행 SPEED를 높이기 위한 목적으로 작성되었으며, 이후 다른 장비에 이식(PORTING)은 약 5%  의 소스만 수정하면 간단하게 되었다. 


2. UNIX OS의 탄생 이후 ......?  

어떻게 UNIX OS가 세상에 알려지게 되는가? 또 UNIX OS가 갑자기 급 부상하게 된 것은 무엇 때문인가?  70년대와 80년대까지의 역사를 위주로 살펴 보겠다. 


처음 UNIX OS가 탄생하게 된 배경은 단지 프로그래머의 개발 환경을 개선해 주겠다는 순수한 취지만은 아니었고, 그 이면에는 켄 톰슨의 개인적인 문제와  AT&T의 회사정책도 포함되어 있다. 


MULTICS OS개발이 무산되고 난 후 켄 톰슨은 태양계 행성의 움직임을  알아보는 우주여행(SPACE TRAVEL) 모의실험( SIMULATION)을 연구 중이였는데,  당시 PDP-11장비에 MULTICS OS를 이용하기에는 비용이 너무 비싸다는 문제와,  또 MULTICS OS의 실패 등으로 연구 개발 비용 지원이 용이하지 않아 경영진이 만족 할만한 또 다른 제품개발을 해야 하는 등 여러 가지 문제에 봉착하게 되었고, 결과적으로 값싼 PDP-7장비에 문서처리 기능을 갖춘 UNIX OS를 개발하게 되었다. 


여하튼 1971년 UNIX OS는 AT&T사의 정식제품으로 등록 되었고, AT&T사 내에서 원하는 사람은 무료로 사용할 수 있도록 허가 되었다. 1974년 7월에는 최초로  일반인에게 UNIX OS가 소개되었는데, 이는 켄 톰슨과 데니스 리치가 CACM 학술지에 " The UNIX Time-Sharing System "이라는 논문을 내놓으면서부터 이다. 


1976년에는 UNIX OS가 오늘날 세계적으로 알려지게 되는 중요한 계기를 맞는 해가 되었는데, 그것은 AT&T사에서 UNIX OS를 일반 대학교나 연구소에 거의 무료로 UNIX OS 전체 소스코드를  보급하기로 결정하면서부터 시작 되었다.. 


그 당시만 해도 UNIX OS를 제외한 운영체제(OS)는 해독하기 어려운 ASSEBLY  언어로 구성되어 있었고, 그나마 KNOW-HOW로 알려져 그 중 일부만 공개되어  있는 실정이기 때문에, 일반 대학이나 연구기관에서 특정 OS의 내용을 분석한다는 것은 거의 불가능한 것으로 여겨 졌으나, AT&T사에서 OS 소스코드를  비영리기관이나 교육기관에 공개하므로 일대 변혁을 가져오게 되었다. 


AT&T사의 이와 같은 결정은 두 가지 이유가 있었는데 하나는, 당시 AT&T사는  전신 전화를 담당하는 대표기관으로서, OS나 컴퓨터 판매로 이윤을 얻는 사업은 할 수 없도록 법적으로 제제가 되어 있었고, 두 번째 이유로는 어떻게든 UNIX OS를 개선 발전시켜야 한다는 목적에서 취해진 결정이다. 


UNIX OS를 헐값에 공급 받아 가장 큰 발전을 기하게 된 대학으로는, 캘리포니아 대학의 버클리 분교인데, 1970년대 말에서 1980년대 초까지 기존 OS를 전면적으로 연구하여 많은 기능을 추가 시켰고, 나름대로 "BSD(BERKELEY SOFTWARE DISTRIBUTION)"라는 명칭으로 VERSION을 체계적으로 관리하게 된다. BSD3,  BSD4, BSD4.3 VERSION으로 계속 발전을 거듭하면서 C SHELL, VI EDITOR, LISP, PASCAL, SOKET COMMUNICATION, VIRTUAL MEMORY등 아주 유용한 기능들이 새로 추가 되었다. 


한편 AT&T에서도 UNIX OS에 대한 계속적인 연구가 진행되었는데, AT&T에서는 1976년에 UNIX V6을 무료로 공급한 후 UNIX V7으로 VERSION UP을 하고 "SYSTEM" 이라는 명칭을 부여하여 체계적으로 VERSION을 관리하게 되었는데,   SYSTEM III, SYSTEM V 가 대표적인 AT&T의 UNIX OS로 자리잡게 된다. 


1980년대 초까지 UNIX OS는 기업체나, 연구소, 대학에서 사용하기 편하게  기능을 부여한 수정판이 몇 백 본이 될 정도로 폭 넓게 사용 되어지게 되니 그야말로 춘추 전국시대가 된다. 


3. 통합화를 통한 UNIX OS의 성숙기......?

1980년 초, UNIX OS를 제공했던 AT&T사에서는, 드디어 UNIX OS를 상업적 이윤을 목적으로 판매할 계획을 하게 되지만, 가장 큰 문제는 여기 저기에서 사용되고 있는 많은 UNIX OS의 여러 기능들을 잘 통합하여 일원화된 UNIX OS를 보급하는 것이였다. 


상업적 판매를 위한 일환으로 1982년에 AT&T사에서는 그 당시 주류를 이루어 왔던 SYSTEM계열과 BSD계열의 특징적인 기능을 통합하여,   SYSTEM III를 발표하게 되고, 1983년에 BSD의 최종판인 4.3 VERSION의 기능까지 통합하여 SYSTEM V를 내놓으면서 본격적인 판매를 시작하게 된다. 


물론 AT&T사에서 이러한 결정을 하기에는 자사의 많은 권한을 포기 해야 했고, 그래도 당시 UNIX의 인기는 급상승하여, 세계에 널리 알려져 있었으므로, 그 수익성도 많을 것으로 기대되어 이러한 결정을 강행하게 된다. 


AT&T사는 점점 UNIX OS에 대한 성장잠재력을 알게 되었고, 당시 UNIX  WORKSTATION 부문에서 가장 잘 알려진, SUN 마이크로 시스템즈사와 함께 "UI(UNIX  INTERNATIONAL)"라는 기구를 창설하여, 세계 UNIX시장의 석권을 꿈꾸게 된다. 그때 SUN의 WORKSTATION에는 SunOS라는 UNIX OS가 탑재 되었는데, 그것은 버클리 대학의 BSD 4.3 VERSION을 기반으로 한 UNIX OS 였다.  


이러한 UI기구 결성은, UNIX의 2대 조류가 연합하였다는 사실 하나만으로도 다른 컴퓨터 업계에서는 큰 충격으로 받아들여 지게 되었다.  이러한 컴퓨터 업계로는 UNIX 사업에 비교적 빨리 뛰어 들었던 휴렛팩커드(HP),  대형 컴퓨터에서 타의 추종을 불허하는 IBM, DEC사로,   각 사는 SYSTEM계열과 BSD계열의 OS특징에 자체적으로 여러 가지 KNOWHOW를 가미한 약간 독자적인 OS를 제공하고 있었다. 


HP는 "HP-UX",IBM은 "AIX", DEC은 "Ultrix"라는 OS가 바로 그것이다. 


위협을 느끼게 된 HP, IBM, DEC사도 UI기구에 맞설 수 있는 기구를 창설하게 되었는데,그것은 바로 "OSF(OPEN SYSTEM FOUNDATION)"이다. 눈뜨고 당할 수는 없다는 차원이었다.  일반 UNIX를 사용하는 업체에서는 이러한 현상에 우려의 목소리가  높았고, 그것은 어렵게  UNIX OS가 통합되는가 했더니, 또다시 서로 다른 형태로 분리 발전되어 나가는 점을 우려한 것이었다. 결국 UI와 OSF는 서로 경쟁하면서 서로 다른 신제품을 계속 개발하게 된다.


예를 들면 UNIX에서 제공하는 GUI(Graphical user interface)로 UI에서는 OPEN LOOK을 지원하게 되고, OSF에서는 Motif를 지원하게 되어, UNIX에서 제공하는 X-WINDOW가 어느쪽의 기술구조를 따르는가에 따라 내부적으로 서로 상이한 구조를 가지게 된다.  


당시 UNIX OS는 PC업계에서도 많은 관심을 가지게 되었으며, 마이크로 소프트웨어사의 Zenix와, 또 다른 제품인 LINUX가 PC용 UNIX OS로 발표되었고 이외에도 약 10여종의 PC용 UNIX가 발표되어 PC이용자에게 각광을 받게 된다. 


또한 UNIX시스템의 여러 분야에 "표준화 기구"가 참여하여 표준을 정하게 되는데, 이것은 UNIX시스템에서 사용되는 모든 S/W를 일정한 규칙이나 틀에 맞추어 개발하게 함으로, 비록 UNIX DB, UNIX OS, UNIX SYSTEM이 서로 다르더라도 상호간에 원활히 운영할 수 있는 호환성을 목적으로 추진되어 오늘날 "OPEN시스템"이 등장하게 되는 계기를 마련되게 된다. 


이러한 표준화 기구로는 ANSI, IEEE, ISO, POSIX, XOPEN, FIPS등을 들 수 있는데, 그 중에 최근 XOPEN 기관에 의한 1170 SPEC의 표준은 UNIX OS설계에 대한 표준으로, 이 표준에 맞추어 OS를 개발하게 되면, 향후 기종에 무관하게 적합한 OS를 사용자가 선택하여  사용할 수 있는 등 사용자의 기존 투자비용을 보호 받을 수 있는 이점도 제공 받을 수 있게 된다. 


최근에는 UI나 OSF도 각자의 독자노선에서 벗어나 UNIX를 통합하여 통일성 있게 개발하자는데 뜻을 같이하여 결국 AT&T사의 SYSTEM V 계열의 OS인 SVR4를 UNIX 표준OS로 정하였고, UNIX업체에서도 그에 맞추어 OS를 재 설계하게 되는데, SUN사의 SunOS도 SYSTEM V OS구조로 바꾸면서 그 명칭을 "SOLARIS"라고 바꾸게 되며, HP사의 HP-UX도 VERSION 10부터 SYSTEM V OS를 완벽하게 수용하게 된다. 


UNIX OS의 취약한 기능들 즉 OLTP 처리기능, 시스템 보안기능, 분산 처리기능, 시스템통합 관리 기능 등이 계속 보완 되었으며, 주변기술 즉 전세계를 하나의 망으로 연결하는 INTERNET 기술, 대용량의 데이터를 처리할 수 있는 데이터베이스 기술, 지역적으로 떨어져 있는 컴퓨터간에 연계 처리하는 분산처리 기술, 일반 사용자를 위한 GUI기술들이 상당히 급진전하고 있다. 물론 컴퓨터 하드웨어 기술도, 최근 해를 거듭할수록 발전하여 하나의 CPU로 TIME SHARING하여 다중 처리하던 방식에서, MEMORY를 수 십 개의 CPU가 공유하면서 병렬 처리하는 SMP(SYMMETRIC MULTI-PROCESSOR) UNIX 장비도 개발되었으며, MEMORY를 공유하지않고 UNIX 컴퓨터를 여러 대로 묶어, 고속의 통신라인을 통해 병렬 처리하는 MPP(MASIVELY PARALLEL PROCESSORS) UNIX장비가 발표되어, 이제는 기존 HOST컴퓨터와 거의 동일한 성능의 UNIX장비가 계속 발표되고 있고, 실 사용업체도 많아지고 있다.  



이 댓글을 비밀 댓글로
    • 부국강병
    • 2010.11.20 15:37
    그동안 본 유닉스 역사 관련 글중에 제일 이해하기 쉽고 깊이가 있어 보입니다...
    좋은글 감사합니다.