Research UNIX V1

Research UNIX V1은 1971년 11월 출판된 《UNIX Programmer's Manual》 제1판으로 구분되는 Research UNIX의 초기 판본이다. First Edition UNIX라고도 하며 DEC PDP-11/20에서 파일 시스템·프로세스·셸·문서 편집 프로그램을...

정식 명칭First Edition UNIX
별칭UNIX First Edition, Research UNIX 제1판
분류Research UNIX의 초기 연구용 운영체제 판본
개발 기관Bell Labs
주요 개발자켄 톰프슨, 데니스 리치 외
기준 매뉴얼1971년 11월 《UNIX Programmer's Manual》 제1판
기반 하드웨어DEC PDP-11/20
구현 언어PDP-11 어셈블리어
주요 기능다중 사용자·시분할·계층형 파일 시스템·프로세스 생성
대표 프로그램셸·ed·roff·파일 유틸리티·PDP-11 어셈블러
전신1969~1970년의 PDP-7 UNIX
후속 연구판Research UNIX V2
개발 상태역사적 판본
보존 자료1st Edition manual·복원된 소스 일부
기술 자료TUHS First Edition

Research UNIX V1은 1971년 11월 출판된 《UNIX Programmer's Manual》 제1판으로 구분되는 Research UNIX의 초기 판본이다. First Edition UNIX라고도 하며 DEC PDP-11/20에서 파일 시스템·프로세스·셸·문서 편집 프로그램을 제공했다. 1969년 PDP-7에서 시작된 최초의 UNIX 코드와 혼동하면 안 된다. PDP-7 UNIX는 V1보다 이른 실험 시스템이고 제1판은 PDP-11 기반의 실제 업무용 UNIX가 일정한 문서와 명령 체계를 갖춘 시점을 나타낸다.[1][2]

제1판에서는 fork를 이용한 프로세스 생성, 계층형 디렉터리와 파일 조작, ed 편집기 및 roff 문서 조판 도구가 중요한 역할을 했다. 특허 부서의 문서 처리 작업과 시스템 소프트웨어 자체의 개발에 활용됐으며, PDP-11 어셈블러와 셸을 통해 명령을 조합할 수 있었다. 다만 후대 V7의 Bourne shell·TCP/IP·현대 POSIX 스레드 환경이 모두 처음부터 포함돼 있던 것은 아니다.

이 판본의 주요 소프트웨어는 PDP-11 어셈블리어를 기반으로 구현됐다. B·C 언어의 개발은 UNIX와 관련돼 있었지만 커널의 C 재작성은 이후 1973년 V4 시대에 이루어진 변화다. 초기 판본의 전체 원본 소스는 후대의 V6·V7처럼 완전한 공개 파일 묶음으로 남아 있지 않으며 수작업 복원된 코드와 당시의 매뉴얼을 구분해서 연구해야 한다.[3]

개발 배경

Bell Labs는 1969년 Multics에서 철수한 뒤 톰프슨을 중심으로 보다 작은 시분할 시스템을 만들었다. 초기 PDP-7 운영체제에서 확보한 파일 시스템과 프로세스·명령 실행 구조를 PDP-11로 옮기고, 특허 부서가 사용하는 문서 편집과 조판 도구를 제공하면서 UNIX는 실제 업무를 수행하는 운영체제로 발전했다. 1971년의 매뉴얼 제1판은 이러한 명령·시스템 호출과 개발 환경의 기능을 문서화했다.[4]

운영체제 구조

시스템은 당시의 제한된 물리 메모리와 PDP-11 장치 환경에 맞춰 작성됐다. 커널은 프로세스·파일·장치의 기본 동작을 맡고 사용자 프로그램인 셸과 편집기·파일 도구가 그 위에서 실행됐다. 파일을 계층적인 경로로 다루고 장치와 일반 파일에 공통 접근 방식을 적용하는 설계는 향후 UNIX 계열의 특징이 됐다. 당시의 커널·명령은 후대의 네트워크·가상 메모리와 시스템 서비스 기능이 대폭 추가되기 전의 단순한 구조였다.

제1판에 등장하는 셸은 이후 스티븐 본이 설계한 Bourne shell과 같은 구현이 아니다. 초기 UNIX의 명령 해석기는 사용자가 프로그램을 호출하고 파일을 조작하는 역할을 했으며, 파이프 기능도 본격적인 구현 시점이 뒤에 온다. '현재 UNIX의 모든 명령'을 1971년 제품에 소급하여 적지 않아야 한다.[5]

프로그램과 파일 시스템

사용자는 ed로 텍스트를 수정하고 roff로 문서 형식을 만들 수 있었다. 명령어와 도구는 단일한 거대 응용 프로그램보다 작은 작업을 수행하는 형태로 설계됐다. 기본 파일 유틸리티와 디렉터리 작업은 하위 프로그램이 파일 경로와 프로세스 기능을 이용하도록 했으며 이러한 인터페이스는 이후 C 언어·POSIX 시스템 프로그래밍의 선행 모델이 됐다.

운영체제 개발은 시스템 자체에서 파일을 편집하고 어셈블하며 실행하는 환경을 확보하는 방향으로 진행됐다. 다만 최초에는 다른 컴퓨터에서 작성한 프로그램을 테이프로 옮기는 크로스 개발 방식을 썼고, 1971년에는 PDP-11용 시스템 소프트웨어의 구성이 정비됐다.[6]

사료와 복원

1971년 판본의 역사 자료에는 인쇄된 매뉴얼·코드 목록과 복원 프로젝트의 결과가 함께 사용된다. 보존된 디지털 자료가 원본 설치 매체 전체를 완벽하게 포함한다고 볼 수 없으며, 복원된 파일의 날짜와 편집 방식은 연구자가 확인해야 한다. TUHS의 Unix Tree는 First Edition UNIX와 후속 Research UNIX의 소스·문서 관계를 탐색할 수 있도록 제공된다.[7][8]

영향과 후속 판본

제1판은 현대 기준의 범용 PC 운영체제와는 다르지만 UNIX의 핵심 실행 모델을 실용화했다. V2와 V3를 거치며 하드웨어와 C 언어 도구·파이프 기능이 발전했고, Research UNIX V4에서 커널의 C 재작성이 이루어졌다. 제1판은 UNIX 개발의 시작 그 자체보다는 이후 여러 판본이 발전한 기준점이다.

  1. The Open Group: 1971년 UNIX First Edition ↩
  2. TUHS Unix Tree: 1971년 11월의 First Edition ↩
  3. Diomidis Spinellis: A Repository of Unix History and Evolution ↩
  4. Dennis Ritchie: UNIX 진화사 ↩
  5. The Open Group: First Edition 개요 ↩
  6. Computer History Museum: 초기 UNIX 코드 ↩
  7. TUHS: First Edition 자료 목록 ↩
  8. Spinellis: UNIX 버전의 사료 보존 상태 ↩