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 ElectricBell 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가 체계화한 문제와 설계 개념을 계속 다루고 있다.


역사

Project MAC과 컴퓨팅 유틸리티 구상

CTSS에서 Multics로

MIT, General Electric과 Bell Labs의 공동 개발

GE-645와 초기 구현

Bell Labs의 철수

Honeywell의 인수와 상용화

MIT의 연구와 서비스 운영

개발 종료 이후의 운용

마지막 Multics 시스템

소스 코드 공개와 복원

설계 목표

컴퓨팅 유틸리티

다중 사용자 시분할

지속적인 서비스와 고가용성

하드웨어와 소프트웨어의 확장성

공유와 격리의 통합

온라인 개발과 운영

시스템 구조

감독 프로그램과 실행 환경

프로세스와 주소 공간

세그먼트

페이지와 페이징

세그먼테이션과 페이징의 결합

단일 수준 저장소

디렉터리와 이름 공간

동적 링킹

공유 코드와 공유 데이터

파일과 저장소

계층형 디렉터리

세그먼트와 파일의 관계

다중 이름

심볼릭 링크

저장 공간 할당량

보조 기억장치 관리

백업과 복구

프로세스와 실행

프로세스 생성과 초기화

실행 도메인

프로시저 호출

링 간 호출

결함과 예외 처리

프로세스 간 통신

동시 실행과 자원 관리

보안과 보호

보안 설계 원칙

사용자와 프로젝트

접근 제어 목록

보호 링

링 브래킷과 게이트

최소 권한과 권한 분리

감사와 보안 기록

Access Isolation Mechanism

보안 커널 연구

취약점 분석과 보안 평가

사용자 환경

명령 처리기와 셸

명령줄 인터페이스

활성 함수

입출력 스트림

터미널과 원격 접속

전자우편과 사용자 통신

텍스트 편집과 문서 처리

사용자별 환경 구성

프로그래밍 환경

PL/I 기반 시스템 구현

어셈블리어와 하드웨어 의존 코드

컴파일러와 언어 처리기

객체 세그먼트

동적 링커

공유 라이브러리

디버깅과 계측

온라인 시스템 수정

지원 프로그래밍 언어

하드웨어

GE-645

Honeywell 6180

Series 60과 Level 68

DPS-8과 DPS-8/M

주소 변환 장치

보호 링의 하드웨어 지원

입출력 처리 장치

다중 프로세서와 시스템 확장

운영과 관리

시스템 부팅과 초기화

사용자 등록과 계정 관리

프로젝트와 자원 할당

성능 측정과 조정

장치 재구성

장애 처리와 복구

시스템 갱신

지속 운용

배포와 활용

MIT

대학과 연구 기관

기업

미국 정부와 군사 기관

캐나다 국방부

상용 시분할 서비스

주요 설치 시설

UNIX와의 관계

Bell Labs의 Multics 참여

UNIX 개발의 배경

Multics와 UNIX의 설계 차이

이름과 사용자 환경의 영향

계층형 파일 시스템과 셸

직접 계승과 독립적 재설계

다른 운영체제에 미친 영향

가상 메모리와 메모리 매핑

동적 링킹과 공유 라이브러리

계층형 파일 시스템

접근 제어 목록

보호 링과 권한 수준

보안 커널과 참조 모니터

고급 언어로 구현된 운영체제

온라인 시스템 개발 환경

보존과 현대적 실행

MIT Multics 소스 아카이브

Multics 문서 보존

DPS-8/M 에뮬레이터

에뮬레이터 기반 Multics 시스템

현대 Multics 릴리스

역사·교육·운영체제 연구

평가

기술적 성과

구현 규모와 복잡성

성능과 하드웨어 비용

상업적 성과

실패라는 통념

운영체제 연구에서의 위치

관련 문서