Research UNIX V6

Research UNIX V6는 1975년 5월의 《UNIX Programmer's Manual》 제6판에 대응하는 Research UNIX 운영체제다. Sixth Edition UNIX 또는 Version 6 UNIX라고도 부르며, Bell Labs 바깥의 대학·연구기관으로 UNIX...

공식 판본Sixth Edition UNIX
약칭V6 UNIX, UNIX Version 6
분류Research UNIX의 제6판
개발 기관Bell Labs
주요 개발자켄 톰프슨, 데니스 리치 및 연구팀
발행 시기1975년 5월
대표 하드웨어DEC PDP-11
구현 언어C·어셈블리어
기술적 선행Research UNIX V5
후속 주요 판본Research UNIX V7
특징대학·연구기관에 널리 보급된 소스 코드판
시스템 구성커널·셸·C 컴파일러·파일 유틸리티
사용자 공간ed·nroff·파일 명령과 프로그램 작성 도구
연관 문헌Lions' Commentary on UNIX 6th Edition
BSD와의 관계1BSD 초기 확장 배포판의 기반
아카이브TUHS Unix Tree: Sixth Edition

Research UNIX V6는 1975년 5월의 《UNIX Programmer's Manual》 제6판에 대응하는 Research UNIX 운영체제다. Sixth Edition UNIX 또는 Version 6 UNIX라고도 부르며, Bell Labs 바깥의 대학·연구기관으로 UNIX 소스 코드가 널리 전파된 판본으로 알려져 있다. 사용자와 개발자는 시스템 소스를 읽고 수정·재컴파일하며 당시의 PDP-11 하드웨어에서 운영체제와 응용 프로그램을 연구할 수 있었다.[1][2]

V6는 Bell Labs 내부에서 계속 발전한 초기 UNIX 구조를 비교적 완성된 형태로 제공했다. C로 작성된 커널과 저수준 어셈블리어, 셸·표준 파일 조작 도구와 컴파일러가 결합됐다. 사용자 프로그램은 프로세스를 만들고 파일·장치에 접근하며 입출력 재지정과 파이프를 통해 서로 다른 명령을 연결할 수 있었다. 단, 가상 메모리·네트워크·스레드·권한 기능을 오늘날의 UNIX와 동일하게 제공했다고 보는 것은 시대착오적이다.

V6의 소스가 UNIX 운영체제 교육에 사용되면서 존 라이언스의 소스 분석 자료인 *Lions' Commentary on UNIX 6th Edition*가 영향력을 갖게 됐다. 이 자료는 실제 V6 커널의 함수와 프로세스·스케줄링·파일 시스템 구현을 코드 단위로 설명하여 시스템 프로그래밍 교육의 중요한 고전이 됐다. 당시에는 소스 배포에 계약상 제한이 있었으므로 현대 공개 자료의 이용 가능성을 근거로 1975년의 UNIX가 오픈 소스 라이선스로 발행됐다고 표현해서는 안 된다.[3]

개발과 외부 보급

Bell Labs에서 시작된 UNIX는 초기 판본부터 외부 관심을 받았지만 V6 시기에는 연구·교육 목적으로 설치한 시스템이 크게 늘었다. 당시 AT&T 계열 회사의 소스 라이선스를 가진 대학과 기관들은 UNIX를 연구하거나 특정 하드웨어로 이식하고 응용 프로그램을 추가했다. 이러한 개조 중에는 원래 시스템으로 개선 사항이 되돌아온 것도 있었으며 각 기관의 독립적인 파생판이 형성되기도 했다.

1977년 버클리의 첫 BSD 확장 배포판인 1BSD는 V6 환경에 설치할 수 있는 편집기·Pascal 등의 추가 소프트웨어를 제공했다. 1BSD 자체가 V6와 독립된 완성 커널 운영체제로 판매된 것은 아니며, 이후 3BSD·4BSD 시기에 버클리 UNIX는 별도 커널 기술과 파일 시스템·네트워크 기능을 갖춘 운영체제 계열로 발전했다.[4][5]

커널과 메모리 관리

V6 커널은 제한된 PDP-11 메모리에서 프로세스를 실행하면서 문맥 전환과 스케줄링·시스템 호출을 처리한다. 사용자와 커널 실행은 CPU의 동작 모드와 하드웨어 지원 범위에 영향을 받았고, 프로세스 데이터의 배치와 스와핑이 메모리 관리에서 중요한 역할을 했다. 이는 현대의 대용량 64비트 가상 주소 공간과 요구 페이징을 기본으로 하는 커널 모델과 같지 않다.

커널 소스는 비교적 작은 규모로 구성돼 프로그램 실행·파일 입출력과 인터럽트·장치 처리의 관계를 학생과 연구자가 추적할 수 있었다. Lions의 주석서는 시스템 호출과 프로세스·메모리·파일 시스템 함수를 소스에 따라 분석한 자료로서, V6가 컴퓨터 과학 교육의 고전적인 실습 대상으로 자리 잡는 데 기여했다.[6]

파일 시스템과 유틸리티

UNIX의 파일 시스템은 일반 파일과 디렉터리·장치 파일을 계층형 이름 공간에서 관리하며 프로세스는 파일 디스크립터로 접근한다. 사용자와 그룹·파일 모드에 따른 접근 제어, 프로세스의 표준 입력·출력과 셸의 리디렉션은 텍스트 파일을 다루는 일상적인 도구를 서로 결합할 수 있도록 한다.

V6에는 C 프로그래밍·문서 조판·명령줄 파일 관리에 필요한 편집기와 컴파일러·유틸리티가 포함된다. 각각의 명령은 당시의 매뉴얼에서 인터페이스와 동작을 확인해야 하며, 제7판 이후 등장한 awk·Bourne shell 등 유명 UNIX 기능을 V6의 기본 구성으로 소급해서는 안 된다.[7]

라이선스와 보존

V6는 소스를 연구할 수 있도록 배포한 초기 대표 UNIX였지만 배포권은 AT&T·Western Electric이 정한 계약의 범위를 따랐다. 원본 소스와 커널 해설서도 역사적 저작권·라이선스의 대상이었으며 대학교육용 복사·전파는 당시의 제한과 별도의 협의를 필요로 했다.

The Unix Heritage Society는 V6의 커널·사용자 명령과 매뉴얼을 보존·열람할 수 있도록 자료를 제공한다. 에뮬레이터에서 V6 시스템을 실행하는 경우 PDP-11 CPU 모델과 당시의 디스크 장치·콘솔, 부팅 이미지 형식이 일치해야 한다. 복원된 이미지와 당시 실제 배포판이 완전히 동일한 구성인지도 구별해서 기록할 필요가 있다.[8]

후속 판본과 영향

Research UNIX V7은 V6 이후 C 라이브러리와 명령·실행 모델을 크게 확장한 판본이다. V6의 대중적인 소스 배포와 운영체제 교육 경험은 BSD의 성장, 다른 기관의 UNIX 이식 및 상용 제품의 초기 개발 문화에 중요한 토대를 제공했다.

  1. The Open Group: Sixth Edition의 보급 ↩
  2. TUHS Unix Tree: Sixth Edition ↩
  3. The Unix Heritage Society: Lions' Commentary ↩
  4. TUHS: 초기 BSD와 Sixth Edition 관계 ↩
  5. FreeBSD: BSD의 출발 ↩
  6. Lions: Commentary on UNIX 6th Edition ↩
  7. TUHS: Sixth Edition 파일·매뉴얼 ↩
  8. TUHS Unix Tree ↩