원본 논문

1. Introduction

  • AT&T 의 Bell Labs 에서 만든 UNIX 운영체제에 대한 간략한 역사와 발전 과정을 서술했다고 한다.
  • UNIX 는 1969 년에 제작되었고, 1974 년에 처음으로 논문 으로 발표됐으며 본 논문은 1979 년에 발표되었다고 한다. UNIX 시스템에 대한 그간의 발전 과정은 많은 교훈을 주기에 본 논문을 저술했다고 하더라.

2. Origins - UNIX 가 발명되기까지 (~1969년) 의 Bell Labs 의 상황

  • 1968-1969 까지의 AT&T 의 Bell Labs 의 상황은 다소 어수선했다고 한다.
    • 기존에 진행하던 Multics 운영체제 프로젝트가 점점 망해가고 있었고
    • Bell Labs 의 컴퓨터 센터 (Murray Hil Computer Center) 는 GE645 를 운용중이었는데, GE635 에서 Multics 를 지원하기 위한 이 컴퓨터는 부족한 점이 많았으며
    • 연구소가 “Computing Service” 와 “Computing Research” 두 분야로 조직개편을 했다고 한다.
  • 저자 및 그의 동료들 (Thompson, Ritchie, Ossanna 등) 은 Multics 에 대해 마지막까지 희망의 끈을 놓지 않고 있었다.
    • 하지만 Multics 가 제공하기로 한 편리한 사용 환경은 나중에 보니 아주 제한된 사용자들에게만 (아마 저자 및 그의 동료들에게만?) 편리한 기능이었고
    • 이외 여러 문제가 있어서 Multics 프로젝트가 엎어진듯..
  • 결국에는 Multics 를 대체하기 위한 다른 것을 찾아야 했다고 한다. 이를 위해 여러 컴퓨팅 장비들을 물색해야만 했고 그것들을 구매하기 위해 노력을 많이 했으나 결국에는 기각되었다.
    • 이것은 그들이 회상해 봤을 때 너무나 많은 돈을 너무나 소규모의 조직에 쏟아 붓기를 제안했기 때문이었다.
    • 또한 연구소 입장에서는 운영체제 개발은 더이상 흥미가 느껴지지 않는 분야였고 연구소 내부에 computing center 를 더이상 운용하고 싶어했지 않았다.
    • 따라서 이런 장비를 구입하는 것은 연구소가 보기에 Multics 와 같은 또 다른 실패작을 만들어 낼 것이라고 생각했고 성공적인 무언가를 만들어낸다 하더라도 computing center 를 계속 운용해야 했기에 부담이 있었을 것이라고 했다.
  • 그럼에도 불구하고 1969년에는 여러 기술적인 진보가 있었는데..
    • UNIX 파일시스템의 기본적인 설계를 스케치 했었고
    • 스케치한 파일시스템의 성능을 시뮬레이션하기도 했으며
    • GE645 를 위한 새로운 운영체제를 기초적인 부분까지 완성했었다고 한다.
      • 웰컴메세지를 출력하는 기능까지 개발이 되었으나, GE645 의 수명이 몇달 안남았다고 결론이 났기에 여기까지만 하고 중단되었다.
  • 또한 1969년에 사용자가 우주선을 태양계의 이곳 저곳으로 움직이며 플레이하는 Space Travel 이란 게임을 만들었다.
    • 처음에는 Fortran 언어를 사용해 GECOS (GE635 에서 사용하는 운영체제) 에서 작동하도록 개발되었으나
    • 조작이 불편했고 GE635 를 사용할 경우 시간당 $75 의 금액이 부과되었기에 PDP-7 머신으로 갈아타게 되었다.
    • PDP-7 용의 버전은 기존의 GECOS 용 버전에서 플로팅 포인트 사칙연산 패키지나 디버깅 시스템 등 많은 부분을 개선했다고 한다.
    • 개발은 GECOS 에서 PDP-7 용으로 cross-assembly 하는 방식으로 진행됐다고 한다.
  • Space Travel 은 단순한 게임일 뿐이었지만, PDP-7 용 운영체제를 위한 많은 개념들을 제시해 주었다고 한다.
    • 이전에 스케치한 파일시스템을 실제로 구현했고
    • 파일시스템이 실제로 실행될 수 있도록 프로세스의 개념을 추가했으며
    • 복사 붙여넣기, 쉘 등의 사용자를 위한 유틸리티들이 추가되었다.
  • 여기까지 온 뒤에는 더이상 GECOS 에서 cross-assembly 하기 보다는 PDP-7 에서 직접 assembly 하는 것이 가능해졌고, 이후에 Brian Kernighan 이 “UNIX” 란 이름을 붙이며 우리에게 널리 알려진 UNIX 운영체제가 탄생하게 되었다.