벨 연구소의 계획 9
Plan 9 from Bell Labs![]() | |
![]() Rio, Bell Labs의 Plan 9 기본 사용자 인터페이스 | |
개발자 | Plan 9 Foundation, 후속 Bell Labs |
---|---|
기록 위치 | ANSI C의 방언 |
작업 상태 | 현재[3][4] |
소스 모델 | 오픈 소스 |
초기 릴리즈 | 1992; 전 ( (1998년) /1995; 전 ( (일반 국민) |
최종 발매 | 제4판 / 2015년 1월 10일;[5] | 전
리포지토리 | 9p |
마케팅 대상 | 운영 체제 조사, 네트워크 환경, 범용 사용 |
다음에서 사용 가능 | 영어 |
플랫폼 | x86 / Vx32, x86-64, MIPS, DEC Alpha, SPARC, PowerPC, ARM |
커널형 | 모놀리스[7] |
영향을 받은 | 연구 유닉스, 캠브리지 분산 컴퓨팅 시스템[8] |
체납 사용자 인터페이스 | 리오/rc |
면허증 | 2021: MIT[9][10] 2014: GPL-2.0 전용[11] 2002: LPL-1.02[12] 2000: Plan 9 OSL[13][14][15][16] |
성공자 | 인페르노 기타 파생상품 및 포크 |
공식 웹사이트 | p9f |
Bell Labs의 Plan 9는 1980년대 중반 Bell Labs의 컴퓨팅 과학 연구 센터(CSRC)에서 발원하여 1960년대 후반에 그곳에서 처음 개발된 UNIX 개념을 기반으로 하는 분산 운영체제다.2000년 이후 플랜 9는 무료 오픈소스다.최종 공식 발매는 2015년 초.
Plan 9에서는 UNIX의 모든 것이 파일 은유에 의한 파일 은유에 의해 퍼베이시브 네트워크 중심 파일 시스템을 통해 확장되며, UNIX와 같은 운영 체제의 핵심에 있는 커서 애드레스티드 터미널 기반 I/O는 텍스트 기반이지만, RC는 커서 어드레싱이 없는 윈도우 시스템 및 그래픽 사용자 인터페이스로 대체된다.
벨 연구소의 Plan 9라는 이름은 외계의 Ed Wood 1959 컬트 과학 소설 Z-movie Plan 9를 가리키는 말이다.[17]이 시스템은 운영체제 연구자들과 취미 활동가들에 의해 계속해서 사용되고 개발되고 있다.[18][19]
역사
Bell Labs의 Plan 9는 원래 Unix와 C 프로그래밍 언어를 개발했던 것과 같은 그룹인 Bell Labs의 Computing Science Research Center의 회원들에 의해 1980년대 후반부터 개발되었다.[19][20]Plan 9 팀은 처음에 컴퓨터 기술 연구 부서의 책임자로서 Dennis Ritchie의 지원을 받아 Rob Pike, Ken Thompson, Dave Presotto, Phil Winterbottom에 의해 주도되었다.수년간 브라이언 커니건, 톰 더프, 더그 매킬로이, 비야른 스트루스트럽, 브루스 엘리스 등 많은 저명한 개발자들이 이 프로젝트에 기여했다.[21]
플랜 9는 Bell Labs의 운영 체제 연구를 위한 기본 플랫폼으로 유닉스를 대체했다.그것은 특히 분산된 다중 사용자 환경에서 시스템의 사용과 프로그래밍을 용이하게 하는 원래의 Unix 모델에 대한 몇 가지 변화를 탐구했다.몇 년간의 개발 및 내부 활용을 거쳐 1992년 벨랩스는 운영체제를 대학에 출하했다.3년 후 플랜9은 AT&T에 의해 도서출판사 하코트 브레이스를 통해 상업적인 파티가 가능해졌다.350달러의 소스 라이선스로 AT&T는 컴퓨터 시장이 아닌 임베디드 시스템 시장을 겨냥했다.리치는 개발자들이 다른 운영체제가 어떻게 구축되었는지를 고려할 때 "엄청난 변위"를 할 것이라고 기대하지 않았다고 말했다.[22]
1996년 초까지 플랜9 프로젝트는 AT&T에 의해 인페르노에 유리하게 "뒤처지는" 것으로, 선 마이크로시스템스의 자바 플랫폼의 경쟁자가 되려는 의도였다.[23]1990년대 후반 벨랩스의 새 주인 루센트 테크놀로지는 이 프로젝트에 대한 상업적 지원을 중단했고, 2000년에는 오픈소스 라이센스로 세 번째 버전이 배포되었다.새로운 무료 소프트웨어 라이센스에 따른 네 번째 릴리스는 2002년에 발생했다.[24]
Bell Labs의 전현직 직원을 포함한 사용자 및 개발 커뮤니티는 ISO 이미지의 형태로 매일 경미한 릴리즈를 제작했다.벨 연구소가 개발을 주관했다.[25]개발 소스 트리는 9P 및 HTTP 프로토콜을 통해 액세스할 수 있으며 기존 설치를 업데이트하는 데 사용된다.[26]Bell Labs는 ISO에 포함된 OS의 공식 구성 요소 외에도 외부에서 개발된 애플리케이션과 툴의 저장소를 운영하고 있다.[27]
벨랩스가 최근 몇 년간 후기 프로젝트로 넘어가면서 공식 플랜9 시스템 개발이 중단됐다.2021년 3월 23일, 벨 연구소에서 플랜 9 재단으로 저작권이 이전되면서 개발이 재개되었다.[10][28][29]시스템에 대한 비공식적인 개발은 9프론트 포크에서도 계속되며, 이 포크는 활성 기여자가 월간 빌드와 새로운 기능을 제공한다.지금까지 9프론트 포크는 시스템 와이파이 드라이버, 오디오 드라이버, USB 지원 및 내장 게임 에뮬레이터를 다른 기능과 함께 제공했다.[30]다른 최근 Plan 9에서 영감을 받은 운영 체제로는 Harvey OS와[31] Jehanne OS가 있다.[32]
날짜 | 해제 | 댓글 |
---|---|---|
1992 | 플랜 9 1판 | Bell Labs가 대학에 릴리스 |
1995 | 플랜 9 2판 | Bell Labs에서 비상업적 목적으로[33] 출시 |
2000 | 계획 9 3차 개정판 (브라질) | 루센트 테크놀로지스가 오픈 소스 라이센스로 출시 |
2002 | 플랜 9 제4판 | 루센트 테크놀로지스가 새로운 무료 소프트웨어 라이센스로 출시 |
디자인 컨셉
Bell Labs의 Plan 9는 Quakers와 같다: 삶의 단순함, 특히 평이한 말투로 유명한 'Inner Light'에 대한 스트레스 때문에 구별된다.퀘이커스처럼 플랜9은 산문하지 않는다.
—Sape J. Mullender, Pierre G. Jansen.
Real Time in a Real Operating System[34]
Plan 9는 분산 운영 체제로, 이기종과 지리적으로 분리된 컴퓨터의 네트워크가 단일 시스템으로 기능하도록 설계되었다.[35]일반적인 Plan 9 설치에서 사용자는 윈도우 시스템 리오를 실행하는 터미널에서 작업하며, 계산 집약적인 프로세스를 처리하는 CPU 서버에 액세스한다.영구 데이터 스토리지는 파일 서버 및 아카이브 스토리지 역할을 하는 추가 네트워크 호스트에 의해 제공된다.[36]
그 디자이너들은 이렇게 말한다.
[t]그는 프로세스별 이름 공간과 간단한 메시지 지향 파일 시스템 프로토콜이라는 두 가지 아이디어를 기반으로 시스템의 기초를 구축했다.
— Pike et al.[37]
첫 번째 아이디어(프로세스별 이름 공간)는 대부분의 운영 체제와는 달리 프로세스(실행 프로그램)가 각각 다른 운영 체제가 파일 시스템이라고 부르는 것과 일치하는 네임스페이스에 대한 고유한 보기를 가지고 있다는 것을 의미한다. 단일 경로 이름은 다른 프로세스에 대해 서로 다른 리소스를 참조할 수 있다.이 설정의 잠재적인 복잡성은 공통 자원의 기존 위치에 의해 제어된다.[38][39]
두 번째 아이디어(메시지 지향 파일 시스템)는 다른 프로세스의 네임스페이스에 나타나는 가상 파일을 제공함으로써 프로세스가 다른 프로세스에 서비스를 제공할 수 있다는 것을 의미한다.그러한 파일에 대한 클라이언트 프로세스의 입/출력은 두 프로세스 간의 프로세스 간 통신이 된다.이러한 방식으로 Plan 9는 파일 시스템의 Unix 개념을 컴퓨팅 자원에 대한 접근의 중심점으로 일반화한다.그것은 주변 장치(미스, 이동식 미디어 등)에 대한 접근을 제공하기 위해 장치 파일에 대한 유닉스의 아이디어를 전달하고 물리적으로 구별되는 파일 시스템에 있는 파일 시스템을 계층적 네임스페이스에 탑재할 수 있는 가능성을 제공하지만, 표준화된 프로토콜을 말하고 그것의 처리를 하는 서버 프로그램에 연결을 탑재할 가능성을 추가한다.네임스페이스의 일부로 rvises.
예를 들어 8½이라 불리는 원래의 창구 체계는 다음과 같이 이러한 가능성을 이용했다.Plan 9는 다음과 같은 3가지 사이비 파일을 이용하여 단말기의 사용자 인터페이스를 나타낸다.프로그램에서 읽을 수 있는 마우스, 텍스트 입력/출력 수행에 사용할 수 있는 cons, 그리고 그래픽 작업을 실행하는 bitblt(비트 블릿 참조)의 알림을 받을 수 있다.윈도우 시스템은 이러한 장치들을 멀티플렉스화한다: 어떤 프로그램을 실행하기 위한 새로운 창을 만들 때, 그것은 먼저 마우스, cons, bitblt가 그 자체로 연결되는 새로운 네임스페이스를 설정하며, 그 자체가 접근 가능한 실제 장치 파일을 숨긴다.따라서 윈도우 시스템은 프로그램으로부터 모든 입력 및 출력 명령을 수신하고, 출력을 실제 화면 장치로 보내고 현재 포커스에 초점을 맞춘 프로그램에 키보드와 마우스 입력을 줌으로써 적절하게 처리한다.[36]이 프로그램은 운영 체제의 장치 드라이버와 직접 통신하는지 아니면 윈도우 시스템과 통신하는지 알 필요가 없으며, 단지 이러한 특수 파일이 입력의 종류를 제공하고 기대하는 종류의 메시지를 받아들이도록 네임스페이스를 설정했다고 가정하면 된다.
Plan 9의 분산 운영 역시 프로세스별 네임스페이스에 의존하여 클라이언트와 서버 프로세스가 방금 설명한 방식으로 기계 간에 통신할 수 있게 한다.예를 들어, cpu 명령은 계산 서버에서 원격 세션을 시작한다.이 명령은 원격 프로그램이 원격 로그인 효과와 공유 네트워크 파일 시스템을 결합하여 단말기의 마우스, 키보드, 디스플레이를 사용하여 입출력 작업을 수행할 수 있도록 사용자의 단말 장치(마우스, cons, bitblt)를 포함한 로컬 네임스페이스의 일부를 서버로 내보낸다.[36][37]
9P 프로토콜
다른 프로그램에 파일로서의 서비스를 제공하고자 하는 모든 프로그램은 9P라는 통일된 프로토콜을 사용한다.다른 시스템에 비해, 이것은 사용자 정의 프로그래밍 인터페이스의 수를 감소시킨다. 9P는 서버와 클라이언트 사이에 전달되는 메시지를 제공하는 일반적이고, 중간 불가지론적인 바이트 지향 프로토콜이다.[40]프로토콜은 사용자 인터페이스와 네트워크를 모두 포함한 프로세스, 프로그램 및 데이터를 참조하고 통신하는데 사용된다.[41]제4판이 출시되면서 수정되어 9P2000으로 개칭되었다.[24]
대부분의 다른 운영 체제와는 달리, 플랜 9는 기기에 접속하기 위한 특별한 응용 프로그램 프로그래밍 인터페이스(버클리 소켓, X 자원, ioctl 시스템 호출 등)를 제공하지 않는다.[40]대신 Plan 9 장치 드라이버는 일반적인 파일 입출력 읽기 및 쓰기 작업으로 하드웨어에 액세스할 수 있도록 제어 인터페이스를 파일 시스템으로 구현한다.따라서 네트워크를 통해 장치를 공유하는 것은 해당 디렉토리 트리를 대상 시스템에 탑재함으로써 이루어질 수 있다.[17]
유니언 디렉토리 및 네임스페이스
Plan 9는 사용자가 단일 위치에 있는 서로 다른 디렉토리 트리에서 파일(이름)을 수집할 수 있도록 한다.결과적인 조합 디렉토리는 기본 디렉토리의 연결로 동작한다(연결 순서는 제어할 수 있다). 구성 디렉토리가 동일한 이름을 가진 파일을 포함하는 경우, 조합 디렉토리(ls 또는 lc)의 목록은 중복된 이름만 보고한다.[42]단일 경로 이름의 분해능은 하향식으로 수행된다. 디렉토리가 맨 위와 맨 아래를 맨 먼저 u로 결합한 경우, u/name은 있는 경우 top/name을, 맨 아래/이름이 있는 경우만 top/name을 나타내고 top/name이 존재하지 않는 경우 파일은 없다.하위 디렉터리의 재귀적 결합은 수행되지 않으므로 상위/하위 디렉터리가 있는 경우 하위 디렉터리의 파일에 유니온을 통해 액세스할 수 없다.[43]
조합 디렉토리는 bind 명령을 사용하여 생성할 수 있다.
; bind /arm/bin /bin; bind -a /acme/bin/arm /bin; bind /usr/bin /bin
위의 예에서 /arm/bin은 /bin에 탑재되는데, /arm/bin의 내용이 /bin의 이전 내용을 대체한다.Acme의 bin 디렉토리는 /bin 다음에 유니언으로 탑재되며, 앨리스의 개인 bin 디렉토리는 이전에 유니언으로 탑재된다./bin에서 파일을 요청하면 먼저 /usr/alice/bin에서, 그 다음 /arm/bin에서, 마지막으로 /acme/bin/arm에서 파일을 찾는다.
따라서 별도의 프로세스 네임스페이스는 일반적으로 셸의 검색 경로 개념을 대체한다.경로 환경 변수($path
)은 여전히 rc 셸(계획 9에서 주로 사용되는 셸)에 존재하지만, rc의 경로 환경변수는 통상적으로 다음만을 포함한다./bin
그리고.
디렉토리와 변수 수정은 금지된다. 대신, 명령을 추가하는 것은 여러 디렉토리를 단일 디렉토리로 결합하여 수행되어야 한다./bin
.[44][36] Plan 9와 달리 Unix 셸의 경로 환경 변수는 실행 파일을 명령으로 추가해야 하는 추가 디렉터리를 포함하도록 설정되어야 한다.
게다가, 커널은 각 프로세스에 대해 별도의 마운트 테이블을 유지할 수 있으며,[34] 따라서 각 프로세스에는 자체적인 파일 시스템 네임스페이스가 제공될 수 있다.프로세스의 네임스페이스를 독립적으로 구성할 수 있으며, 사용자는 이질적인 네임스페이스를 가진 프로그램과 동시에 작업할 수 있다.[37]네임스페이스를 사용하여 칡과 유사한 격리된 환경을 만들 수 있지만 보다 안전한 방법으로 사용할 수 있다.[40]
Plan 9의 유니온 디렉토리 구조 4.4BSD 유니온 탑재 설비의 개발자들은 플랜 9의 디렉토리의 비재발적 합병이 "일반적인 용도에 너무 제한적"[43]이라는 것을 발견했음에도 [42]불구하고 BSD와 리눅스 유니온 파일 시스템 구현.
특수 가상 파일 시스템
/message
계획 9는 특별히 프로세스 관리에 대한 시스템 호출을 갖는 대신 /proc 파일 시스템을 제공한다.각 프로세스는 일반적인 파일 IO 시스템 호출에 의해 조작될 수 있는 정보와 제어 파일이 들어 있는 디렉토리로 나타난다.[8]
파일 시스템 접근방식은 Plan 9 프로세스를 ls, cat 등의 간단한 파일 관리 도구로 관리할 수 있지만, 그 프로세스는 파일로 복사 및 이동할 수 없다.[8]
/net
계획 9에는 네트워킹 스택 또는 네트워킹 하드웨어에 액세스하기 위한 특수 시스템 호출 또는 ioctls가 없다.대신 /net 파일 시스템이 사용된다.네트워크 연결은 제어 파일에 제어 메시지를 읽고 쓰는 것으로 제어된다./net/tcp 및 /net/udp와 같은 하위 디렉터리는 각각의 프로토콜에 대한 인터페이스로 사용된다.[8]
유니코드
캐릭터 인코딩 관리의 복잡성을 줄이기 위해 플랜 9는 시스템 전체에 유니코드를 사용한다.초기 유니코드 구현은 ISO/IEC 10646-1:1993이었다.Ken Thompson은 UTF-8을 발명했고, 이것은 Plan 9에서 기본 인코딩이 되었다.1992년에 전체 시스템이 일반 용도로 전환되었다.[46]UTF-8은 기존의 null-terminated 문자열과의 역호환성을 유지하여 여러 프로세스 간에 Unix 파이프를 사용하여 보다 안정적인 정보 처리 및 다국어 문자열 데이터 체인을 가능하게 한다.단일 UTF-8 인코딩을 모든 문화와 지역에 사용할 수 있는 문자로 사용하면 코드 세트 간에 전환할 필요가 없다.[47]
디자인 컨셉의 조합
그 자체로는 흥미롭지만, 계획 9의 설계 개념은 결합할 때 가장 유용하게 쓰여야 했다.예를 들어, NAT(네트워크 주소 변환) 서버를 구현하기 위해 라우터의 /net 디렉토리 트리를 자체 /net으로 오버레이하는 조합 디렉토리를 만들 수 있다.마찬가지로, 가상 사설망(VPN)은 공용 인터넷을 통해 보안 9P를 사용하여 원격 게이트웨이에서 /net 계층 구조인 유니언 디렉토리에 오버레이하여 구현할 수 있다./net 계층 구조와 필터가 있는 유니온 디렉토리를 사용하여 신뢰할 수 없는 응용프로그램을 샌드박스하거나 방화벽을 구현할 수 있다.[40]같은 방법으로 분산 컴퓨팅 네트워크는 원격 호스트로부터 /proc 계층의 조합 디렉토리로 구성될 수 있으며, 이 디렉토리가 마치 로컬인 것처럼 상호 작용할 수 있다.
이러한 기능을 함께 사용하면 기존의 계층 이름 시스템을 재사용하여 복잡한 분산 컴퓨팅 환경을 조립할 수 있다.[8]
플랜 9용 소프트웨어
시스템 설계의 이점으로서, 계획 9의 대부분의 작업은 ls, cat, grep, cp 및 rm 유틸리티를 rc 셸(기본 계획 9 셸)과 조합하여 수행할 수 있다.
팩토텀은 플랜9의 인증 및 키 관리 서버다.비밀키와 구현내역 모두 팩토텀에만 알리면 되는 등 다른 프로그램을 대신해 인증을 처리한다.[48]
그래픽 프로그램

유닉스와는 달리 플랜9은 그래픽을 염두에 두고 설계됐다.[41]부팅 후 Plan 9 터미널은 사용자가 rc를 표시하는 새 창을 만들 수 있는 리오 윈도우 설정 시스템을 실행할 것이다.[49]이 셸에서 호출된 그래픽 프로그램이 해당 창의 셸을 대체한다.
배관공은 시스템 전체의 하이퍼링크가 가능한 프로세스 간 통신 메커니즘을 제공한다.
Sam과 acme은 Plan 9의 텍스트 편집자다.[50]
저장 시스템
Plan 9는 Kfs, Paq, Cwfs, FAT 및 화석 파일 시스템을 지원한다.마지막은 Bell Labs에서 특별히 Plan 9를 위해 설계되었으며 스냅샷 스토리지 기능을 제공한다.하드 드라이브와 함께 직접 사용하거나 보관 파일 시스템 및 영구 데이터 스토리지 시스템인 Venti와 함께 백업할 수 있다.
소프트웨어 개발
Plan 9의 배포 패키지는 특별한 컴파일러 변형과 프로그래밍 언어를 포함하며, Plan 9에 특화된 윈도우 사용자 인터페이스 시스템과 함께 맞춤형 라이브러리 세트를 제공한다.[51]시스템의 대부분은 C의 방언으로 쓰여 있다(일부 확장자와 일부 다른 특징들이 생략된 ANSI C).이 언어의 컴파일러는 휴대성을 염두에 두고 만들어진 맞춤식 언어였다. 그들의 저자에 따르면, 그들은 "빨리 컴파일하고, 천천히 로딩하며, 중간 품질의 객체 코드를 생산한다"[52]고 한다.
Alef라는 동시 프로그래밍 언어가 처음 두 판에서 사용 가능했지만, 그 후 유지보수를 이유로 삭제되었고 C를 위한 스레딩 라이브러리로 대체되었다.[53][54]
Unix 호환성
Plan 9는 유닉스 개념의 추가 개발로 예정되어 있었지만, 기존의 유닉스 소프트웨어와의 호환성은 결코 프로젝트의 목표가 아니었다.Plan 9의 많은 명령줄 유틸리티는 Unix의 이름을 공유하지만 다르게 작동한다.[45]
Plan 9는 POSIX 애플리케이션을 지원할 수 있으며, ANSI C와 POSIX에 가까운 인터페이스를 구현하는 ANSI/POSIX 환경(APE)을 통해 버클리 소켓 인터페이스를 에뮬레이트할 수 있다(원래 Plan 9 C 인터페이스는 표준에 부합하지 않는다).POSIX 호환 쉘도 포함되어 있다.APE의 저자들은 X11을 "적절한 지원은 너무 큰 일이기 때문에" 선적하지는 않지만, X11을 계획 9에 포팅하는 데 사용했다고 주장한다.[55]일부 Linux 바이너리는 "리눅스 에뮬레이터"(리눅스 에뮬레이터) 애플리케이션의 도움을 받아 사용할 수 있지만, 아직 진행 중인 작업이다.[56]반대로, vx32 가상 머신은 약간 수정된 Plan 9 커널을 Linux에서 사용자 프로세스로 실행할 수 있게 하여 수정되지 않은 Plan 9 프로그램을 지원한다.[57]
리셉션
현대 운영 체제와 비교
1991년, 플랜 9의 설계자들은 그들의 시스템을 크기 면에서 다른 90년대 초반의 운영 체제와 비교했는데, 최소 버전("작동, 매우 유용하지는 않지만")에 대한 소스 코드는 장치 드라이버가 없는 마하 마이크로커널의 1/5 크기 미만이었다(플랜 9의 경우 5899 또는 4622줄, 미터법에 따라 25530과 비교).선). 완전한 커널은 18000개의 코드로 구성되었다.[36](2006년 집계에 따르면, 당시 커널은 약 15만 줄이었지만, 이것은 Linux에서 480만 줄 이상과 비교되었다.)[40]
운영 체제 연구 커뮤니티와 상용 Unix 세계 내에서 분산 컴퓨팅 및 원격 파일 시스템 액세스를 달성하기 위한 다른 시도가 Plan 9 설계 노력과 동시에 이루어졌다.여기에는 Sun Microsystems에서 개발된 네트워크 파일 시스템 및 관련 vnode 아키텍처와 UC Berkeley의 Sprite OS와 같은 Unix 모델로부터의 보다 근본적인 이탈이 포함되었다.스프라이트 개발자 브렌트 웰치는 SunOS vnode 아키텍처가 기존 UNIX 도메인 소켓("기본적으로 사용자 레벨 서버 이름 지정에 사용될 수 있다")을 사용했을 경우 원격 장치 액세스 및 원격 프로세스 간 통신을 깨끗하게 지원하지 않는다는 점에서 Plan 9의 역량에 비해 한계가 있다고 지적한다.vnode 아키텍처와 통합됨.[38]
플랜9의 문자에 의한 통신-메시지 설계는 "모든 것은 파일"에 대한 한 가지 비판으로, Sun의 객체 지향 운영체제인 Spring의 타이핑 인터페이스에 비해 이러한 패러다임의 한계를 지적했다.
계획 9는 모든 것을 파일처럼 보이도록 제한한다.대부분의 경우 실제 인터페이스 유형은 파일 설명자에게 쓰고 파일 설명자에서 읽어야 하는 메시지의 프로토콜로 구성된다.이는 지정 및 문서화하기 어렵고, 런타임의 파일 오류를 제외하고 어떤 자동 유형 확인도 전혀 금지한다.(...) [A] 프로세스의 암묵적 루트 컨텍스트와 관련된 경로 이름만이 서비스 이름을 지정하는 방법이다.개체에 이름을 바인딩하는 것은 새 이름과 동일한 맥락에서 개체의 기존 이름을 부여해야만 가능하다.이와 같이 인터페이스 참조는 네트워크 간에는 훨씬 덜하여 프로세스 간에 전달될 수 없다.그 대신, 의사소통은 오류가 발생하기 쉽고 확장되지 않는 관습에 의존해야 한다.
— Roscoe; emphasis in the original.[58]
나중에 Plan 9, Sprite와 세 번째 현대 분산 연구 운영 체제인 아메바를 소급 비교한 결과 다음과 같은 결과가 나왔다.
[Amoeba와 Sprite] 구축 환경은 OS 내에서 긴밀하게 결합되어 있어 외부 서비스와의 통신이 어렵다.그러한 시스템은 UNIX 모델로부터의 급진적인 이탈로 인해 어려움을 겪게 되는데, 이는 또한 플랫폼에 대한 이미 존재하는 소프트웨어의 이식성을 저해한다(...).개발자의 부족, 지원 하드웨어의 매우 작은 범위, 그리고 심지어 플랜 9에 비하여도 사용자 기반은 그러한 시스템의 채택을 현저하게 둔화시켰다. (...).돌이켜보면 플랜9은 그 당시부터 지금까지 생존이 보장될 만큼 오랜 기간 개발자를 유치하고 상업적 프로젝트에 활용될 수 있었던 유일한 연구 분산형 OS였다.
— Mirtchovski, Simmonds and Minnich[59]
임팩트
계획 9는 모든 시스템 인터페이스가 파일 집합으로 표현될 수 있는 Unix의 핵심 개념이 현대적인 분산 시스템에서 성공적으로 구현될 수 있음을 입증했다.[49]유니코드의 UTF-8 문자 인코딩과 같은 Plan 9의 일부 기능은 다른 운영 체제에서 구현되었다.리눅스 등 유닉스급 운영체제는 원격 파일 액세스를 위한 플랜9의 프로토콜인 9P를 구현하고 플랜9의 프로세스 생성 메커니즘인 rfork 기능을 채택했다.[61]또한 사용자 공간의 Plan 9에서 샘 및 acme 편집기를 포함한 여러 Plan 9의 애플리케이션 및 툴이 유닉스 및 리눅스 시스템에 포팅되어 어느 정도 인기를 얻었다.몇몇 프로젝트는 리눅스 커널을 둘러싼 GNU 운영 체제 프로그램을 Plan 9 운영 체제 프로그램으로 대체하려고 한다.[62][63]9wm 창구 매니저는 플랜 9의 구형 창구 시스템인 8½에서 영감을 받았으며,[64] wmii도 플랜 9의 영향을 많이 받는다.[60]컴퓨터 과학 연구에서 Plan 9는 그리드 컴퓨팅 플랫폼과[65][59] 미들웨어가 없는 유비쿼터스 컴퓨팅에 대한 연구의 수단으로 이용되어 왔다.[66]상업에서 플랜 9는 코레이드 저장 시스템의 기초가 된다.그러나 Plan 9는 인기에 있어서 유닉스에 접근한 적이 없으며 주로 연구 도구였다.
플랜9이 실패한 이유는 단순히 유닉스의 조상 대체를 위한 강력한 개선책이 되지 못했기 때문인 것 같다.플랜9에 비해 유닉스는 삐걱거리고 쨍그랑하고 녹이 슬어 있는 곳이 분명하지만, 그 자리를 지킬 만큼 일을 잘 해낸다.여기에 야심찬 시스템 설계자들을 위한 교훈이 있다: 더 나은 해결책의 가장 위험한 적은 단지 충분히 좋은 현존하는 코드베이스라는 것이다.
계획 9의 저조한 채택에 기여한 다른 요인으로는 상용 백업의 부족, 최종 사용자 애플리케이션의 수 감소, 장치 드라이버의 부족 등이 있다.[49][50]
플랜9 찬성론자와 개발자들은 채택을 방해하는 문제들이 해결됐고, 분산형 시스템, 개발환경, 연구플랫폼으로서의 본래의 목표가 충족됐으며, 온화하지만 증가하는 인기를 누리고 있다고 주장한다.[citation needed]인페르노는 호스팅된 기능을 통해 이종 컴퓨팅 그리드의 호스트된 부분으로 Plan 9 기술을 다른 시스템에 도입하는 수단이 되어 왔다.[67][68][69]
9atom과 9front를 포함한 여러 프로젝트가 Plan 9를 확장하기 위해 작동한다.이러한 포크는 개선된 버전의 Upas 이메일 시스템, Go 컴파일러, Mercurial 버전 제어 시스템 지원(현재 git 구현) 및 기타 프로그램을 포함한 추가 하드웨어 드라이버 및 소프트웨어로 Plan 9를 확장한다.[19][70]플랜 9는 라즈베리파이 싱글보드 컴퓨터에 포팅되었다.[71][72]하비 프로젝트는 맞춤형 플랜 9 C 컴파일러를 GCC로 대체해 기트허브와 커버리티 등 현대적인 개발 도구를 활용하고 개발 속도를 높이려 한다.[73]
파생상품 및 포크
인페르노는 플랜 9의 후손으로, 특히 디바이스와 Styx/9P2000 프로토콜 주변에서 많은 설계 개념과 심지어 커널의 소스 코드까지 공유한다.인페르노는 Bell Labs의 Unix 유산 및 Unix 철학과 공유한다.인페르노에 있는 지휘선 도구의 상당수는 임보로 번역된 플랜9 도구였다.
- 9atom은[74] 386 PAE 커널, amd64 CPU 및 터미널 커널, nupas, 추가 pc 하드웨어 지원, IL 및 Ken's fs를 추가하여 Plan 9의 배포를 확대한다.
- 9전선은[75] 계획 9의 포크다.Bell Labs 내부에서는 전용 개발 자원의 부족을 해소하기 위해 시작되었으며, 다양한 수정사항과 개선사항이 축적되어 있다.
- 9legacy은[76] 대체분포다.현재 계획 9의 배포에 기반한 패치 집합을 포함한다.
- 아카로스는[77] 다핵심 아키텍처와 대규모 SMP 시스템을 위해 설계되었다.
- Harvey OS는[78] Plan 9 코드가 gcc와 clang으로 작동하도록 하기 위한 노력이다.
- JehanneOS는[79] Plan 9에서 파생된 실험 OS이다.그것의 사용자랜드와 모듈은 대부분 하비 OS에서 그것의 빌드 시스템인 9프론트에서 파생되었고, 그것의 커널은 Plan9-9k 64비트 Plan9 커널의 포크다.
- NIX는[80] 멀티코어 시스템과 클라우드 컴퓨팅을 목표로 하는 Plan9의 포크다.
- node9는[81] Limbo 프로그래밍 언어와 DIS 가상 머신을 Lua 언어와 LuaJit 가상 머신으로 대체하는 Plan9/Inferno의 대본 파생상품이다.또한 일관된 교차 플랫폼 호스팅을 위해 인페르노 플랫폼별 호스트 I/O를 Node.js의 libuv 이벤트와 I/O로 대체한다.프로세스별 네임스페이스와 일반 클라우드 요소에서 분산 OS를 구성하여 임의 크기의 단일 시스템 이미지를 구성할 수 있음을 증명하는 개념 증명이다.
- 계획 B는[82] 가용 자원 집합이 다른 시점에 서로 다른 분산 환경에서 작동하도록 설계되었다.
면허증
넷째판의 발매로 4월 2002,[24]에 시작된 플랜 9의 벨 연구소의 완전한 소스 코드를 자유롭게 루슨트 퍼블릭 라이센스 1.02, 이것은 분명 잘 한오픈 소스 라이센스 자유 소프트웨어 재단이 오픈 소스 이니셔티브(OSI), 자유 소프트웨어 라이선스로 여겨진다는 것은 데비안 암 자유 소프트웨어 Guideli 통과할 수 있다.nes.[40]
2014년 2월, 버클리 캘리포니아 대학교는 현재의 Plan 9 저작권 소유자인 Alcatel-Lucent에 의해 GPL-2.0 전용으로 이전에 Lucent Public License 버전 1.02에 의해 관리되는 모든 Plan 9 소프트웨어를 출시할 수 있는 권한을 부여받았다.[83]
2021년 3월 23일, 플랜 9의 소유권이 벨 랩에서 플랜 9 재단으로 이전되었고,[84] 이전의 모든 발매물은 MIT 라이선스로 유품되었다.[10]
참고 항목
참조
- ^ "Plan 9 from Bell Labs".
- ^ Lucent Technologies (2006). "Glenda, the Plan 9 Bunny". Retrieved 2008-12-02.
- ^ "Plan 9 Foundation: Activities". plan9foundation.org. Retrieved 23 March 2021.
- ^ "9legacy". 9legacy.org. Retrieved 23 March 2021.
- ^ "plan9checksums". Bell Labs. Archived from the original on 2017-06-01. Retrieved 2019-07-25.
Sat Jan 10 04:04:55 EST 2015 ... plan9.iso.bz2
- ^ "GPLv2 source code".
- ^ Crawford, Diane (1999). "Forum". Communications of the ACM. Association for Computing Machinery (ACM). 42 (8): 11–15. doi:10.1145/310930.310939. ISSN 0001-0782.
- ^ a b c d e Pike, R.; Presotto, D.; Dorward, S.; Flandrena, B.; Thompson, K.; Trickey, H.; Winterbottom, P. "Plan 9 from Bell Labs". Bell Labs. Lucent Technologies. Retrieved 2016-02-26.
- ^ "Plan 9 License". p9f.org. Archived from the original on 14 June 2021. Retrieved 14 June 2021.
- ^ a b c Sorace, Anthony. "Transfer of Plan 9 to the Plan 9 Foundation". marc.info. Archived from the original on 13 April 2021. Retrieved 2020-04-14.
- ^ "Plan9License". akaros.cs.berkeley.edu. Archived from the original on 13 February 2014. Retrieved 14 June 2021.
The University of California, Berkeley, has been authorised by Alcatel-Lucent to release all Plan 9 software previously governed by the Lucent Public License, Version 1.02 under the GNU General Public License, Version 2.
- ^ "Lucent Public License Version 1.02". plan9.bell-labs.com. Archived from the original on 3 October 2003. Retrieved 14 June 2021.
- ^ "Plan 9 Open Source License - Version 1.4 - 09/10/02". plan9.bell-labs.com. Archived from the original on 18 December 2002. Retrieved 14 June 2021.
- ^ "Plan 9 Open Source License - Version 1.2 - 10/29/00". plan9.bell-labs.com. Archived from the original on 6 December 2000. Retrieved 14 June 2021.
- ^ "Plan 9 Open Source License - Version 1.1 - 09/20/00". plan9.bell-labs.com. Archived from the original on 26 October 2000. Retrieved 14 June 2021.
- ^ "Plan 9 Open Source License Agreement". plan9.bell-labs.com. Archived from the original on 16 August 2000. Retrieved 14 June 2021.
- ^ a b c Raymond, Eric S. (2003-09-17). "Plan 9: The Way the Future Was". The Art of UNIX Programming. Addison-Wesley. ISBN 0-13-142901-9. Retrieved 2007-05-07.
- ^ Robertson, James (2011-07-16). "Plan 9 Forked, Continues as 9front". OSNews. Retrieved 2011-12-31.
- ^ a b c "9atom". Retrieved 2011-11-11.
- ^ "From the inventors of UNIX system comes Plan 9 from Bell Labs" (Press release). Lucent Technologies. 1995-07-18. Archived from the original on 2006-02-09.
- ^ McIlroy, Doug (Mar 1995). "Preface". Bell Labs (2nd ed.). Lucent Technologies. Retrieved 2016-02-26.
- ^ Lee, Yvonne L. (24 July 1995). "AT&T Bell Labs ships Plan 9 OS for embedded systems". InfoWorld.
- ^ Pontin, Jason (19 February 1996). "AT&T reveals plans for Java competitor". InfoWorld. p. 3.
- ^ a b c Loli-Queru, Eugenia (2002-04-29). "Bell Labs Releases New Version of Plan 9". OSNews. Retrieved 2011-12-31.
- ^ "How to contribute". Bell Labs. Lucent Technologies. Retrieved 2011-11-30.
- ^ "Staying up to date". Bell Labs. Lucent Technologies. Retrieved 2019-07-24.
- ^ "Plan 9 — Additional Software". 2009. Retrieved 2016-03-06.
- ^ Weldon, Marcus (23 March 2021). "Plan 9 from Bell Labs in Cyberspace!". Nokia Bell Labs. Retrieved 23 March 2021.
- ^ Sharwood, Simon. "Bell Labs transfers copyright of influential 'Plan 9' OS to new foundation". The Register. Retrieved 2021-03-24.
{{cite web}}
: CS1 maint : url-status (링크) - ^ "FQA 1 - Introduction To 9front". fqa.9front.org. Retrieved 2018-02-15.
- ^ "Harvey OS". harvey-os.org. Retrieved 2018-02-15.
- ^ "Jehanne". jehanne.io. Retrieved 2018-02-15.
- ^ "Announcement of the first release to general public". 9 fans. 1995-07-16. Archived from the original on 2008-07-06.
- ^ a b Mullender, Sape J.; Jansen, Pierre G. (2004-02-26). "Real Time in a Real Operating System". In Herbert, Andrew J.; Spärck Jones, Karen (eds.). Computer systems: theory, technology, and applications: a tribute to Roger Needham. Springer Science+Business Media. p. 211. ISBN 978-0-387-20170-2. Retrieved 2011-12-24.
- ^ Hancock, Brian (2003). "Reinventing Unix: an introduction to the Plan 9 operating system". Library Hi Tech. MCB UP. 21 (4): 471–76. doi:10.1108/07378830310509772.
- ^ a b c d e Presotto, Dave; Pike, Rob; Thompson, Ken; Trickey, Howard. Plan 9, A Distributed System. Proc. Spring 1991 EurOpen Conference. CiteSeerX 10.1.1.41.9192.
- ^ a b c Pike, R.; Presotto, D.; Thompson, K.; Trickey, H.; Winterbottom, P. "The Use of Name Spaces in Plan 9". Bell Labs. Retrieved 2016-02-26.
- ^ a b Welch, Brent (1994). "A comparison of three distributed file system architectures: Vnode, Sprite, and Plan 9". Computing Systems. 7 (2): 175–199. CiteSeerX 10.1.1.46.2817.
- ^ Plan 9 Programmer's Manual, 1권 –
- ^ a b c d e f Pereira, Uriel M. (2006). The Unix Spirit set Free: Plan 9 from Bell Labs (AVI). FOSDEM. Retrieved 2011-12-02. Lay summary (PDF).
{{cite AV media}}
:Cite는 사용되지 않는 매개 변수를 사용한다.lay-url=
(도움말) - ^ a b Minnich, Ron (2005). "Why Plan 9 is not dead yet And What we can learn from it" (PDF). Los Alamos National Laboratory. Archived from the original (PDF) on 2016-02-25. Retrieved 2016-02-26.
- ^ a b Valerie, Aurora (2009-03-25). "Union file systems: Implementations, part I". LWN.net. Retrieved 2011-12-05.
- ^ a b Pendry, Jan-Simon; McKusick, Marshall Kirk (1995). Union Mounts in 4.4BSD-Lite. Proc. Winter USENIX Conf.
- ^ Duff, Tom. "18". Rc — The Plan 9 Shell. Plan 9, 4th edition. (PDF);
- ^ a b "UNIX to Plan 9 command translation". Bell Labs. Lucent Technologies. Retrieved 2011-12-02.
- ^ Pike, Rob (2003-04-30). "UTF-8 History". Retrieved 2006-04-27.
- ^ Lunde, Ken (Jan 1999). CJKV information processing. O'Reilly Media. p. 466. ISBN 978-1-56592-224-2. Retrieved 2011-12-23.
- ^ Cox, R.; Grosse, E.; Pike, R.; Presotto, D.; Quinlan, S. "Security in Plan 9". Bell Labs. Lucent Technologies. Retrieved 2016-02-26.
- ^ a b c Hudson, Andrew (2006-07-19). "Investigating the Plan 9 Operating System". OSNews. Retrieved 2011-12-31.
- ^ a b "An interview with Russ Cox". The Setup. Uses this. 2011-04-09. Retrieved 2012-01-01.
- ^ Dixon, Rod (2004). Open source software law. Artech House. p. 213. ISBN 978-1-58053-719-3. Retrieved 2011-12-25.
- ^ Thompson, Ken (February 1992). "A new C Compiler" (PDF). Australian UNIX Systems User Group Newsletter. Kensington, AU: AUUG. 13 (1): 31–41. ISSN 1035-7521. Retrieved 2011-12-25.
- ^ Pike, Rob. "Rio: Design of a Concurrent Window System" (PDF). Retrieved 8 March 2013.
- ^ Plan 9 Programmer's Manual, 1권 –
- ^ Trickey, Howard. "APE – The ANSI/POSIX Environment". Bell Labs. Lucent Technologies. Retrieved 2016-02-26.
- ^ "Linux emulation". Bell Labs. Lucent Technologies. Retrieved 2016-02-26.
- ^ Ford, Bryan; Cox, Russ (2008). Vx32: Lightweight, User-level Sandboxing on the x86. USENIX Annual Tech. Conf. pp. 293–306. CiteSeerX 10.1.1.212.9353.
- ^ Roscoe, Timothy (1995). The Structure of a Multi-Service Operating System (PDF) (Ph.D.). University of Cambridge. pp. 22–23.
- ^ a b Mirtchovski, Andrey; Simmonds, Rob; Minnich, Ron (2004). Plan 9—an integrated approach to grid computing. Proc. 18th Int'l Parallel and Distributed Processing Symp. IEEE. CiteSeerX 10.1.1.97.122.
- ^ a b "window manager improved 2". suckless.org. Archived from the original on 2011-12-31. Retrieved 2012-01-02.
[wmii] has a 9p filesystem interface and supports classic and tiling (acme-like) window management.
- ^ Torvalds, Linus (1999). "The Linux edge". Open Sources: Voices from the Open Source Revolution. O'Reilly. ISBN 1-56592-582-3.
- ^ "Glendix: Bringing the beauty of Plan 9 to Linux". Retrieved 2011-12-01.
- ^ "Plan 9 From Gentoo: Plan 9 Meets Gentoo". Gentoo Linux. Archived from the original on 2012-12-20. Retrieved 2011-12-01.
- ^ "The 9wm Window Manager". 9wm. Retrieved 2012-01-02.
9wm is an X window manager which attempts to emulate the Plan 9 window manager 8-1/2 as far as possible within the constraints imposed by X.
- ^ "9grid". Bell Labs. Lucent Technologies. Archived from the original on 2006-03-14. Retrieved 2006-03-28.
- ^ Ballesteros, Francisco J.; Guardiola, Gorka; Soriano, Enrique; Leal Algara, Katia (2005). Traditional systems can work well for pervasive applications. A case study: Plan 9 from Bell Labs becomes ubiquitous. IEEE Intl' Conf. on Pervasive Computing and Communications. CiteSeerX 10.1.1.109.8131.
- ^ "Vita Nuova Supplies Inferno Grid to Evotec OAI" (PDF) (Press release). Vita Nuova. 2004-05-18. Retrieved 2006-03-28.
- ^ "Rutgers University Libraries Install Inferno Data Grid" (PDF) (Press release). Vita Nuova. 2004-05-12. Retrieved 2006-03-28.
- ^ "The University of York Department of Biology install Vita Nuova's Inferno Data Grid" (PDF) (Press release). Vita Nuova. 2004-05-04. Retrieved 2006-03-28.
- ^ "9FRONT.ORG THE PLAN FELL OFF". Retrieved 2021-10-14.
- ^ Hayward, David (2013-05-09). "Raspberry Pi operating systems: 5 reviewed and rated". TechRadar. Archived from the original on June 7, 2013. Retrieved 2014-04-20.
- ^ "How to install Plan 9 on a Raspberry Pi". eLinux. Retrieved 2014-11-16.
- ^ Jurado, Álvaro; Fernández, Rafael; du Colombier, David; Minnich, Ron; Nyrhinen, Aki; Floren, John. Harvey (PDF). USENIX ATC BOF session.
- ^ "9atom".
- ^ "9FRONT.ORG THE PLAN FELL OFF".
- ^ "9legacy".
- ^ "Akaros".
- ^ "Harvey OS".
- ^ "JehanneOS".
- ^ "NIX". 21 November 2020.
- ^ "node9". GitHub. 14 January 2022.
- ^ "Plan B". 26 November 2020.
- ^ Sharwood, Simon (2014-02-14). "Plan 9 moves out from Lucent licence space". TheRegister. Retrieved 2014-04-20.
- ^ "Plan9 Foundation". plan9foundation.org. Retrieved 2021-10-13.
외부 링크
![]() | 위키미디어 커먼즈에는 벨 연구소의 플랜 9와 관련된 미디어가 있다. |
- 9p.io: plan9.bell-labs.com의 원래 공식 Plan 9 웹 사이트 보관 미러 2021-05-24 Wayback Machine
- 9팬: Plan 9 사용자 및 개발자를 위한 반공식 메일 목록
- 플랜9 파운데이션