맨위로가기

플랜 9 (운영체제)

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

1. 개요

플랜 9는 벨 연구소에서 개발된 분산 운영 체제이다. 유닉스의 철학을 계승하여 설계되었으며, 모든 시스템 리소스를 파일로 표현하는 독특한 디자인을 가지고 있다. 1992년 대학에 배포되었으며, 이후 오픈 소스 라이선스로 공개되었다. 9P 프로토콜, 유니온 디렉토리, UTF-8 유니코드 지원 등 혁신적인 기술을 제시했으나, 유닉스와의 호환성 부족 등으로 상업적으로 큰 성공을 거두지는 못했다. 플랜 9의 디자인 컨셉은 다른 운영 체제에 영향을 미쳤으며, 현재도 여러 파생 프로젝트와 개발 커뮤니티를 통해 유지되고 있다.

더 읽어볼만한 페이지

  • 소프트웨어 프로젝트 - 제너두 프로젝트
    제너두 프로젝트는 테드 넬슨이 1960년대에 구상한 하이퍼텍스트 시스템으로, 양방향 링크, 트랜스크루전, 버전 관리 등 진보된 개념을 포함했으나 상용화에는 실패하고 현재는 오픈 소스 프로젝트로 연구가 진행되고 있다.
  • 소프트웨어 프로젝트 - 인디아 스택
    인디아 스택은 인도의 디지털 인프라 구축을 위한 개방형 API 기반 플랫폼으로, 신원 인증, 결제, 데이터 교환 등의 핵심 구성 요소를 포함하며, 여러 국가에서 도입을 추진 중이나 개인 정보 보호 문제에 대한 비판도 존재한다.
  • 운영체제 - 모르프OS
    모르프OS는 1999년 Quark 마이크로커널 기반으로 개발되어 AmigaOS의 대안을 목표로 PowerPC 기반 컴퓨터를 위해 만들어진 운영체제로, 빠른 속도와 세련된 인터페이스를 지향하며 AmigaOne, Macintosh, Efika, Pegasos 등의 특정 하드웨어에서 실행되도록 설계되었다.
  • 운영체제 - 티맥스 윈도
    티맥스 윈도는 티맥스소프트가 개발한 운영 체제로, 자체 웹 브라우저와 오피스 프로그램을 포함했지만, 상용화에 실패하고 기술 논란과 상표권 분쟁을 겪었다.
  • 1992년 소프트웨어 - 윈도우 3.1x
    윈도우 3.1x는 마이크로소프트가 개발한 운영 체제 시리즈로, 윈도우 3.1을 시작으로 다양한 버전이 출시되었으며, 1,000만 개 이상 판매되었고, 간체자 지원, 업무용 버전, 다양한 추가 기능, 인터넷 익스플로러 지원 등의 특징을 가진다.
  • 1992년 소프트웨어 - 마이크로소프트 액세스
    마이크로소프트 액세스는 1992년 출시된 데이터베이스 관리 시스템으로, 테이블, 쿼리, 폼 등을 생성하고 VBA를 통해 솔루션을 개발하며, 윈도우에서 사용 가능하고 다양한 데이터 형식과 통합된다.
플랜 9 (운영체제) - [IT 관련 정보]에 관한 문서
기본 정보
우주복을 입은 글렌다, Plan 9 마스코트, 르네 프렌치가 그림.
글렌다, 르네 프렌치가 그린 우주복을 입은 Plan 9 마스코트
개발자Plan 9 Foundation, 벨 연구소 후신
출시일1992년 (대학교), 1995년 (일반 사용자)
최신 버전제4판
최신 출시일2015년 1월 10일
중단 여부아니오
마케팅 목표운영체제 연구, 네트워크 환경, 범용 목적
작성 언어ANSI C 방언
지원 플랫폼x86 / Vx32
x86-64
MIPS
DEC 알파
SPARC
PowerPC
ARM
커널 종류모놀리딕
사용자 인터페이스rio / rc
웹사이트Plan 9 Foundation 웹사이트
영향 받은 운영체제Research Unix
Cambridge Distributed Computing System
후속 운영체제Inferno
기타 파생 및 포크
저장소Plan 9 시스템 소스 코드 저장소
작동 상태현재
라이선스2021: MIT
2014: GPL-2.0-only
2002: LPL-1.02
2000: Plan 9 OSL
기타
프로그래밍 언어dialect of ANSI C

2. 역사

벨 연구소(Bell Labs)의 플랜 9은 1980년대 후반부터 유닉스(Unix)와 C 프로그래밍 언어를 개발한 그룹과 같은 벨 연구소의 전산 과학 연구 센터에서 개발되었다. 초기에는 롭 파이크(Rob Pike), 켄 톰슨(Ken Thompson (computer programmer)), 데이브 프레소토(Dave Presotto), 필 윈터보텀(Phil Winterbottom)이 주도했고, 데니스 리치(Dennis Ritchie)가 지원했다.

몇 년간의 개발과 내부 사용 후, 1992년에 벨 연구소는 플랜 9을 대학교에 배포했다. 1995년에는 비상업적 목적으로 2차 버전이 출시되었다.[69] 그러나 AT&T는 컴퓨터 시장이 아닌 임베디드 시스템 시장을 목표로 했고, 개발자들은 다른 운영 체제가 이미 자리를 잡았기 때문에 큰 기대를 하지 않았다.[16]

1996년 초, 플랜 9 프로젝트는 선 마이크로시스템즈(Sun Microsystems)의 자바(Java (software platform)) 플랫폼의 경쟁자로 의도된 인페르노(Inferno)에 밀려 보류되었다.[17] 1990년대 후반, 벨 연구소의 새로운 소유주인 루슨트 테크놀로지스(Lucent Technologies)는 상업적 지원을 중단했고, 2000년에는 3차 버전(''Brazil'')이 오픈 소스 라이선스(open-source license)로 배포되었다.[18] 2002년에는 새로운 자유 소프트웨어(free software) 라이선스 하에 4차 버전이 출시되었다.

2002년 4판 출시 이후, 벨 연구소(Bell Labs)의 플랜 9 소스 코드는 루슨트 공용 라이선스(Lucent Public License) 1.02에 따라 자유롭게 사용할 수 있게 되었다. 이 라이선스는 오픈 소스 이니셔티브(OSI)와 자유 소프트웨어 재단(Free Software Foundation)에 의해 자유 소프트웨어 라이선스로 인정받았다. 2014년에는 알카텔-루슨트(Alcatel-Lucent)의 승인을 받아 GPL-2.0-only로 공개되었다.

2021년 3월 23일, 플랜 9의 저작권은 벨 연구소에서 플랜 9 재단으로 이전되었고, 이전의 모든 릴리스는 MIT 라이선스로 재허가되었다.[20][21][22] 현재 9front, 9legacy 등 여러 파생 프로젝트가 플랜 9의 개발을 이어가고 있다.

플랜 9 출시 역사
날짜출시비고
1992플랜 9 1판벨 연구소가 대학에 배포
1995플랜 9 2판벨 연구소가 비상업적 목적으로 배포
2000플랜 9 3판 (Brazil)루슨트 테크놀로지스에 의해 오픈 소스 라이선스 하에 배포
2002플랜 9 4판루슨트 테크놀로지스에 의해 새로운 자유 소프트웨어 라이선스 하에 배포


2. 1. 개발 배경

벨 연구소의 플랜 9은 1980년대 후반부터 유닉스C 프로그래밍 언어를 개발한 같은 그룹인 벨 연구소의 전산 과학 연구 센터 회원들에 의해 개발되었다. 플랜 9 팀은 롭 파이크(Rob Pike), 켄 톰슨(Ken Thompson (computer programmer)), 데이브 프레소토(Dave Presotto), 필 윈터보텀(Phil Winterbottom)이 이끌었고, 전산 기술 연구 부서의 책임자인 데니스 리치(Dennis Ritchie)가 지원했다. 브라이언 커니핸(Brian Kernighan), 톰 더프(Tom Duff), 더그 맥일로이(Doug McIlroy), 비야네 스트롭스트루프(Bjarne Stroustrup) 등도 이 프로젝트에 기여했다.

플랜 9은 벨 연구소의 운영 체제 연구를 위한 주요 플랫폼으로 유닉스를 대체했다.[15] 특히 분산 멀티 유저(multi-user) 환경에서 시스템의 사용 및 프로그래밍을 용이하게 하기 위해 원래 유닉스 모델에 대한 여러 가지 변경 사항을 탐구했다.

플랜 9은 유닉스의 문제점, 즉 하나의 컴퓨터를 여러 사용자가 공유하는 것을 전제로 만들어졌으며, 여러 컴퓨터를 여러 사용자가 공유하는 것은 고려되지 않았다는 점을 해결하고자 했다. 유닉스의 초기 환경에서는 어떤 터미널에서 컴퓨터를 사용하든 동일한 환경을 재현할 수 있었지만, 플랜 9에서는 이를 네트워크상에 연결된 분산 처리 환경에서 실현하고자 했다.

또한, 유닉스 개발이 로컬 파일 시스템을 어떻게 표현할 것인가를 주제로 시작한 데 반해, 플랜 9는 로컬이든 원격이든 자원에 어떻게 접근할 것인가를 과제로 하는 연구로 시작했다.

이를 위해 플랜 9은 다음과 같은 설계 목표를 가지고 있었다.

  • 파일로서의 리소스: 모든 리소스를 계층형 파일 시스템 내의 파일로 표현한다.
  • 네임스페이스: 애플리케이션 입장에서 네트워크는 단일하고 일관된 네임스페이스이며, 그것 또한 계층형 파일 시스템으로 표현된다. 각 프로세스의 네임스페이스는 독립적으로 구축할 수 있다.
  • 표준 통신 프로토콜: 9P라는 표준 프로토콜을 사용하여 로컬 및 원격의 구분 없이 모든 리소스에 접근한다.


플랜 9은 네트워크 이용을 전제로 터미널, CPU 서버, 파일 서버, 인증 서버를 분리하여 보안 향상을 꾀했다. 또한, 파일 서버는 매일 스냅샷을 저장하여 사용자 수준에서의 백업 작업을 거의 불필요하게 만들었다.

플랜 9의 네트워크 투명성 지원의 핵심은 9P 프로토콜이다. 9P 프로토콜과 그 구현은, 이름이 지정된 네트워크 객체들을 연결하여, 파일과 같은 시스템 인터페이스로 제시한다.

2. 2. 파생 프로젝트

벨 연구소가 최근 몇 년 동안 후속 프로젝트로 이동함에 따라 공식 플랜 9 시스템의 개발은 중단되었다. 2021년 3월 23일, 벨 연구소에서 플랜 9 재단으로 저작권이 이전된 후 개발이 재개되었다.[20][21][22] 시스템에 대한 비공식적인 개발은 활성 기여자가 매달 빌드 및 새로운 기능을 제공하는 9front 포크에서 계속 진행되고 있다.

  • '''9front'''[34]는 플랜 9의 포크이다. 벨 연구소 내에서 전담 개발 자원의 부족을 해결하기 위해 시작되었으며, 다양한 수정 및 개선 사항이 축적되었다. 9front는 시스템 Wi-Fi 드라이버, 오디오 드라이버, USB 지원 및 내장 게임 에뮬레이터와 다른 기능을 제공한다.[23][24]
  • '''9legacy'''[35]는 대체 배포판이다. 현재 플랜 9 배포판을 기반으로 한 패치 세트가 포함되어 있다.
  • '''인페르노(Inferno)'''는 플랜 9의 후손으로, 장치 및 Styx/9P2000 프로토콜을 중심으로 커널에서 많은 디자인 컨셉과 소스 코드를 공유한다. 인페르노는 벨 연구소의 유닉스 유산과 유닉스 철학을 플랜 9과 공유한다. 인페르노의 많은 명령줄 도구는 림보(Limbo)로 변환된 플랜 9 도구였다.
  • '''9atom'''[31]은 386 PAE 커널, amd64 CPU 및 터미널 커널, nupas, 추가 PC 하드웨어 지원, IL 및 Ken의 fs를 추가하여 플랜 9 배포판을 확장한다.[32][33]
  • '''Akaros'''[36]는 다중 코어 아키텍처 및 대규모 SMP 시스템을 위해 설계되었다.
  • '''Harvey OS'''[37]는 플랜 9 코드가 gcc 및 clang과 함께 작동하도록 하는 노력이다.
  • '''JehanneOS'''[38]는 플랜 9에서 파생된 실험적인 운영 체제이다. 사용자 공간 및 모듈은 대부분 9front에서 파생되었고, 빌드 시스템은 Harvey OS에서, 커널은 Plan9-9k 64비트 Plan9 커널의 포크이다.
  • '''NIX'''[39]는 멀티코어 시스템 및 클라우드 컴퓨팅을 목표로 하는 플랜 9의 포크이다.
  • '''node9'''[40]림보(Limbo) 프로그래밍 언어와 DIS 가상 머신을 Lua(Lua) 언어와 LuaJIT 가상 머신으로 대체하는 플랜9/인페르노의 스크립트 파생물이다.
  • '''Plan B'''[41]는 사용 가능한 리소스 세트가 시간에 따라 다른 분산 환경에서 작동하도록 설계되었다.

3. 디자인 컨셉

Plan 9의 핵심 디자인 컨셉은 "모든 것을 파일로 표현한다"는 유닉스의 철학을 확장한 것이다. 이는 시스템의 모든 리소스(프로세스, 네트워크 연결, 사용자 인터페이스 등)를 파일 시스템 내의 파일로 표현하고, 9P라는 통일된 프로토콜을 통해 접근하는 방식을 의미한다.[1]

Plan 9는 분산 운영체제로 설계되어, 지리적으로 분산된 컴퓨터들을 단일 시스템처럼 작동하게 한다. 사용자는 리오 윈도 시스템을 실행하는 터미널에서 작업하며, 계산 집약적인 프로세스는 CPU 서버에서 처리하고, 영구 데이터는 파일 서버에 저장하는 방식이다.

Plan 9 설계자는 시스템의 기반을 두 가지 아이디어, 즉 프로세스별 네임스페이스와 메시지 지향 파일 시스템 프로토콜에 두었다고 말한다.

대부분의 운영 체제와 달리, Plan 9의 각 프로세스는 자체적인 ''네임스페이스''를 가진다. 이는 다른 운영 체제에서 파일 시스템이라고 부르는 것에 해당하며, 단일 경로 이름이 다른 프로세스에 대해 서로 다른 리소스를 참조할 수 있게 한다.

프로세스는 다른 프로세스의 네임스페이스에 나타나는 가상 파일을 제공하여 서비스를 제공할 수 있다. 이러한 파일에 대한 클라이언트 프로세스의 입/출력은 두 프로세스 간의 프로세스 간 통신이 된다. Plan 9는 파일 시스템의 유닉스 개념을 일반화하여 컴퓨팅 리소스에 대한 중앙 액세스 지점을 제공한다. 장치 파일 개념을 가져와 주변 장치에 대한 액세스를 제공하고, 물리적으로 분리된 파일 시스템을 계층적 네임스페이스에 마운트할 수 있으며, 표준화된 프로토콜로 통신하는 서버 프로그램에 대한 연결을 마운트할 수 있다.

Plan 9의 분산 작동은 프로세스별 네임스페이스에 의존하여 클라이언트와 서버 프로세스가 기계 간에 통신할 수 있도록 한다. 예를 들어, `cpu` 명령어는 계산 서버에서 원격 세션을 시작하고, 로컬 네임스페이스의 일부(터미널의 장치)를 서버로 내보내 원격 프로그램이 터미널을 사용하여 입/출력을 수행할 수 있게 한다.

프로세스 관리를 위한 시스템 호출 대신, 플랜 9는 `/proc` 파일 시스템을 제공한다. 각 프로세스는 정보와 제어 파일이 들어있는 디렉토리로 나타나며, 일반적인 파일 IO 시스템 호출로 조작할 수 있다.[1]

Plan 9는 네트워킹 스택이나 하드웨어에 접근하기 위한 특화된 시스템 호출이나 ioctl이 없고, `/net` 파일 시스템을 사용한다. 네트워크 연결은 제어 파일에 제어 메시지를 읽고 쓰는 방식으로 제어되며, `/net/tcp` 및 `/net/udp`와 같은 하위 디렉토리는 해당 프로토콜의 인터페이스로 사용된다.

Plan 9는 유니온 디렉토리 개념을 도입하여 서로 다른 매체나 네트워크에 걸쳐 있는 리소스군을 묶고, 다른 디렉터리와 투명하게 연결할 수 있다.

문자 인코딩 관리의 복잡성을 줄이기 위해 Plan 9는 시스템 전체에서 유니코드를 사용하며, 켄 톰슨이 발명한 UTF-8이 네이티브 인코딩이다.

3. 1. 파일로서의 리소스

Plan 9에서는 프로세스, 네트워크 연결, 사용자 인터페이스 등 시스템의 모든 리소스가 파일 시스템 내의 파일로 표현된다.[1] 이는 `/proc`, `/net` 등의 특수 가상 파일 시스템을 통해 구현된다.

프로세스 관리를 위한 시스템 호출 대신, 플랜 9는 `/proc` 파일 시스템을 제공한다. 각 프로세스는 정보와 제어 파일이 들어있는 디렉토리로 나타나며, 이는 일반적인 파일 IO 시스템 호출로 조작할 수 있다.[1] 이 파일 시스템 접근 방식을 통해 플랜 9 프로세스는 ls 및 cat과 같은 간단한 파일 관리 도구로 관리할 수 있다. 그러나 프로세스는 파일처럼 복사하거나 이동할 수 없다.

`/proc` 디렉터리에는 실행 중인 프로세스 목록이 있으며, 각 상태를 나타낸다. 이른바 "프로세스 파일 시스템 (procfs)"이라고 불리며, 표준화되어 있지 않고 세부 사항은 다르지만, 리눅스를 비롯한 많은 유닉스에서도 채택되었다. 프로세스는 이름이 지정된 객체 (info 파일 또는 control 파일이 있는 하위 디렉터리)로 `/proc` 아래에 있으며, 다른 커널 리소스와 함께 동적 I/O 채널도 있어 사용자는 명령을 보내거나 데이터를 읽을 수 있다. 사용자는 일부 시스템 호출을 사용하는 프로그램을 컴파일하여 커널과 상호 작용할 필요 없이, `ls`나 `cat`과 같은 명령으로 프로세스를 검색하고 조작할 수 있다.

다른 머신의 `/proc` 디렉터리는 다른 특수 파일 시스템과 마찬가지로 사용자 네임스페이스에 마운트할 수 있으며, 로컬에 있는 것처럼 사용할 수 있다. 이를 통해 여러 머신으로 구성된 분산 컴퓨팅 환경이 가능하다.

Plan 9는 다수의 통신 프로토콜과 장치 드라이버 인터페이스로서 시스템 호출을 가지고 있지 않다. 예를 들어, `/net`는 TCP/IP 전체의 API 역할을 담당하며, 스크립트나 명령어로 조작 가능하고, 제어 파일에 기록함으로써 커넥션을 읽고 쓸 수 있다. `/net/tcp`나 `/net/udp`와 같은 하위 디렉토리는 각 프로토콜에 대한 인터페이스로 사용할 수 있다.

3. 2. 프로세스별 네임스페이스

각 프로세스는 자신만의 독립적인 파일 시스템 뷰(네임스페이스)를 갖는다. 이는 다른 운영 체제에서 파일 시스템이라고 부르는 것에 해당하며, 단일 경로 이름이 다른 프로세스에 대해 서로 다른 리소스를 참조할 수 있게 한다. 이러한 설정을 통해 프로세스 간 격리, 사용자별 환경 설정, 분산 컴퓨팅 등이 가능해진다.

예를 들어, Plan 9의 원래 윈도 시스템인 8½는 터미널의 사용자 인터페이스를 (마우스 움직임과 버튼 클릭 알림), (텍스트 입/출력), (그래픽 작업, 비트 블릿 참조)의 세 가지 유사 파일로 표현했다. 윈도 시스템은 새 창을 만들 때 이러한 장치들을 자체적으로 연결하여 실제 장치 파일을 숨기는 새 네임스페이스를 설정한다. 이를 통해 프로그램은 운영체제의 장치 드라이버나 윈도 시스템과 직접 통신하는지 여부를 알 필요 없이 입/출력을 수행할 수 있다.

Plan 9의 분산 작동은 프로세스별 네임스페이스에 의존하여 클라이언트와 서버 프로세스가 기계 간에 통신할 수 있도록 한다. 예를 들어, 명령어는 로컬 네임스페이스의 일부(터미널의 장치)를 서버로 내보내 원격 프로그램이 터미널의 마우스, 키보드, 디스플레이를 사용하여 입/출력을 수행할 수 있게 한다.

또한 Plan 9에서는 현실 세계에서 동일한 객체에 사용자마다 다른 이름을 부여할 수 있다. 각 사용자는 각종 객체를 자신의 이름 공간에 모아 개인적인 환경을 생성할 수 있으며, 이는 UNIX의 사용자 특권 개념을 모든 객체로 확장한 것이다. 사용자는 자신만의 "클론"을 생성하여 변경하고, 원본 리소스에 영향을 주지 않고 삭제할 수 있다.

유닉스에서는 "링크"나 파일 시스템 "마운트"를 통해 리소스군으로부터 파일 시스템을 구축하며, 원래 디렉토리는 보이지 않게 된다. Plan 9는 "유니온 디렉터리"를 도입하여 서로 다른 매체나 네트워크에 걸쳐 있는 리소스군을 묶고, 다른 디렉터리와 투명하게 연결할 수 있다. 예를 들어, 다른 컴퓨터의 디렉터리를 자신의 컴퓨터와 연결하여 로컬 및 원격 애플리케이션에 투명하게 접근하거나, 에 외부 장치나 리소스를 묶어 네트워크를 통해 장치를 공유할 수 있다.

3. 3. 9P 프로토콜

9P (또는 9P2000)는 Plan 9에서 사용되는 통일된 네트워크 프로토콜이다. 다른 프로그램에 파일 형식의 서비스를 제공하려는 모든 프로그램은 9P를 사용한다. 이는 사용자 지정 프로그래밍 인터페이스의 수를 줄여준다. 9P는 서버와 클라이언트 간에 전달되는 메시지를 위한 일반적이고, 매체에 구애받지 않으며, 바이트 지향 프로토콜이다. 이 프로토콜은 사용자 인터페이스와 네트워크를 포함하여 프로세스, 프로그램 및 데이터에 접근하고 통신하는 데 사용된다. 제4판에서는 9P2000으로 개칭되었다.

모든 시스템 리소스는 9P를 통해 접근 가능하며, 이는 로컬 및 원격 리소스 간의 구분을 없앤다.

Plan 9의 네트워크 투명성 지원의 핵심은 9P 프로토콜이다. 9P 프로토콜과 그 구현은, 이름이 지정된 네트워크 객체들을 연결하여, 파일과 같은 시스템 인터페이스로 제시한다. 9P는 고속의 바이트 지향 분산 파일 시스템이며 (블록 지향이 아님), 원격 머신상의 NFS 서버가 제시하는 객체뿐만 아니라, 임의의 객체를 가상화할 수 있다.

3. 4. 유니온 디렉토리

플랜 9는 사용자가 여러 디렉터리 트리의 파일(이하 ''이름'')을 단일 위치에 수집할 수 있도록 허용한다. 결과 ''합집합 디렉터리''는 기본 디렉토리의 연결과 같이 동작한다(연결 순서를 제어할 수 있음). 구성 디렉토리에 동일한 이름을 가진 파일이 포함된 경우, 합집합 디렉토리의 목록( `ls` 또는 `lc` )은 중복된 이름을 단순히 보고한다.[1] 단일 경로 이름의 해결은 상향식으로 수행된다. 디렉토리 `top`과 `bottom`이 `top`이 먼저 와서 `u`로 합쳐진 경우, `u/name`은 `top/name`이 존재하면 `top/name`을 나타내고, `bottom/name`이 존재하고 ''`top/name`이 존재하지 않는 경우''에만 `bottom/name`을 나타내며, 둘 다 존재하지 않으면 파일이 없다. 하위 디렉토리의 재귀적 합집합은 수행되지 않으므로, `top/subdir`가 존재하더라도 `bottom/subdir`의 파일은 합집합을 통해 접근할 수 없다.[2]

합집합 디렉토리는 일련의 `bind` 명령을 사용하여 생성할 수 있다.



bind /arm/bin /bin

bind -a /acme/bin/arm /bin

bind -b /usr/alice/bin /bin



위 예에서 `/arm/bin`은 `/bin`에 마운트되어 `/arm/bin`의 내용이 `/bin`의 이전 내용을 대체한다. Acme의 `bin` 디렉토리는 그 다음 `/bin` 뒤에 합집합 마운트되고, Alice의 개인 `bin` 디렉토리는 앞에 합집합 마운트된다. `/bin`에서 파일을 요청하면 먼저 `/usr/alice/bin`에서 찾고, 그 다음 `/arm/bin`에서 찾고, 마지막으로 `/acme/bin/arm`에서 찾는다.

따라서 개별 프로세스 네임스페이스는 일반적으로 셸의 검색 경로 개념을 대체한다. 경로 환경 변수(`$path`)는 여전히 rc 셸(플랜 9에서 주로 사용되는 셸)에 존재한다. 그러나 rc의 경로 환경 변수는 일반적으로 `/bin` 및 `.` 디렉토리만 포함하며 변수를 수정하는 것은 권장되지 않는다. 대신, 추가 명령을 추가하려면 여러 디렉토리를 단일 `/bin`으로 바인딩해야 한다.[3] 플랜 9와 달리, 유닉스 셸의 경로 환경 변수는 실행 파일이 명령으로 추가되어야 하는 추가 디렉토리를 포함하도록 설정해야 한다.

또한, 커널은 각 프로세스에 대해 별도의 마운트 테이블을 유지할 수 있으며, 따라서 각 프로세스에 자체 파일 시스템 네임스페이스를 제공할 수 있다. 프로세스의 네임스페이스는 독립적으로 구성될 수 있으며, 사용자는 서로 다른 네임스페이스를 가진 프로그램으로 동시에 작업할 수 있다.[1] 네임스페이스는 chroot와 유사하지만 더 안전한 방식으로 격리된 환경을 만드는 데 사용될 수 있다.

플랜 9의 합집합 디렉토리 아키텍처는 4.4BSD 및 리눅스 유니온 파일 시스템 구현에 영감을 주었지만,[1] BSD 합집합 마운트 기능의 개발자들은 플랜 9에서 디렉토리의 비재귀적 병합이 "일반적인 용도로는 너무 제한적"이라고 생각했다.[2]

플랜 9의 설계 개념은 그 자체로도 흥미롭지만, 함께 사용될 때 가장 유용하도록 설계되었다. 예를 들어, 네트워크 주소 변환(NAT) 서버를 구현하기 위해, 라우터의 `/net` 디렉토리 트리를 자체 `/net`으로 오버레이하는 유니온 디렉토리를 생성할 수 있다. 마찬가지로, 가상 사설망(VPN)은 공용 인터넷을 통해 보안된 9P를 사용하여 원격 게이트웨이의 `/net` 계층 구조를 유니온 디렉토리에 오버레이하여 구현할 수 있다. `/net` 계층 구조와 필터가 있는 유니온 디렉토리는 신뢰할 수 없는 애플리케이션을 샌드박스하거나 방화벽을 구현하는 데 사용할 수 있다. 같은 방식으로, 원격 호스트의 `/proc` 계층 구조의 유니온 디렉토리로 분산 컴퓨팅 네트워크를 구성할 수 있으며, 이를 통해 원격 호스트를 로컬인 것처럼 상호 작용할 수 있다.

이러한 기능을 함께 사용하면 기존의 계층적 이름 시스템을 재사용하여 복잡한 분산 컴퓨팅 환경을 조립할 수 있다.

유닉스에서는 "링크"나 파일 시스템의 "마운트"와 같은 개념으로 각종 리소스군으로부터 파일 시스템을 구축할 수 있다. 이러한 방식을 이용하면, 원래의 디렉터리는 보이지 않게 된다. 예를 들어, "net"이라는 디렉터리에 새로운 파일 시스템을 마운트하면, 원래의 "net" 디렉터리 하위 내용에는 접근할 수 없게 된다.

플랜 9는 "유니온 디렉터리"라는 개념을 도입했다. 이는 서로 다른 매체나 네트워크에 걸쳐 있는 리소스군을 묶은 디렉터리이며, 다른 디렉터리와 투명하게 연결할 수 있다. 예를 들어, 다른 컴퓨터의 `/bin` 디렉터리를 자신의 컴퓨터의 동일한 이름의 디렉터리와 연결하여 로컬 및 원격 애플리케이션에 투명하게 접근할 수 있게 할 수 있다. 마찬가지로, `/dev`에 외부 장치나 리소스를 묶으면, 코드를 전혀 추가하지 않고 네트워크를 통해 장치를 공유할 수 있다.

리눅스 배포판라이브 CD의 많은 수가, 이 기능의 제한된 버전인 union mount라는 기능을 구현하는 경우가 늘고 있다.

3. 5. 유니코드 (UTF-8)

문자 인코딩 관리의 복잡성을 줄이기 위해 플랜 9는 시스템 전체에서 유니코드를 사용한다. 초기 유니코드 구현은 ISO/IEC 10646-1:1993이었다. 켄 톰슨이 UTF-8을 발명했으며, 이는 플랜 9에서 네이티브 인코딩이 되었다. 전체 시스템은 1992년에 일반 사용으로 전환되었다. UTF-8은 기존의 널 종료 문자열과의 하위 호환성을 유지하여, 더 안정적인 정보 처리와 여러 프로세스 간의 유닉스 파이프를 통한 다국어 문자열 데이터의 연결을 가능하게 한다. 모든 문화와 지역의 문자를 포함하는 단일 UTF-8 인코딩을 사용함으로써 코드 집합 간의 전환이 필요 없어졌다. Plan 9의 내부 코드는 UTF-8로 되어 있어 다국어 문제는 기본적으로 발생하지 않는다. 또한, UTF-8 자체는 Plan 9 연구 과정에서 켄 톰슨이 고안한 것으로, 1992년에 모든 코드가 UTF-8을 지원하게 되었다[60]。단, Plan 9이 지원하는 것은 유니코드의 기본 다국어 평면뿐이다.

4. 소프트웨어

플랜 9은 자체적인 소프트웨어 생태계를 가지고 있다. 시스템 설계 덕분에 ls, cat, grep, cp, rm 등 대부분의 유틸리티를 rc 셸과 함께 사용하여 플랜 9의 작업을 수행할 수 있다.

팩토텀은 인증 서버 및 키 관리 서버로, 다른 프로그램을 대신하여 인증을 처리하므로 비밀 키와 구현 세부 정보는 팩토텀만 알면 된다.

x86용 실행 환경이 제공되며, MIPS, DEC Alpha, SPARC, PowerPC, ARM 등 다양한 아키텍처로 이식되었다. 시스템은 ISO/ANSI C의 방언으로 작성되었다. 일부 응용 프로그램은 Alef라는 독자적인 언어로 작성되었으나, 나중에 C 언어 방언으로 다시 작성되었다. POSIX 호환 응용 프로그램을 이식할 수 있으며, 소켓은 ANSI/POSIX Environment APE를 통해 에뮬레이션할 수 있다. 최근에는 Plan 9에서 리눅스용 바이너리를 실행할 수 있는 ''linuxemu''라는 응용 프로그램도 개발 중이다.

IBM슈퍼컴퓨터 Blue Gene으로도 이식되었다.[61]

4. 1. 셸 및 유틸리티

플랜 9의 기본 셸은 rc 셸이며, ls, cat, grep, cp, rm 등 유닉스와 비슷한 명령 줄 유틸리티를 제공한다.

팩토텀은 플랜 9용 인증 서버 및 키 관리 서버이다. 팩토텀은 다른 프로그램을 대신하여 인증을 처리하므로 비밀 키와 구현 세부 정보는 팩토텀만 알면 된다.

4. 2. 텍스트 편집기

샘과 acme는 플랜 9의 텍스트 편집기이다. 플럼버는 시스템 전체의 하이퍼링크를 허용하는 프로세스 간 통신 메커니즘을 제공한다.

acme와 rc가 실행 중인 플랜 9

4. 3. 윈도 시스템

유닉스와 달리, 플랜 9는 그래픽을 염두에 두고 설계되었다. 부팅 후 플랜 9 터미널은 사용자가 rc를 표시하는 새 창을 만들 수 있는 리오 윈도우 시스템을 실행한다. 이 셸에서 호출된 그래픽 프로그램은 해당 창에서 셸을 대체한다.

플럼버는 시스템 전체의 하이퍼링크를 허용하는 프로세스 간 통신 메커니즘을 제공한다.

4. 4. 개발 도구

플랜 9 배포 패키지에는 특수 컴파일러 변형과 프로그래밍 언어가 포함되어 있으며, 플랜 9에 특화된 사용자 인터페이스 시스템과 함께 맞춤형 라이브러리 세트를 제공한다. 시스템의 대부분은 C의 방언으로 작성되었다(ANSI C에 몇 가지 확장 기능과 몇 가지 다른 기능이 제외됨). 이 언어의 컴파일러는 이식성을 염두에 두고 맞춤 제작되었으며, 작성자에 따르면 "빠르게 컴파일하고, 느리게 로드하며, 중간 품질의 오브젝트 코드를 생성"한다.

동시 프로그래밍 언어인 알레프는 처음 두 판에서 사용 가능했지만, 유지보수상의 이유로 삭제되었고 C용 스레딩 라이브러리로 대체되었다.[28][29]

설치 가능한 실행 환경은 x86용으로 제공된다. 또한, MIPS, DEC Alpha, SPARC, PowerPC, ARM 등의 아키텍처로 이식되었다. 시스템은 ISO/ANSI C의 방언의 일종으로 작성되었다. 몇몇 응용 프로그램은 Alef라는 독자적인 언어로 원래 작성되었지만, 나중에 시스템과 동일한 C 언어 방언으로 다시 작성된 것도 있다. POSIX 호환 응용 프로그램을 이식할 수 있으며, 소켓은 ANSI/POSIX Environment APE를 통해 에뮬레이션할 수 있다. 최근에는 Plan 9에서 리눅스용 바이너리를 실행할 수 있는 ''linuxemu''라는 응용 프로그램도 개발 중이다.

IBM슈퍼컴퓨터 Blue Gene으로도 이식되었다.[61]

5. 평가 및 영향

플랜 9는 분산 운영 체제로서 혁신적인 아이디어를 제시했지만, 상업적으로 큰 성공을 거두지는 못했다. 하지만, 플랜 9의 디자인 컨셉과 기술은 다른 운영 체제에 영향을 미쳤다.

플랜 9는 유닉스 개념을 발전시켰지만, 기존 유닉스 소프트웨어와의 호환성은 목표로 하지 않았다. 플랜 9의 많은 명령 줄 유틸리티는 유닉스와 이름은 같지만, 다르게 작동한다. POSIX 응용 프로그램을 지원하고, ANSI/POSIX 환경(APE)을 통해 버클리 소켓 인터페이스를 에뮬레이션했지만, 완전한 호환성을 제공하지는 않았다.

플랜 9는 벨 연구소의 Computing Science Research Center에서 유닉스와 C 언어를 개발한 그룹에 의해 만들어졌다. 롭 파이크, 켄 톰슨 등이 초기 팀을 이끌었으며, 데니스 리치가 지원했다. 브라이언 커니핸, 비야네 스트롭스트루프 등도 개발에 기여했다.[56]

플랜 9는 모든 시스템 인터페이스를 파일 그룹으로 표현하는 유닉스의 핵심 개념을 현대 분산 시스템에서 구현할 수 있음을 보여주었다. UTF-8과 같은 플랜 9의 일부 기능은 다른 운영 체제에도 구현되었다. 리눅스유닉스 계열 운영 체제는 9P와 플랜 9의 파일 시스템 및 시스템 콜 체계를 부분적으로 구현했다. 또한 Plan 9 from User Space를 통해 플랜 9의 응용 프로그램 및 도구가 유닉스 계열 시스템에 이식되어 어느 정도 인기를 얻고 있다.

그러나 플랜 9는 유닉스만큼 인기를 얻지 못하고 연구용 도구로 머물렀다. 에릭 S. 레이먼드는 저서 ''The Art of Unix Programming''에서 "플랜 9가 실패한 이유는 유닉스를 대체할 만큼 충분히 매력적인 개선점이 되지 못했기 때문이다"라고 평가하며, "더 나은 솔루션의 가장 위험한 적은 이미 충분히 잘 작동하는 코드베이스이다"라고 덧붙였다.[62]

플랜 9 지지자들은 채용을 방해했던 문제가 해결되었고, 분산 시스템, 개발 환경, 연구용 플랫폼으로서 완성도를 갖추었으며, 앞으로 점차 널리 퍼져나갈 것이라고 주장한다.

5. 1. 긍정적 평가

Plan 9는 "모든 것을 파일로 표현한다"는 철학을 통해 시스템의 일관성과 유연성을 높였다는 평가를 받는다.[1] 9P 프로토콜은 네트워크 투명성을 제공하여 분산 컴퓨팅 환경 구축을 용이하게 했다. 또한, 켄 톰슨이 Plan 9 연구 과정에서 고안하고 1992년에 모든 코드에 적용된 UTF-8 문자 인코딩은 다국어 환경 지원에 기여했다.[60]

Plan 9의 이러한 특징들은 다른 운영 체제에도 영향을 주었다. 리눅스와 같은 유닉스 계열 운영 체제는 원격 파일 접근을 위한 Plan 9의 프로토콜인 9P2000을 구현했으며, rfork의 기능도 일부 채택했다. Plan 9의 sam 및 acme 편집기를 포함한 여러 응용 프로그램 및 도구는 Plan 9 from User Space를 통해 유닉스 및 리눅스 시스템으로 이식되어 인기를 얻었다. 9wm X 윈도우 매니저는 Plan 9의 이전 윈도잉 시스템인 8½에서 영감을 받았으며, wmii 또한 Plan 9의 영향을 많이 받았다.

Windows 10 version 1903부터 Windows Subsystem for Linux는 플랜 9 파일 시스템 프로토콜을 서버로 구현하고 호스트 Windows 운영 체제는 클라이언트로 작동한다.[30]

5. 2. 비판적 평가

플랜 9은 기존 유닉스 소프트웨어와의 호환성이 부족하여 사용자층 확대에 어려움을 겪었다. 많은 명령 줄 유틸리티가 유닉스와 이름은 같지만 다르게 작동했다. POSIX 응용 프로그램을 지원하고 ANSI/POSIX 환경(APE)을 통해 버클리 소켓 인터페이스를 에뮬레이션할 수 있었지만, X 윈도 시스템(X11)을 "적절하게 지원하는 것은 너무 큰 작업"이라 배포하지 않았다.

상업적 지원 부족, 최종 사용자 애플리케이션 부족, 장치 드라이버 부족도 플랜 9의 낮은 채택에 영향을 미친 문제점으로 지적되었다.

에릭 S. 레이먼드는 저서 'The Art of Unix Programming'에서 "Plan 9가 실패한 이유는 단지, Unix가 이전 시스템을 능가할 정도로 Plan 9가 주목할 만한 개량이 아니었기 때문이다."라고 평가하며, "더 나은 솔루션에 가장 위험한 적은, 이미 존재하는 충분히 잘 동작하는 코드베이스이다."라고 덧붙였다.[62]

하지만, 플랜 9 지지자들과 개발자들은 플랜 9 채택을 방해했던 문제들이 해결되었으며, 분산 시스템, 개발 환경 및 연구 플랫폼으로서의 원래 목표가 달성되었고, 보통 수준이지만 증가하는 인기를 누리고 있다고 주장한다.

5. 3. 영향

플랜 9는 모든 시스템 인터페이스를 파일 집합으로 표현할 수 있다는 유닉스의 핵심 개념을 현대 분산 시스템에서 성공적으로 구현할 수 있음을 보여주었다. 플랜 9의 UTF-8 문자 인코딩과 같은 일부 기능은 다른 운영 체제에 구현되었다. 리눅스와 같은 유닉스 계열 운영 체제는 원격 파일 접근을 위한 플랜 9의 프로토콜인 9P2000을 구현했으며, 플랜 9의 프로세스 생성 메커니즘인 rfork의 기능을 채택했다. 또한, Plan 9 from User Space를 통해 sam 및 acme 편집기를 포함한 여러 플랜 9의 응용 프로그램 및 도구가 유닉스 및 리눅스 시스템으로 이식되어 어느 정도 인기를 얻었다. 여러 프로젝트가 리눅스 커널을 둘러싼 GNU 운영 체제 프로그램을 플랜 9 운영 체제 프로그램으로 대체하려 한다.

9wm X 윈도우 매니저는 플랜 9의 이전 윈도잉 시스템인 8½에서 영감을 받았다. wmii 또한 플랜 9의 영향을 많이 받았다.


컴퓨터 과학 연구에서 플랜 9는 그리드 컴퓨팅 플랫폼으로, 미들웨어 없이 유비쿼터스 컴퓨팅 연구를 위한 도구로 사용되었다. 상업적으로 플랜 9는 Coraid 스토리지 시스템의 기반이 된다.

그러나 플랜 9는 유닉스만큼 인기를 얻지 못했으며, 주로 연구 도구로 사용되었다. 에릭 S. 레이먼드는 저서 ''The Art of Unix Programming''에서 플랜 9가 널리 퍼지지 않은 배경에 대해 다음과 같이 고찰하고 있다.

(해석: 플랜 9가 실패한 이유는 유닉스를 대체할 만큼 충분히 매력적인 개선점이 되지 못했기 때문인 것 같습니다. 플랜 9에 비해 유닉스는 삐걱거리고 덜컹거리며 녹슨 부분이 분명하지만, 제 역할을 충분히 잘 수행하여 자리를 지키고 있습니다. 야심 찬 시스템 설계자들에게 주는 교훈이 있습니다. 더 나은 솔루션의 가장 위험한 적은 이미 충분히 잘 작동하는 코드베이스라는 것입니다.)

플랜 9의 낮은 채택에 기여한 다른 요인으로는 상업적 백업의 부족, 최종 사용자 응용 프로그램의 부족, 그리고 장치 드라이버의 부족이 있다.

플랜 9 지지자들과 개발자들은 플랜 9의 채택을 방해하는 문제들이 해결되었으며, 분산 시스템, 개발 환경 및 연구 플랫폼으로서의 원래 목표가 달성되었고, 보통 수준이지만 증가하는 인기를 누리고 있다고 주장한다. Inferno는 호스팅 기능을 통해 플랜 9 기술을 이기종 컴퓨팅 그리드의 호스팅된 부분으로 다른 시스템에 제공하는 도구 역할을 해왔다.

9atom 및 9front를 포함한 여러 프로젝트가 플랜 9를 확장하기 위해 노력하고 있다. 이러한 포크는 향상된 Upas e-mail 시스템 버전, Go 컴파일러, Mercurial version control system 지원 (현재 git 구현도 포함) 및 기타 프로그램을 포함하여 추가적인 하드웨어 드라이버와 소프트웨어로 플랜 9를 보강한다. 플랜 9는 Raspberry Pi 싱글 보드 컴퓨터로 이식되었다. Harvey 프로젝트는 사용자 지정 플랜 9 C 컴파일러를 GCC로 대체하여 GitHub 및 Coverity와 같은 최신 개발 도구를 활용하고 개발 속도를 높이려고 시도한다.

Windows 10 version 1903부터 Windows Subsystem for Linux는 플랜 9 파일 시스템 프로토콜을 서버로 구현하고 호스트 Windows 운영 체제는 클라이언트로 작동한다.

참조

[1] 웹사이트 Plan 9 from Bell Labs https://9p.io/plan9/[...]
[2] 웹사이트 Glenda, the Plan 9 Bunny https://9p.io/plan9/[...] 2008-12-02
[3] 논문 Forum Association for Computing Machinery (ACM)
[4] 웹사이트 plan9checksums http://plan9.bell-la[...] Bell Labs 2019-07-25
[5] 웹사이트 Plan 9 Foundation: Activities http://plan9foundati[...] 2021-03-23
[6] 웹사이트 9legacy http://9legacy.org/p[...] 2021-03-23
[7] 웹사이트 Plan 9 License http://p9f.org/licen[...] 2021-06-14
[8] 웹사이트 Plan9License http://akaros.cs.ber[...] 2021-06-14
[9] 웹사이트 Lucent Public License Version 1.02 http://plan9.bell-la[...] 2021-06-14
[10] 웹사이트 Plan 9 Open Source License - Version 1.4 - 09/10/02 http://plan9.bell-la[...] 2021-06-14
[11] 웹사이트 Plan 9 Open Source License - Version 1.2 - 10/29/00 http://plan9.bell-la[...] 2021-06-14
[12] 웹사이트 Plan 9 Open Source License - Version 1.1 - 09/20/00 http://plan9.bell-la[...] 2021-06-14
[13] 웹사이트 Plan 9 Open Source License Agreement http://plan9.bell-la[...] 2021-06-14
[14] 웹사이트 GPLv2 source code http://akaros.org/fi[...]
[15] 웹사이트 The weird world of non-C operating systems https://www.theregis[...] 2022-09-01
[16] 뉴스 AT&T Bell Labs ships Plan 9 OS for embedded systems https://books.google[...] 1995-07-24
[17] 뉴스 AT&T reveals plans for Java competitor https://books.google[...] 1996-02-19
[18] 웹사이트 Bell Labs: A Complete Guide — History, Products, Founding, and More https://history-comp[...] 2022-09-01
[19] 웹사이트 Plan 9 — Additional Software https://9p.io/plan9/[...] 2016-03-06
[20] 웹사이트 Transfer of Plan 9 to the Plan 9 Foundation https://marc.info/?l[...] 2020-04-14
[21] 웹사이트 Plan 9 from Bell Labs in Cyberspace! https://www.bell-lab[...] 2021-03-23
[22] 웹사이트 Bell Labs transfers copyright of influential 'Plan 9' OS to new foundation https://www.theregis[...] 2021-03-24
[23] 웹사이트 FQA 1 - Introduction To 9front http://fqa.9front.or[...] 2018-02-15
[24] 웹사이트 New version of Plan 9 fork 9front released https://www.theregis[...] 2022-11-05
[25] 웹사이트 Harvey OS https://harvey-os.or[...] 2018-02-15
[26] 웹사이트 Jehanne http://jehanne.h--k.[...] 2023-01-08
[27] 서적 Rc — The Plan 9 Shell http://doc.cat-v.org[...]
[28] 웹사이트 Rio: Design of a Concurrent Window System http://doc.cat-v.org[...] 2013-03-08
[29] 문서 thread
[30] 웹사이트 What's new for WSL in Windows 10 version 1903? https://devblogs.mic[...] 2019-02-16
[31] 웹사이트 9atom http://www.9atom.org[...]
[32] 웹사이트 9atom https://quanstro.net[...] 2023-06-15
[33] 웹사이트 9atom https://archiveos.or[...] 2023-06-15
[34] 웹사이트 9FRONT.ORG THE PLAN FELL OFF http://9front.org/
[35] 웹사이트 9legacy http://www.9legacy.o[...]
[36] 웹사이트 Akaros http://akaros.org/
[37] 웹사이트 Harvey OS https://harvey-os.or[...]
[38] 웹사이트 JehanneOS https://gitea.it/Jeh[...] 2021-11-17
[39] 웹사이트 NIX http://lsub.org/ls/n[...] 2020-11-21
[40] 웹사이트 node9 https://github.com/j[...] 2022-01-14
[41] 웹사이트 Plan B https://lsub.org/pla[...] 2020-11-26
[42] 웹사이트 Download https://9p.io/wiki/p[...] 9p.io 2023-06-15
[43] 간행물 Plan B: Boxes for networked resources 2004-02
[44] 서적 Fourth Annual IEEE International Conference on Pervasive Computing and Communications (PERCOM'06) 2023-06-15
[45] 웹사이트 Plan9 Foundation https://plan9foundat[...] 2021-10-13
[46] 웹사이트 plan9checksums http://plan9.bell-la[...] Bell Labs 2019-07-25
[47] 웹사이트 Plan 9 License http://p9f.org/licen[...] 2021-06-14
[48] 웹사이트 Plan9License http://akaros.cs.ber[...] 2021-06-14
[49] 웹사이트 Lucent Public License Version 1.02 http://plan9.bell-la[...] 2021-06-14
[50] 웹사이트 Plan 9 Open Source License - Version 1.4 - 09/10/02 http://plan9.bell-la[...] 2021-06-14
[51] 웹사이트 Plan 9 Open Source License - Version 1.2 - 10/29/00 http://plan9.bell-la[...] 2021-06-14
[52] 웹사이트 Plan 9 Open Source License - Version 1.1 - 09/20/00 http://plan9.bell-la[...] 2021-06-14
[53] 웹사이트 Plan 9 Open Source License Agreement http://plan9.bell-la[...] 2021-06-14
[54] 문서 UNIX との違い http://plan9.aichi-u[...]
[55] 웹사이트 The Art of UNIX Programming http://www.faqs.org/[...] 2007-05-07
[56] 웹사이트 Preface to the Second (1995) Edition http://cm.bell-labs.[...] Lucent Technologies 2006-04-02
[57] 웹사이트 Plan 9 from Bell Labs http://cm.bell-labs.[...] Lucent Technologies 2006-04-27
[58] 웹사이트 Staying up to date http://cm.bell-labs.[...] Plan 9 community 2006-04-27
[59] 문서 Portals in 4.4BSD http://static.usenix[...]
[60] 웹사이트 UTF-8 History http://www.cl.cam.ac[...] 2006-04-27
[61] 문서 Plan9 BG Presentation http://go.cs.bell-la[...]
[62] 웹사이트 Plan 9: The Way the Future Was http://www.faqs.org/[...] 2006-03-28
[63] 웹사이트 9grid (Plan 9 wiki) http://cm.bell-labs.[...] 2006-03-28
[64] 웹사이트 "Press Release: Vita Nuova Supplies Inferno Grid to Evotec OAI http://www.vitanuova[...] Vita Nuova Holdings Limted 2006-03-28
[65] 웹사이트 "Press Release: Rutgers University Libraries Install Inferno Data Grid" http://www.vitanuova[...] Vita Nuova Holdings Limited 2006-03-28
[66] 웹사이트 "Press Release: The University of York Department of Biology install Vita Nuova's Inferno Data Grid" http://www.vitanuova[...] Vita Nuova Holdings Limited 2006-03-28
[67] 문서 Lucent Public License http://plan9.bell-la[...]
[68] 문서 Various Licenses and Comments about Them - GNU Project - Free Software Foundation (FSF) http://www.gnu.org/l[...]
[69] 웹인용 Announcement of the first release to general public http://9fans.net/arc[...] 9 fans 1995-07-16



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

문의하기 : help@durumis.com