맨위로가기

멀틱스

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

멀틱스는 1960년대 초 MIT에서 개발을 시작한 시분할 시스템의 한계를 극복하기 위한 운영 체제이다. 1964년 GE-645 메인프레임용으로 시작되었으며, 허니웰에 인수된 후 1985년 B2 레벨 보안 운영 체제로 인증받았다. 벨 연구소의 참여와 유닉스 개발, 허니웰의 개발 지속, Groupe Bull에서의 배포를 거쳐 2000년대 초반까지 사용되었다. 멀틱스는 단일 레벨 저장소, 동적 연결, 보안, 계층적 파일 시스템 등 다양한 기술 혁신을 선보였으며, 유닉스와 다른 운영 체제에 큰 영향을 미쳤다.

더 읽어볼만한 페이지

  • 1969년 소프트웨어 - 유닉스
    유닉스는 벨 연구소에서 개발된 운영 체제로, 작고 효율적인 디자인, 계층적 파일 시스템, 명령줄 인터페이스 등의 특징을 가지며 C 언어로 재작성되어 이식성이 높아 다양한 운영체제의 기반이 되었고 현재도 널리 사용된다.
  • AT&T - AT&T 스타디움
    AT&T 스타디움은 미국 텍사스주 알링턴에 위치한 댈러스 카우보이스의 홈구장으로, 개폐식 지붕과 세계 최대 규모의 비디오 보드를 갖춘 다목적 돔 경기장이다.
  • AT&T - AT&T 모빌리티
    AT&T 모빌리티는 2001년 싱귤러 와이어리스로 설립되어 미국 최대 이동통신 사업자가 되었으며, 4G 및 5G 네트워크를 운영하고 다양한 요금제와 선불 서비스를 제공한다.
  • 시분할 운영체제 - OpenVMS
    OpenVMS는 DEC에서 개발한 멀티유저, 멀티프로세싱 가상 메모리 기반 운영 체제로, 고도의 안정성, 보안성, 확장성을 특징으로 하며 다양한 아키텍처, 클러스터링, 네트워킹, 프로그래밍 언어 및 개발 도구를 지원한다.
  • 시분할 운영체제 - TOPS-10
    TOPS-10은 DEC의 PDP-10 컴퓨터를 위한 시분할 운영체제로, 가상 메모리, 대칭형 멀티 프로세싱 등의 기능을 갖추며 발전했고, 현재는 에뮬레이터를 통해 사용 가능하며 후대 기술에 영향을 미쳤다.
멀틱스 - [IT 관련 정보]에 관한 문서
일반 정보
멀틱스 로고
멀틱스 로고
BAN.AI 공개 멀틱스 서버 로그인 화면
BAN.AI 공개 멀틱스 서버 로그인 화면
개발MIT, GE, Honeywell, 벨 연구소
출시일1969년
최신 버전 출시일2023년 8월 10일
프로그래밍 언어PL/I, 어셈블리어
사용자 인터페이스명령 줄 인터페이스
커널 종류모놀리딕 커널
지원 플랫폼GE-645, 허니웰 6000 시리즈 (Honeywell 6180, Series-60/Level-68, DPS-8/M 메인프레임)
라이선스원래 사유 소프트웨어였으나 2007년부터 자유 소프트웨어 멀틱스 라이선스
웹사이트http://multics-wiki.swenson.org
상태성숙, 현재, 역사적, 에뮬레이터 사용 가능
영향받은 운영체제Unix, GEORGE 3, ICL VME, PRIMOS, Domain/OS, Stratus VOS
선행 운영체제Compatible Time-Sharing System
언어영어
약자multiplexed information and computing service
기타
소스 모델오픈 소스

2. 역사

1964년 MIT (페르난도 J. 코르바토 등), AT&T 벨 연구소, 제너럴 일렉트릭(GE)의 공동 프로젝트로 멀틱스(Multics) 개발이 시작되었다. 초기에는 GS-645 메인프레임용으로 개발되었고, 나중에 하니웰 6180 시리즈 머신에서 지원되었다.[44]

1969년 벨 연구소가 프로젝트에서 탈퇴하면서 유닉스가 탄생하는 계기가 되었다. 1970년에는 GE의 컴퓨터 부문이 허니웰에 인수되었다.

멀틱스는 GE와 허니웰에 의해 상품화가 시도되었으나 큰 성공을 거두지는 못했다. 그러나 컴퓨터 시장에 큰 영향을 미쳤으며, "유틸리티 컴퓨팅"을 목표로 하는 등 다양한 참신한 아이디어를 담고 있었다.

1985년 NSA 산하 국가 컴퓨터 보안 센터(NCSC)의 오렌지 북) B2 레벨 보안 운영 체제로 인증받은 최초의 OS였다.

1975년부터 2000년까지 Bull은 유럽에서, Bull HN Information Systems Inc.는 미국에서 Multics를 판매했다. 2006년에는 Bull SAS가 Multics의 몇몇 버전을 오픈 소스화했다.[46]

2. 1. 개발 배경 및 초기 역사

1960년대 초, 컴퓨터는 여전히 고가의 장비였고, 여러 사용자가 동시에 한 대의 컴퓨터를 사용하는 시분할 시스템이 주류를 이루었다. MIT는 이러한 시분할 시스템의 한계를 극복하고, 더욱 강력하고 유연한 컴퓨팅 환경을 제공하기 위해 멀틱스 개발을 시작했다. 초기에는 GE-645 메인프레임용으로 개발되었으며, 이후 허니웰 6180 시리즈 머신에서도 지원되었다.

멀틱스는 1964년 MIT, 벨 연구소, 제너럴 일렉트릭(GE)의 공동 프로젝트로 시작되었다.[44] 1969년 벨 연구소가 프로젝트에서 철수하면서, 그곳에서 일했던 사람들 중 일부는 유닉스 시스템을 만들었다.[44] 1970년 GE의 컴퓨터 사업은 허니웰에 인수되었고, 멀틱스 개발은 MIT와 허니웰에서 계속되었다. 1973년경, 멀틱스는 허니웰 6180 머신에서 지원되었으며, 여기에는 보호 링에 대한 하드웨어 지원을 포함한 보안 개선 사항이 포함되었다.

1975년 MIT에서 멀틱스 사용량이 감소했고 1976년까지 이전 수준으로 회복되지 않았다.[15][16] MIT는 가격 인하를 통해 1978년에 멀틱스로 사용자를 다시 유치하는 데 성공했다.[17]

2. 2. 벨 연구소의 참여와 철수, 그리고 유닉스의 탄생

벨 연구소는 1969년에 멀틱스 프로젝트에서 철수했다. 멀틱스 개발은 MIT와 제너럴 일렉트릭(GE)에서 계속되었다. 벨 연구소에서 멀틱스 개발에 참여했던 연구원들은 멀틱스 개발 경험을 바탕으로 유닉스 시스템을 만들었다.[15][16]

1985년, 멀틱스는 NSA 산하 국가 컴퓨터 보안 센터(NCSC)에서 발행한 신뢰할 수 있는 컴퓨터 시스템 평가 기준(오렌지 북)에서 B2 레벨 보안 운영 체제로 인증받았다. 이는 이 수준으로 평가된 최초의 운영 체제였다.

2. 3. 허니웰의 인수와 개발 지속

1970년, 허니웰은 GE의 컴퓨터 사업 부문을 인수하면서 멀틱스도 함께 인수했다.[40] 1973년경, 멀틱스는 보호 링에 대한 하드웨어 지원을 포함한 보안 개선 사항이 적용된 허니웰 6180 머신에서 지원되었다.

허니웰은 1985년까지 멀틱스 시스템 개발을 계속했다. 대학, 산업 및 정부 기관에 약 80개의 수백만 달러 규모의 사이트가 설치되었다. 1980년대 초 프랑스 대학 시스템에는 여러 설치가 있었다. 허니웰이 멀틱스 지원을 중단한 후, 사용자는 유닉스와 같은 다른 시스템으로 마이그레이션했다.

1985년, 멀틱스는 국가 컴퓨터 보안 센터(NCSC), 즉 NSA의 한 부서에서 발행한 신뢰할 수 있는 컴퓨터 시스템 평가 기준에서 B2 레벨 보안 운영 체제로 인증을 받았다. 이는 이 수준으로 평가된 최초의 운영 체제였다.[21]

2. 4. 대한민국에서의 멀틱스

대한민국에서 멀틱스는 직접적으로 널리 사용되지는 않았다. 그러나 멀틱스의 기술적 유산은 유닉스를 거쳐 대한민국 IT 산업 발전에 큰 영향을 미쳤다. 특히, 유닉스는 1980년대부터 대한민국 대학과 연구소를 중심으로 도입되어, 컴퓨터 과학 교육과 연구에 활용되었다.

3. 주요 특징 및 기술 혁신

멀틱스는 다음과 같은 주요 특징과 기술 혁신을 가지고 있었다.


  • '''단일 레벨 저장소''' : 컴퓨터 파일(멀틱스에서는 ''세그먼트''라고 부름)과 컴퓨터 프로세스의 메모리 사이의 구분을 없앴다.
  • '''동적 연결''' : 실행 중인 프로세스가 외부 루틴을 포함하는 세그먼트를 자신의 주소 공간에 추가하여 사용할 수 있게 했다.
  • '''컴퓨터 보안''' : 처음부터 보안을 고려하여 설계되었으며, 링 기반 보안 모델을 도입했다.
  • '''계층적 파일 시스템''' : 파일 이름을 임의의 길이와 구문으로 지정할 수 있었고, 디렉터리 간의 심볼릭 링크도 지원했다.
  • '''온라인 재구성''' : 중앙 처리 장치, 메모리 뱅크, 디스크 드라이브 등을 시스템 작동 중에도 추가하고 제거할 수 있었다.
  • '''프로세스별 스택''' : 커널에서 사용하는 현재 표준 개념을 최초로 사용했으며, 각 보안 링에 대해 별도의 스택을 사용했다.
  • '''명령어 프로세서의 일반 사용자 코드 구현''' : 이 아이디어는 나중에 유닉스 쉘에서 사용되었다.
  • '''PL/I''' : ALGOL의 확장된 버전인 ESPOL로 작성된 Burroughs MCP 시스템 이후, PL/I라는 고급 언어로 작성된 최초의 운영 체제 중 하나이다.[11][12]

3. 1. 단일 레벨 저장소 (Single-Level Store)

멀틱스는 컴퓨터 파일(멀틱스에서는 ''세그먼트''라고 부름)과 ''컴퓨터 프로세스 메모리'' 사이의 명확한 구분을 없앤 단일 레벨 저장소를 구현했다. 프로세스의 메모리는 해당 프로세스의 주소 공간에 매핑된 세그먼트로만 구성된다. 이를 읽거나 쓰려면 프로세스는 일반적인 중앙 처리 장치(CPU) 명령어를 사용하며, 운영 체제는 모든 수정 사항이 디스크에 저장되도록 처리한다. POSIX 용어로는 모든 파일이 mmap()된 것과 같다. 그러나 멀틱스에는 유닉스와 같이 매핑된 파일 보관에 사용되는 메모리와 별도로 ''프로세스 메모리''라는 개념이 없다. 시스템의 ''모든'' 메모리는 파일 시스템에 나타나는 ''일부'' 세그먼트의 일부이며, 여기에는 프로세스의 임시 스크래치 메모리, 커널 스택 등이 포함된다.[7]

이 방식의 문제점은 기본 개념의 문제가 아니라, 그것이 작동하던 머신의 아키텍처의 문제였다. 세그먼트(파일)의 크기가 256K×36비트 워드(약 1MB)로 제한되었다. 따라서, 그 이상의 크기의 파일을 처리하려면 특별한 처리가 필요했으며, 이를 멀티 세그먼트 파일이라고 불렀다. 하지만, 거대한 데이터베이스나 그래픽이 사용되기 전이었기 때문에, 이 제한에 걸리는 경우는 거의 없었다.

3. 2. 동적 연결 (Dynamic Linking)

멀틱스는 실행 중인 프로세스가 외부 루틴을 포함하는 세그먼트를 자신의 주소 공간에 추가하여 사용할 수 있도록 하는 동적 연결 기능을 제공했다.[7] 이를 통해 애플리케이션은 항상 최신 버전의 외부 루틴을 사용할 수 있었는데, 이러한 루틴은 다른 세그먼트에 유지되며 프로세스가 처음 실행을 시도할 때 동적으로 연결되기 때문이다.[7] 다른 프로세스가 서로 다른 검색 규칙을 사용할 수 있으므로, 다른 사용자가 서로 다른 버전의 외부 루틴을 사용할 수 있었다.[7]

멀틱스의 동적 연결은 특별한 동적 링크 라이브러리 (DLL)를 필요로 하지 않으며, 프로그램은 접근 권한이 있는 모든 실행 가능한 세그먼트에 동적으로 연결할 수 있었다.[7]

멀틱스 보안 기능을 적절하게 설정하면, 다른 세그먼트의 코드가 다른 프로세스에서 유지 관리되는 데이터 구조에 접근할 수 있다는 중요한 기능도 있었다.[7] 따라서, 데몬으로 부분적으로 실행되는 애플리케이션 (다른 프로세스에서)과 상호 작용하기 위해 사용자의 프로세스는 동적으로 연결된 코드 세그먼트 (데몬과 관련된 일부 작업을 구현하는 코드 세그먼트)에 일반적인 프로시저 호출 명령을 실행한다.[7] 해당 세그먼트의 코드는 데몬에서 유지 관리하고 사용하는 데이터를 수정할 수 있다.[7] 요청을 시작하는 데 필요한 작업이 완료되면, 간단한 프로시저 반환 명령으로 사용자의 프로세스 제어를 사용자의 코드로 반환한다.[7]

3. 3. 보안

멀틱스는 처음부터 보안을 고려하여 설계된 최초의 주요 운영 체제 중 하나였다.[7] 링 기반 보안 모델을 도입하여, 시스템의 각 구성 요소에 접근 권한을 부여하고, 권한이 없는 접근을 차단했다.

초기 버전의 멀틱스는 보안 취약점이 발견되어 여러 차례 침입을 당하기도 했다.[41] 하지만, 이러한 문제점을 개선하기 위한 노력을 통해 보안이 강화되었고, 특히 2세대 하드웨어에서는 링 기반 보안에 대한 하드웨어 지원이 추가되어 침입이 거의 발생하지 않게 되었다.

1973년, 미국 공군에서는 '타이거 팀' 프로젝트를 통해 멀틱스 보안을 테스트했으며, 1997년 5월 28일, 미국 국가안보국(NSA)은 이 프로젝트의 암호명이었던 ZARF의 사용을 기밀 해제했다.

1985년, 미국 국가안보국(NSA) 산하 국가 컴퓨터 보안 센터(NCSC)는 신뢰할 수 있는 컴퓨터 시스템 평가 기준에 따라 멀틱스에 B2 레벨 보안 운영 체제 인증을 부여했다.[21] 이는 해당 레벨로 평가된 최초의 운영 체제였다.

멀틱스를 보안 컴퓨팅 환경에 배치하면서 혁신적인 지원 애플리케이션 개발이 촉진되었다. 1975년 MITRE Corporation의 모리 가서(Morrie Gasser)는 미국 공군 데이터 서비스 센터(AFDSC)와 같이 기밀 정보를 처리하는 설치 시설의 암호 요구 사항을 해결하기 위해 발음 가능한 임의 단어 생성기를 개발했다. 추측 가능한 암호를 피하기 위해 AFDSC는 암호를 할당하기로 결정했지만, 수동 할당에는 너무 많은 관리 오버헤드가 필요하다고 결론지었다. 따라서 임의 단어 생성기가 연구된 후 PL/I로 개발되었다. 이 시스템은 음소를 기반으로 하는 대신, 음소 세그먼트(영어의 2차 근사) 및 기타 규칙을 사용하여 발음 가능성과 임의성을 향상시켰으며, 이는 다른 접근 방식에 대해 통계적으로 모델링되었다.[13] 이 생성기의 후손은 프로젝트 가디언(Project Guardian) 동안 멀틱스에 추가되었다.[14]

1974년 허니웰은 공군과 개발 계약을 체결하여 (MIT는 하청업체) 멀틱스용 보안 커널을 개발했다. 여기에는 Ring 0에서 슈퍼바이저의 특정 구성 요소를 제거하여 멀틱스 하드코어의 크기를 줄이는 작업이 포함되었다. 보안 평가를 수행한 후 초기 단계 중 하나는 AIM(Access Isolation Mechanism)이라는 멀틱스 내의 다단계 보안 프레임워크를 구현하는 것이었다. 이를 통해 멀틱스가 이미 가지고 있던 임의적 접근 제어를 보완하기 위해 활성화할 수 있는 강제적 접근 제어가 제공되었다.[18]

3. 4. 계층적 파일 시스템

멀틱스는 계층적 파일 시스템을 최초로 도입한 운영 체제 중 하나이다.[9][10] 파일과 디렉터리는 여러 이름(일반적으로 긴 이름과 짧은 이름)을 가질 수 있었으며, 디렉터리 간의 심볼릭 링크도 지원되었다.

3. 5. 기타 특징

멀틱스는 단일 레벨 저장소를 구현하여 컴퓨터 파일(멀틱스에서는 ''세그먼트''라고 부름)과 ''컴퓨터 프로세스 메모리'' 사이의 명확한 구분을 없앴다.[41] 프로세스 메모리는 해당 프로세스의 주소 공간에 매핑된 세그먼트로만 구성된다. 이를 읽거나 쓰려면 프로세스는 일반적인 중앙 처리 장치(CPU) 명령어를 사용하며, 운영 체제는 모든 수정 사항이 디스크에 저장되도록 처리한다. POSIX 용어로는 모든 파일이 mmap()된 것과 같다. 그러나 멀틱스에는 유닉스와 같이 매핑된 파일 보관에 사용되는 메모리와 별도로 ''프로세스 메모리''라는 개념이 없다. 시스템의 ''모든'' 메모리는 파일 시스템에 나타나는 ''일부'' 세그먼트의 일부이며, 여기에는 프로세스의 임시 스크래치 메모리, 커널 스택 등이 포함된다.

세그먼트는 256 킬로워드로 제한되며, 이는 1 MB를 약간 넘는다. 이는 멀틱스 하드웨어가 세그먼트 내용에 18비트 워드 주소를 사용했기 때문이다. 더 큰 파일은 "멀티세그먼트 파일"이며 다르게 처리된다. 당시 1MB의 메모리가 지나치게 비쌌기 때문에 256 킬로워드 제한은 실제로 거의 사용되지 않았다.

멀틱스는 동적 연결을 제공했다. 실행 중인 프로세스는 해당 세그먼트를 주소 공간에 추가하여 외부 루틴을 사용할 수 있게 한다. 이를 통해 애플리케이션은 항상 최신 버전의 외부 루틴을 사용할 수 있는데, 이러한 루틴은 다른 세그먼트에 유지되며, 프로세스가 처음 실행을 시도할 때 동적으로 연결되기 때문이다. 다른 프로세스가 서로 다른 검색 규칙을 사용할 수 있으므로, 다른 사용자가 서로 다른 버전의 외부 루틴을 사용할 수 있다. 마찬가지로 중요한 것은, 멀틱스 보안 시설에서 적절한 설정을 사용하면 다른 세그먼트의 코드가 다른 프로세스에서 유지 관리되는 데이터 구조에 접근할 수 있다는 것이다. 멀틱스의 동적 연결은 특별한 동적 링크 라이브러리 (DLL)를 필요로 하지 않으며, 프로그램은 접근 권한이 있는 모든 실행 가능한 세그먼트에 동적으로 연결할 수 있다.

데몬으로 부분적으로 실행되는 애플리케이션(다른 프로세스에서)과 상호 작용하기 위해 사용자의 프로세스는 동적으로 연결된 코드 세그먼트(데몬과 관련된 일부 작업을 구현하는 코드 세그먼트)에 일반적인 프로시저 호출 명령을 실행한다. 해당 세그먼트의 코드는 데몬에서 유지 관리하고 사용하는 데이터를 수정할 수 있다. 요청을 시작하는 데 필요한 작업이 완료되면, 간단한 프로시저 반환 명령이 사용자의 프로세스 제어를 사용자의 코드로 반환한다.

멀틱스는 매우 공격적인 온라인 재구성을 지원했다. 중앙 처리 장치, 메모리 뱅크, 디스크 드라이브 등을 시스템이 계속 작동하는 동안 추가하고 제거할 수 있었다. 대부분의 초기 소프트웨어 개발이 이루어진 MIT 시스템에서는, 멀티프로세서 시스템을 두 개의 별도 시스템으로 나누는 것이 일반적이었으며, 비근무 시간 동안 두 번째 작동 시스템을 형성하기 위해 충분한 구성 요소를 점진적으로 제거하고, 나머지 구성 요소는 원래 로그인한 사용자를 위해 계속 실행되도록 했다. 시스템 소프트웨어 개발 테스트는 두 번째 시스템에서 수행될 수 있으며, 두 번째 시스템의 구성 요소는 시스템을 종료하지 않고도 다시 메인 사용자 시스템에 추가되었다. 멀틱스는 최초의 멀티프로세서 시스템 중 하나이다.

멀틱스는 처음부터 보안 시스템으로 설계된 최초의 주요 운영 체제이다.[7] 그럼에도 불구하고 멀틱스의 초기 버전은 반복적으로 손상되었다.[8] 이는 시스템을 더 안전하게 만드는 추가 작업을 이끌었고, 현대적인 보안 엔지니어링 기술을 예견했다. 두 번째 세대 하드웨어 기반이 채택된 후 침입은 매우 드물어졌으며, 이는 링 기반 보안, 즉 마스터 모드 개념의 다단계 개선에 대한 하드웨어 지원을 가지고 있다. 미국 공군 호랑이 팀 프로젝트는 1973년에 암호명 ZARF 하에 멀틱스 보안을 테스트했으며, 1997년 5월 28일 미국 국가 안보국은 이 암호명 ZARF의 사용을 기밀 해제했다.

멀틱스는 계층적 파일 시스템을 제공하는 최초의 운영 체제이며,[9][10] 파일 이름은 거의 임의의 길이와 구문을 가질 수 있었다. 주어진 파일 또는 디렉터리는 여러 이름(일반적으로 긴 형식과 짧은 형식)을 가질 수 있으며, 디렉터리 간의 기호 링크도 지원되었다. 멀틱스는 각 프로세스에 대한 스택을 커널에서 사용하는 현재 표준 개념을 최초로 사용하며, 각 보안 링에 대해 별도의 스택을 사용한다. 또한 명령어 프로세서를 일반 사용자 코드로 구현한 최초의 운영 체제이기도 하다. 이 아이디어는 나중에 유닉스 쉘에서 사용되었다. 또한 ALGOL의 확장된 버전인 ESPOL로 작성된 Burroughs MCP 시스템 이후, PL/I라는 고급 언어로 작성된 최초의 운영 체제 중 하나이다.[11][12]

4. 다른 프로젝트에 미친 영향

GE의 GECOS, 허니웰의 GCOS, 일본 전기의 ACOS-6는 멀틱스의 계통이라고 할 수 있는 운영 체제(OS)이다.[41]

4. 1. 유닉스(Unix)

켄 톰슨과 데니스 리치벨 연구소의 연구원으로, 멀틱스 프로젝트에 참여했다. 이들은 멀틱스의 복잡성에 대한 반성과 멀틱스에서 얻은 경험을 바탕으로 유닉스를 개발했다.[36] 유닉스는 멀틱스의 많은 개념을 계승하면서도 더 작고 단순하게 설계되어 널리 확산되었다.

''Unix''라는 이름(원래 ''Unics'')은 ''Multics''에 대한 말장난이다. 유닉스의 ''U''는 멀틱스의 ''다중화''에 반대되는 ''단일화''를 의미하는 것으로 알려져 있다. 이는 더 작은 컴퓨터를 위한 더 간단하고 실용적인 접근 방식을 선호하는 설계자들의 멀틱스 복잡성에 대한 거부를 강조한다. 벨 연구소의 피터 뉴먼은 프로토타입 시연을 보면서 "거세된 멀틱스"로서 UNICS라는 말장난 이름을 제안했는데, 데니스 리치는 이를 부인했다고 한다.[35]

유닉스는 파일 이름을 임의의 길이로 자유롭게 설정할 수 있는 계층형 파일 시스템, 셸, 리다이렉션 등 많은 분야에서 멀틱스의 영향을 받았다. 예를 들어, ls 명령어는 "list segments"의 약자로, 멀틱스의 세그먼트를 나열하는 것에서 유래했다.

최초의 유닉스는 DEC의 PDP-7에서 구현되었다. PDP-7은 메모리가 8킬로워드밖에 없었으며, 2메가바이트 메모리를 가진 GE-645에 비해 매우 열악한 환경이었다. 이러한 하드웨어 제약으로 인해 유닉스는 멀틱스에서 예정되었던 기능 대부분을 덜어내고 최소한의 단순한 것으로 만들어졌다.

초기 유닉스는 멀틱스와 같은 멀티태스킹 운영 체제가 아니라, 한 번에 하나의 프로그램만 실행할 수 있는 싱글태스크 운영 체제였다. 이러한 특징 때문에 커니핸은 이 OS를 멀틱스의 Multi를 Uni로 바꿔 Unics라고 명명했고, 이후 철자가 UNIX로 변경되었다.

켄 톰슨은 2007년 인터뷰에서 멀틱스에 대해 "설계도 개발도 모든 것이 과도했다. 전혀 실용적이지 않았다. 그들(MIT)은 여전히 큰 성공이었다고 주장하지만, 분명히 그렇지 않다"라고 말했다. 그러나 "내가 (멀틱스 안에서) 충분히 채택할 가치가 있다고 생각했던 기능은, 계층형 파일 시스템과 셸이다. 셸은 프로세스로 독립되어 있고, 원하는 것으로 바꿀 수 있다"라고 인정했다.

데니스 리치는 유닉스의 설계가 CTSS의 영향을 받았다고 썼다.[37]

4. 2. 기타 운영 체제

프라임 컴퓨터의 운영체제인 PRIMOS는 회사 설립자인 윌리엄 포두스카에 의해 "신발 상자 속의 멀틱스"라고 불릴 정도로 멀틱스의 영향을 많이 받았다. 포두스카는 이후 아폴로 컴퓨터를 설립했고, 아폴로 컴퓨터의 AEGIS, 이후의 Domain/OS 운영체제는 "성냥갑 속의 멀틱스"라고 불리며 멀틱스 설계를 네트워크 그래픽 워크스테이션 환경으로 확장했다.[41]

스트라투스 컴퓨터(현재 스트라투스 테크놀로지스)의 Stratus VOS 운영체제는 멀틱스의 영향을 매우 강하게 받았으며, 외부 사용자 인터페이스와 내부 구조 모두 이전 프로젝트와 매우 유사하다. 멀틱스의 높은 신뢰성, 가용성 및 보안 기능은 결함 허용 컴퓨터 시스템의 새로운 라인을 지원하기 위해 Stratus VOS에서 확장되었으며, 안전하고 신뢰할 수 있는 트랜잭션 처리를 지원한다. Stratus VOS는 오늘날까지 활발히 개발 및 생산 사용되고 있는 멀틱스의 가장 직접적인 관련 후손이다.[41]

제너럴 모터스의 STAR-100 컴퓨터용 다중 콘솔 시분할 시스템(MCTS)은 멀틱스를 기반으로 했다.[41]

시스템의 한 레벨의 코드가 다른 레벨의 리소스에 접근하는 능력을 제한하는 멀틱스의 보호 아키텍처는 인터내셔널 컴퓨터스 리미티드의 VME 운영체제의 보안 기능의 기반으로 채택되었다.[41]

에든버러 다중 액세스 시스템(EMAS)은 멀틱스에서 사용된 1단계 저장소 개념을 특히 활용하여 파일을 메모리에 매핑함으로써 파일에 접근할 수 있도록 했다. 모든 메모리 공간은 세그먼트와 연관되어 있다.[41]

GE의 GECOS, 허니웰의 GCOS, 일본 전기의 ACOS-6는 Multics의 계통이라고 할 수 있는 OS이다.[41]

5. 한계와 비판

멀틱스는 여러 혁신적인 기능을 탑재했지만, 지나치게 복잡하고 자원 소모가 크다는 비판을 받았다. 이러한 비판은 멀틱스가 상업적으로 크게 성공하지 못한 주요 원인 중 하나로 지적된다.[33]

당시 멀틱스의 영구 상주 커널은 135KB의 코드였는데, 이는 당시 기준으로 상당히 큰 용량이었다. 최초의 MIT GE-645는 512킬로워드(2MiB)의 메모리를 가지고 있었는데, 이는 당시에는 엄청난 양이었지만 커널이 주 메모리의 상당 부분을 차지했다.[6] 운영 체제, PL/I 컴파일러, 사용자 명령, 서브루틴 라이브러리 등 전체 시스템은 약 1500개의 소스 모듈로 구성되어 있었고, 각 모듈은 평균 약 200줄의 소스 코드로, 총 약 4.5MiB의 프로시저 코드로 컴파일되었는데, 이 역시 당시 기준으로 상당히 큰 규모였다.

멀틱스 컴파일러는 CPU 성능보다 코드 밀도를 최적화했다. 예를 들어, '연산자'라는 작은 서브루틴을 사용하여 코드 크기를 줄였다. 이러한 높은 코드 밀도는 주 메모리가 비쌌던 다중 사용자 시스템인 멀틱스에게는 좋은 최적화 방법이었다.

상업 제품 역사 동안, Honeywell Information Systems (HIS) (나중에 Honeywell-Bull)의 판매 및 마케팅 직원은 GCOS를 실행하는 DPS 6와 같은 다른 컴퓨터 라인에 익숙하고 비즈니스 사례를 만드는 데 더 편안하다는 내부 의견이 자주 있었다고 한다. 멀틱스의 유연성은 당시 비즈니스 분석가들이 이해하기 어려운 점이 있었고, 그 기능은 그들의 기술 범위를 벗어나는 경우가 많았다.

하지만, 1970년대 중반부터 1980년대에 걸쳐 하드웨어 성능이 향상되면서 성능 저하 문제는 점차 완화되었다. 멀틱스는 당시로서는 진보적인 운영체제였으며, 현실적인 해결책으로 시작되어 비대해진 유닉스와의 비교는 단순하지 않다.

6. 현재 상황

2000년 10월 30일, 캐나다 캐나다 국방부에서 마지막 멀틱스 시스템 가동이 중단되었다.[22] 2006년, Bull SAS는 멀틱스 버전 MR10.2, MR11.0, MR12.0, MR12.1, MR12.2, MR12.3, MR12.4, MR12.5의 소스 코드를 자유 소프트웨어 라이선스로 공개했다.[21] 같은 해, Bull HN은 1992년 마지막 멀틱스 릴리스인 MR12.5의 소스 코드를 MIT에 공개했다.[23] 현재는 에뮬레이터를 통해 최신 하드웨어에서 멀틱스를 실행할 수 있다.[25]

참조

[1] 웹사이트 Multics License (Multics) - Open Source Initiative http://opensource.or[...] 2008-02-05
[2] 웹사이트 Myths about Multics http://www.multician[...]
[3] 논문 The Evolution of the Unix Time-sharing System
[4] 웹사이트 Origins and Development of TOPS-20 http://tenex.opost.c[...]
[5] 서적 The Tym Before https://books.google[...] Lulu.com 2018-05-01
[6] 웹사이트 Myths about Multics http://www.multician[...]
[7] 보고서 Introduction to Multics", MAC TR-123 Massachusetts Institute of Technology and Honeywell Information Systems Inc. 1974-02-01
[8] 웹사이트 How the Air Force cracked Multics Security http://www.multician[...]
[9] 웹사이트 Multics Glossary -F- http://www.multician[...]
[10] 논문 A general-purpose file system for secondary storage http://dl.acm.org/ci[...]
[11] 간행물 The Multics PL/1 Compiler http://www.multician[...] General Electric Company
[12] 웹사이트 Brian Kernighan on the origins of Unix https://lwn.net/Arti[...]
[13] 보고서 A Random Word Generator for Pronounceable Passwords https://apps.dtic.mi[...] Electronic Systems Division, Air Force Systems Command, USAF 1975-11-01
[14] 웹사이트 Password Generator https://multicians.o[...]
[15] 학술지 Report of the President https://libraries.mi[...] 1975-12-01
[16] 학술지 Report of the President https://libraries.mi[...] 1976-11-01
[17] 웹사이트 Report of the President and the Chancellor https://libraries.mi[...] Massachusetts Institute of Technology 1978-01-01
[18] 웹사이트 Multics Data Security https://multicians.o[...]
[19] 학술지 Scomp: A Solution to the Multilevel Security Problem https://ieeexplore.i[...] 1983-07-01
[20] 웹사이트 STOP OS™ Version 7.3.1 Security Target https://www.commoncr[...] Common Criteria
[21] 웹사이트 Multics https://stuff.mit.ed[...]
[22] 웹사이트 Multics History Dates http://www.multician[...]
[23] 웹사이트 Open Source for Multics http://web.mit.edu/m[...]
[24] 웹사이트 (email) Re: [dps8m-developers] Multiprocessor and/or networked Multics https://sourceforge.[...]
[25] 웹사이트 RingZero - Multics reborn http://ringzero.wiki[...]
[26] 웹사이트 Multics Simulator http://multicians.or[...]
[27] 웹사이트 Installing Multics http://multics-wiki.[...]
[28] 서적 Multics Commands and Active Functions (AG92-06) http://www.bitsavers[...] 1985-02-01
[29] 웹사이트 Unix and Multics https://www.multicia[...]
[30] 웹사이트 Multics Commands https://www.multicia[...]
[31] 서적 Multics C User's Guide https://bitsavers.or[...] Honeywell Bull 1987-11-01
[32] 서적 A quarter century of UNIX Addison-Wesley Pub. Co.
[33] 뉴스 40 years of Unix http://news.bbc.co.u[...] 2009-08-20
[34] 서적 Architects of the Information Society: Thirty-Five Years of the Laboratory for Computer Science at MIT MIT Press
[35] 뉴스그룹 Origins of unix http://article.oldus[...] 1981-10-28
[36] 서적 Coders at Work: Reflections on the Craft of Programming APress Publications
[37] 학회발표 The Unix Time-sharing System: A retrospective https://www.bell-lab[...]
[38] 웹사이트 Myths about Multics: Myth: Multics was closed source http://www.multician[...]
[39] 웹사이트 Multics History http://www.multician[...]
[40] 웹사이트 Myths about Multics http://www.multician[...]
[41] 웹사이트 How the Air Force cracked Multics Security http://www.multician[...] 2013-02-22
[42] 웹사이트 Multicians Glossary: File system http://www.multician[...]
[43] 서적 The Multics PL/1 Compiler http://www.multician[...] General Electric Company
[44] 서적 A quarter century of UNIX Addison-Wesley Pub. Co.
[45] 뉴스 40 years of Unix http://news.bbc.co.u[...] 2009-08-20
[46] 웹사이트 Multics history http://stuff.mit.edu[...]
[47] 웹사이트 unix time https://parametron.b[...]
[48] 저널 The Evolution of the Unix Time-sharing System http://www.bell-labs[...] 2018-09-02
[49] 웹사이트 Interview with Brian Kernighan http://www.linuxjour[...] 2018-09-02
[50] 서적 Coders at Work: Reflections on the Craft of Programming APress Publications
[51] 웹사이트 Multics Main Page https://multics-wiki[...] 2020-05-19
[52] 웹사이트 http://opensource.or[...]
[53] 웹사이트 Myths about Multics: Myth: Multics was closed source http://www.multician[...]
[54] 저널 The Evolution of the Unix Time-sharing System
[55] 웹인용 Origins and Development of TOPS-20 http://tenex.opost.c[...]
[56] 웹사이트 Multics History http://www.multician[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com