Research UNIX V3
Research UNIX V3는 Bell Labs에서 1973년 2월에 정리한 Research UNIX 제3판이며 Third Edition UNIX라고도 한다. 제2판의 PDP-11/20 중심 실행 환경 이후 PDP-11/45 등 당시의 새 하드웨어를 수용해 발전한 운영체제다. 커널이...
| 정식 명칭 | Third Edition UNIX |
|---|---|
| 분류 | Research UNIX의 제3판 |
| 개발 기관 | Bell Labs |
| 주요 개발자 | 켄 톰프슨, 데니스 리치 등 |
| 판본 기준 | 1973년 2월 |
| 기반 하드웨어 | DEC PDP-11/45 |
| 커널 구현 | 주요 커널은 PDP-11 어셈블리어 |
| 개발 언어 | 초기 C 컴파일러, PDP-11 어셈블리어 |
| 주요 변화 | 파이프·명령 도구 개선, 시스템 개발 확장 |
| 매뉴얼 | 1973년 2월 《UNIX Programmer's Manual》 제3판 |
| 소스 보존 | 매뉴얼 및 초기 C 컴파일러의 일부 |
| 역사적 전환 | C 커널로 재작성하기 직전 판본 |
| 아카이브 | TUHS Unix Tree: V3 |
| 전신 | Research UNIX V2 |
| 후속 판본 | Research UNIX V4 |
| 상태 | 역사적 연구용 UNIX 판본 |
Research UNIX V3는 Bell Labs에서 1973년 2월에 정리한 Research UNIX 제3판이며 Third Edition UNIX라고도 한다. 제2판의 PDP-11/20 중심 실행 환경 이후 PDP-11/45 등 당시의 새 하드웨어를 수용해 발전한 운영체제다. 커널이 어셈블리어로 작성된 마지막 Research UNIX 판본으로 기록되며 파이프와 사용자 명령 체계가 발전한 점에서 제2판과 구별된다. 이후 1973년 11월의 Research UNIX V4는 커널 대부분을 C로 재작성하는 전환점이 됐다.[1][2]
UNIX의 초기 설계에는 작은 명령어 도구와 계층형 파일 시스템·프로세스 실행이 있었지만, 여러 명령을 한 번에 결합해 처리하는 기능은 초기부터 완성된 것이 아니었다. 더글러스 매킬로이가 제안한 파이프(Pipe)는 1973년 구현돼 프로그램 하나의 표준 출력을 다음 프로그램의 표준 입력으로 전달하는 방식을 발전시켰다. 파일을 임시로 저장했다가 다시 열 필요 없이 프로그램들을 조합하는 모델은 훗날 UNIX 철학을 상징하는 핵심 요소가 됐다.[3]
V3는 C 프로그래밍 언어가 발전하던 시기에 만들어졌다. C 컴파일러가 있었고 언어의 타입·구조체 구현도 변화 중이었지만, 이 시점의 커널은 여전히 주로 어셈블리어였다. TUHS가 보존한 V3/c 자료에는 데니스 리치의 초기 C 컴파일러 코드가 있으며, 제3판의 소프트웨어를 이해하려면 컴파일러와 커널이 어떤 언어로 구현됐는지 구분해야 한다. 커널의 C 재작성은 V3가 출판된 뒤 상당 부분 진행돼 V4의 특징으로 기록된다.[4]
파이프와 별개로 V3 시기에는 셸 명령·계정 관리와 여러 텍스트 처리 프로그램의 기능이 확장됐다. 시스템 프로그램은 /bin·/usr/bin과 같은 실행 파일 경로를 통해 제공됐고, crypt·kill·passwd·split·uniq·yacc 등 새 도구와 기능이 이 시대의 매뉴얼에서 확인된다. 다만 매뉴얼에 실린 당시 명령 이름을 현대 POSIX에서 정의된 같은 이름의 명령과 완전히 같은 구현·옵션이라고 해석해서는 안 된다.[5]
제3판의 기술적 제약에는 PDP-11 어셈블리어에 강하게 묶인 커널과 당시의 제한된 메모리·장치 구조가 포함된다. 이 구조는 다른 프로세서로 운영체제를 옮기는 데 상당한 개발 작업을 요구했다. UNIX 팀이 커널을 고수준 언어로 옮기려 한 배경에는 새로운 하드웨어로의 이식성과 유지보수성을 높일 필요가 있었다. 이후 V4의 C 기반 커널도 장치 제어·인터럽트 처리 등의 일부 저수준 코드는 어셈블리어를 유지했다.
TUHS의 V3 자료는 완성된 설치·실행 이미지를 완전히 보존한 자료가 아니다. 매뉴얼과 일부 C 컴파일러 소스 등이 알려져 있으므로 그 시대의 전체 시스템과 사후에 수집된 소스 단편을 구별해야 한다. V3는 프로그램의 조합 능력과 어셈블리어 기반 커널의 마지막 단계를 함께 보여주는 독립 판본이며, Research UNIX V4의 새로운 C 커널은 별도 문서로 다루는 것이 정확하다.[6]