Multics
Multics는 다수의 사용자가 하나의 대형 컴퓨터에 원격으로 접속하여 프로그램과 데이터를 지속적으로 이용할 수 있도록 설계된 시분할 운영체제이다. 명칭은 Multiplexed Information and Computing Service의 약자이다. 1960년대 중반 MIT의 Proje...
| 정식 명칭 | Multiplexed Information and Computing Service |
|---|---|
| 분류 | 시분할 운영체제, 메인프레임 운영체제 |
| 개발 | MIT Project MAC, General Electric, Bell Labs, Honeywell |
| 개발 책임자 | 페르난도 J. 코르바토 |
| 개발 시작 | 1964년 |
| 서비스 시작 | 1969년 |
| 개발 종료 | 1985년 |
| 최종 상용 릴리스 | MR 12.5 |
| 주요 구현 언어 | PL/I, 어셈블리어 |
| 대상 컴퓨터 | GE-645, Honeywell 6180, Honeywell Level 68, DPS-8/M |
| 사용자 인터페이스 | 명령줄 인터페이스 |
| 주요 구조 | 세그먼테이션과 페이징, 단일 수준 저장소, 보호 링 |
| 마지막 운영 종료 | 2000년 10월 |
| 소스 공개 | 2007년 공개 |
Multics는 다수의 사용자가 하나의 대형 컴퓨터에 원격으로 접속하여 프로그램과 데이터를 지속적으로 이용할 수 있도록 설계된 시분할 운영체제이다. 명칭은 Multiplexed Information and Computing Service의 약자이다. 1960년대 중반 MIT의 Project MAC을 중심으로 General Electric과 Bell Labs가 공동 개발했으며, 이후 General Electric의 컴퓨터 사업을 인수한 Honeywell이 개발과 상용 공급을 이어갔다.
Multics는 컴퓨터를 개별 조직이 직접 관리하는 장비가 아니라 전기나 전화와 같이 여러 사용자가 필요할 때 접속하는 컴퓨팅 유틸리티로 제공한다는 목표에서 출발했다. 이를 위해 다중 사용자 시분할, 지속적으로 동작하는 서비스, 자원의 동적 확장, 세밀한 접근 제어, 온라인 소프트웨어 개발과 시스템 관리 기능을 하나의 운영체제 안에 통합했다.
시스템의 저장 구조는 전통적인 파일과 프로세스 메모리를 명확히 분리하는 대신, 영구 저장소의 정보를 세그먼트라는 주소 지정 가능한 객체로 표현했다. 프로그램은 파일 입출력 호출을 반복하기보다 세그먼트를 가상 주소 공간에 연결한 뒤 일반적인 메모리 참조로 코드와 데이터에 접근할 수 있었다. 각 세그먼트는 계층형 디렉터리의 이름으로 식별되었으며, 하드웨어가 지원하는 세그먼테이션과 페이징을 통해 주기억장치와 보조 기억장치 사이에서 자동으로 이동했다.
Multics는 실행 중 처음 참조된 프로그램과 데이터를 연결하는 동적 링킹, 여러 프로세스가 같은 코드와 데이터를 공유하는 구조, 프로세스별 주소 공간, 계층형 파일 시스템, 파일마다 설정되는 접근 제어 목록, 권한 수준을 여러 단계로 나누는 보호 링을 운영체제의 핵심 구조로 사용했다. 운영체제 대부분을 당시 새롭게 등장한 고급 언어인 PL/I로 구현하고 일부 하드웨어 의존 부분만 어셈블리어로 작성한 점도 중요한 특징이다.
보안은 Multics 설계의 부가 기능이 아니라 컴퓨팅 유틸리티를 성립시키기 위한 기본 조건으로 취급되었다. 각 세그먼트와 디렉터리의 접근 권한, 프로세스 내부의 실행 권한, 사용자 신원과 보안 등급을 서로 다른 계층에서 검사했으며, 시스템의 핵심 기능은 보호 링의 안쪽 권한 수준에서 실행되었다. 이러한 구조는 이후 보안 커널, 참조 모니터, 권한 분리와 신뢰 컴퓨팅 기반에 관한 연구에 중요한 사례가 되었다.
Bell Labs는 개발 일정과 시스템 복잡성 문제로 1969년 Multics 공동 개발에서 철수했다. Multics에 참여했던 켄 톰프슨, 데니스 리치, 더글러스 매킬로이, 조 오산나 등은 이후 더 작은 컴퓨터에서 간결한 운영체제를 개발했고, 이 시스템은 Multics의 이름을 변형한 UNIX로 발전했다. UNIX는 Multics의 구조를 그대로 축소한 운영체제는 아니었지만, 시분할 환경, 계층형 파일 시스템, 셸을 통한 대화형 사용, 프로세스 중심 실행 환경과 온라인 개발이라는 목표를 다른 방식으로 이어받았다.
Multics는 연구 시제품에 머물지 않고 General Electric과 Honeywell의 상용 제품으로 공급되었으며, 대학, 기업, 정부와 군사 기관을 포함한 여러 시설에서 실제 업무 시스템으로 운용되었다. Honeywell은 1985년에 공식 개발을 종료했지만 기존 시스템의 사용은 이후에도 계속되었고, 마지막으로 실제 Multics 하드웨어를 운용하던 캐나다 국방부 시설의 시스템이 2000년 10월 종료되었다. 보존된 소스 코드와 문서는 이후 공개되었으며, 현재는 DPS-8/M 계열 에뮬레이터를 통해 Multics를 실행하고 새로운 수정판을 제작하는 보존·연구 활동이 이어지고 있다.
Multics의 여러 기능이 모두 최초로 발명된 것은 아니지만, 세그먼트 기반 가상 메모리, 영구 저장소와 주소 공간의 통합, 동적 링킹, 계층형 이름 공간, 세밀한 접근 제어와 다단계 보호 구조를 하나의 범용 운영체제에 일관된 형태로 결합했다는 점에서 운영체제 역사상 중요한 위치를 차지한다. 현대 운영체제는 Multics와 다른 구조와 하드웨어 환경을 사용하지만, 공유 라이브러리, 메모리 매핑 파일, 계층형 파일 시스템, 접근 제어 목록, 권한 수준과 보안 도메인 등에서 Multics가 체계화한 문제와 설계 개념을 계속 다루고 있다.