기술을 얘기한다 2013.02.16 19:34

아래의 내용은 책(Practical Unix & Internet Security)에서 유닉스 역사 관련 부분만 발췌하여 대충 번역한 것이다. -- 고양우

유닉스의 뿌리는 1960년대 중반으로 거슬러 올라간다. 이때 AT&T(American Telephone and Telegraph), 하니웰, 제네럴 일렉트릭, MIT는 정보 기기를 개발하는 대규모 프로젝트를 시작한다. 이 프로젝트의 이름은 멀틱스(MULTICS, Multiplexed Information and Computing Service)였는데 국방성의 아르파(ARPA, Advanced Research Projects Agency)로부터 대규모 지원을 받았으며 연구는 대부분 MIT에서 이뤄졌다.

멀틱스는 고속 프로세서, 기억장치, 통신 장치를 (레고 블록처럼 – 고양우) 일정 단위로 조립할 수 있는 시스템이었다. 따라서, 컴퓨터의 일부분만 수리를 위하여 끌 수 있고 일년 내내 24시간 계속 운영할 수 있으며 더 많은 단위를 덧붙여서 성능을 향상 시킬 수도 있도록 하는 것이 목표였다. 요즘 보기론 별 것 아닐 수도 있겠지만 당시로서는 그런 기능이 없었다.

멀틱스는 군대 보안을 고려해서 설계가 되었다. 멀틱스는 외부 공격을 버텨낼 뿐만 아니라 같은 시스템을 사용자들끼리도 서로의 안전을 확보할 수 있도록 설계되었다. 예를 들어, 다단계 보안 기능을 구현했는데 요즘의 컴퓨터 시스템에서의 보안 수준도 거의 대부분 이에 미치지 못한다.

1969년 멀틱스는 일정에 많이 뒤쳐져 있었다. 게다가 MIT와는 한참 먼 뉴저지에 연구소를 두고 있는 AT&T는 벌써 프로젝트에서 빠져나갈 생각이었다. 

그 해에 멀틱스 프로젝트에 참여했는 AT&T의 연구자인 켄 톰슨은 멀틱스 아이디어를 혼자서 더 파볼 생각으로 쓰지 않던 PDP-7 기계 하나를 붙들고 있었다. 여기에 멀틱스 연구를 했던 데니스 리치가 참여하고 피터 뉴먼이 유닉스라고 이름을 붙여주었다. 이 이름은 멀틱스의 멀티(여럿)을 유니(하나)로 바꾼 말장난 이기도 하지만 한편으로는 아직도 포기 못하고 계속 연구를 이어나가는 (이후로도 연구는 10년 넘게 이어졌다) MIT에 대한 반발이기도 했다. 멀틱스가 여러 가지를 다 잘하려고 하는 것이었다면 유닉스는 한 가지 즉 프로그램을 돌리는 것만 잘 하자는 것이었다. 그리고 보안 기능은 다 버렸다.

이렇게 범위를 좁혔기 때문에 유닉스는 멀틱스보다 몇 달 앞서서 가동되기 시작했고 1년도 안되어 DEC사의 새 기계인 PDP-11에 돌아가도록 수정할 수 있었다.

유닉스에는 도구(tool)이라고 불리는 한 가지 기능만 하는 여러 프로그램이 있는데 이것을 조합해서 복잡한 일을 하게 만들 수 있었다. 또한 소스 코드가 제공되었기 때문에 수많은 개발자들이 기존의 도구를 개선하거나 추가할 수 있었다.

1973년에 데니스 리치가 새로 만든 프로그래밍 언어인 C를 이용하여 켄 톰슨은 유닉스의 거의 대부분을 새로 작성하였다. C 언어로 짠 프로그램은 (다른 고급 언어와 마찬가지로) 다른 컴퓨터로 옮겨서 컴파일만 다시 하면 동작하였다. 하지만, 입출력 부분은 컴퓨터 마다 운영 체제 마다 달랐기 때문에 완전히 똑같이 동작하지는 않았는데 이런 차이를 해결하기 위하여 마이크 레스크는 “이식가능한 입출력 라이브러리”(portable I/O library)를 개발하였다. 물론 모든 문제가 해결되지는 않았다. 1977년에 입출력 라이브러리를 다른 기계 다른 운영체제에 이식하는 것 보다는 유닉스를 통째로 이식하는 것이 더 쉽다는 것을 깨닫고 유닉스를 인터데이터 (Interdata) 8/32 기계에 이식하였고 1978년에는 DEC사에서 나온 새 기계인 VAX 미니컴퓨터에도 이식하였다. 유닉스는 점점 유명해지고 있었고 컴퓨터 회사들도 유닉스를 마케팅에 활용하였다.

법적인 제약 때문에 AT&T는 컴퓨터 소프트웨어를 광고, 마케팅, 지원할 수 없었지만 유닉스에 대한 수요는 늘어만 갔다. 1977년에 500개 이상의 사이트에서 유닉스를 운영하였고 그 중 125개는 대학이었다. 미국 외의 10개국의 나라에서도 유닉스를 사용하였다.

당시 컴퓨터는 물리적으로 통제된 환경에서 (즉, 특별히 허가된 사람들만 들어갈 수 있는 전산실 안에서 – 고양우) 사용하는 것이므로 시스템 보안이 별로 중요하지 않았다. (어차피 서로 다 아는 전문가들 끼리 쓰는 공유하는 시스템이니까. – 고양우) 심지어는 루트 (즉, 관리자) 권한에 비밀번호를 거는 것 조차 성가신 일이라고 생각할 정도였다.

UC 버클리 대학은 다른 학교들과 마찬가지로 400달러를 주고 운영체제 소스코드가 다 들어있는 테이프를 샀다. 이 학교의 대학원생이던 빌 조이와 척 헤일리는 단지 유닉스를 사용하는 것을 넘어서 많은 부분을 고치기 시작했다. 1978년에 빌 조이는 각종 프로그램과 수정된 유닉스 시스템을 담은 BSD(Berkeley Software Distribution) 30 카피를 우편 요금(아직 인터넷이 없던 시대니까! – 고양우) 포함 50달러에 팔았다.

그 후 6년간 ARPA의 지원에 힘입어 BSD 유닉스는 AT&T의 원본 보다 훨씬 뛰어난 운영체제가 되었다. 여러 장점이 있지만 제일 결정적인 것은 BSD 4.2에 포함된 랜(LAN, local area network) 기능이었다. 그래서 버클리 버전의 유닉스는 연구기관과 대학에서 매우 유명한 운영체제가 되었다.

신고
크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 신묘군

티스토리 툴바