맨위로가기

9P (프로토콜)

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

1. 개요

9P는 파일 시스템 인터페이스를 통해 다양한 기능을 제공하는 데 사용되는 프로토콜이다. 플랜 9 운영 체제에서 주요 응용 프로그램들은 9P 서버 형태로 구현되었으며, Acme, Rio, Plumber 등이 있다. 플랜 9 외부 환경에서도 가벼운 원격 파일 시스템이 필요할 때 사용되며, NixOS, GNU Guix, Windows Subsystem for Linux (WSL), Chrome OS의 Crostini, QEMU 등에서 활용된다. 9P는 클라이언트와 서버 간의 메시지 교환을 통해 작동하며, version, error, flush, auth, attach, walk, create, open, read, write, clunk, remove, stat, wstat 등의 메시지를 사용한다.

더 읽어볼만한 페이지

  • 네트워크 파일 시스템 - 클라우드 스토리지
    클라우드 스토리지는 가상화 기술을 기반으로 데이터를 분산 저장하여 관리하며, 웹 또는 앱을 통해 파일 작업이 가능하고 용량 확장이 유연하며, 객체, 파일, 블록 스토리지의 세 가지 유형으로 발전했다.
  • 네트워크 파일 시스템 - 아마존 S3
    아마존 S3는 AWS에서 제공하는 객체 스토리지 서비스로, 데이터 액세스 빈도 및 성능 요구 사항에 따라 다양한 스토리지 클래스를 제공하며 높은 확장성, 고가용성, 낮은 지연 시간, 높은 내구성을 제공한다.
  • 인터넷 프로토콜 기반 네트워크 소프트웨어 - 슈퍼 서버
    슈퍼 서버는 TCP 래퍼를 통해 접근 권한을 확인하고 필요에 따라 다른 서버 프로그램을 시작하여 메모리 사용량 감소 및 시스템 관리 효율성을 높이지만, 높은 연결 요청 빈도에서는 성능 저하를 유발할 수 있으며, inetd, launchd, systemd, ucspi-tcp, xinetd 등이 대표적인 구현체이다.
  • 인터넷 프로토콜 기반 네트워크 소프트웨어 - 시스코 IOS
    시스코 IOS는 시스코 시스템즈의 네트워크 장비 운영체제로, 라우터용으로 개발되어 다양한 하드웨어 기능과 네트워킹 프로토콜에 적응하며 CLI를 통해 네트워크 기능을 제어 및 관리할 수 있도록 설계되었고, IOS XR, IOS XE 등 후속 운영 체제가 등장했다.
  • 응용 계층 프로토콜 - 실시간 전송 프로토콜
    실시간 전송 프로토콜(RTP)은 스트리밍 미디어의 실시간 전송을 위해 설계된 프로토콜로, IP 네트워크에서 오디오/비디오 전송의 표준으로 사용되며, 멀티미디어 데이터 전송, 타임스탬프, 순서 제어, QoS 피드백 등을 제공한다.
  • 응용 계층 프로토콜 - D-Bus
    D-Bus는 2002년에 시작된 프로세스 간 통신 시스템으로, 시스템 버스와 세션 버스를 통해 정보 공유, 모듈성, 권한 격리를 제공하며, 일대일 요청-응답 및 발행/구독 통신 방식을 지원한다.
9P (프로토콜)
9P 프로토콜 정보
목적구성 요소 연결
개발자벨 연구소
발표일1992년
기반9P2000
영향9P2000

2. 서버 응용 프로그램

9P 프로토콜을 사용하는 서버 응용 프로그램들은 파일 시스템 인터페이스를 통해 다양한 기능을 제공한다.

Plan 9의 많은 응용 프로그램은 9P 파일 서버 형태로 제공된다. 예를 들어 acme, rio, plumber, wikifs, ftpfs, webfs 등이 있다. Plan 9 외에도 NixOS, WSL, Crostini, QEMU 등 가벼운 원격 파일 시스템이 필요할 때 9P 프로토콜이 사용되며, [https://github.com/chaos/diod DIOD]와 같은 분산 I/O 데몬에서도 9P 파일 서버를 지원한다.[6]

2. 1. Plan 9 환경

Plan 9에서는 많은 핵심 응용 프로그램들이 9P 서버 형태로 구현되어 있다. 이러한 설계는 시스템의 유연성과 확장성을 높이는 데 기여한다.[6]

2. 1. 1. 주요 응용 프로그램


  • acme: 프로그래머를 위한 텍스트 편집기 및 개발 환경이다.[6]
  • rio: Plan 9의 윈도우 시스템이다.[6]
  • plumber: 프로세스 간 통신(IPC)을 지원한다.[6]
  • wikifs: 위키 편집 도구이다.[6]
  • ftpfs: FTP 클라이언트이다.[6]
  • webfs: 웹 데이터 접근을 위한 파일 서버이다.[6]

2. 2. 기타 환경

9P 프로토콜은 Plan 9 외에도 NixOS, WSL, Crostini, QEMU 등 가벼운 원격 파일 시스템이 필요한 다양한 환경에서 사용되며, [https://github.com/chaos/diod DIOD]와 같은 분산 I/O 데몬에서도 9P 파일 서버를 지원한다.

2. 2. 1. 활용 사례


  • NixOS: Nix 패키지 관리자를 사용하는 리눅스 배포판이다. NixOS는 가상 머신 내부에서 자체적으로 재구축될 수 있으며, 여기서 클라이언트는 9P를 사용하여 호스트의 패키지 저장소 디렉토리를 마운트한다.[6]
  • GNU Guix: Unix 계열 운영 체제를 인스턴스화하고 관리할 수 있는 패키지 관리자이다. NixOS와 동일한 방식으로 가상 머신 내에서 시스템을 인스턴스화할 수 있다.
  • Windows Subsystem for Linux (WSL): Windows 10 버전 1903부터 이 서브 시스템은 서버로 9P를 구현하고 호스트 Windows 운영 체제는 클라이언트 역할을 한다.[6]
  • Crostini: 사용자 지정 9P 서버는 Linux VM 외부의 파일에 대한 액세스를 제공하는 데 사용된다.[7]
  • QEMU: VirtFS 장치는 9P를 통한 파일 시스템 공유를 허용하며, 이는 커널 드라이버와 공유 메모리로 가속화된다.[8][9]
  • [https://github.com/chaos/diod DIOD]: 분산 I/O 데몬9P 파일 서버

3. 프로토콜 메시지

9P는 클라이언트와 서버 간의 통신을 위해 다양한 메시지를 사용하며[30], 이 메시지들은 Plan 9 vfs 계층의 엔트리 포인트에 해당한다. 각 메시지에 대한 자세한 내용은 하위 섹션을 참고하면 된다.

3. 1. 주요 메시지

9P는 클라이언트와 서버 간에 다음과 같은 메시지를 주고받는다.[30] 이 메시지들은 9P 서버에 포함되어야 하는 플랜 9 vfs 계층의 시작점(엔트리 포인트)과 일치한다.

  • version: 프로토콜 버전을 협상한다.[19][20]
  • error: 오류를 반환한다.[19][21]
  • flush: 메시지를 중단한다.[19][22]
  • auth, attach: 연결을 수행한다.[19][23]
  • walk: 디렉터리 계층을 탐색한다.[19][24]
  • create, open: 파일 입출력을 위한 fid를 준비한다.[19][25]
  • read, write: 파일 데이터를 송수신한다.[19][26]
  • clunk: fid를 해제한다.[19][27]
  • remove: 서버에서 파일을 제거한다.[19][28]
  • stat, wstat: 파일 속성을 확인 및 변경한다.[19][29]

참조

[1] 웹사이트 Plan 9 from Bell Labs — Overview https://9p.io/plan9/[...]
[2] 웹사이트 research: u9fs.tgz is the source code tarbal https://www.netlib.o[...]
[3] 웹사이트 Plan 9 /sys/man/4/u9fs http://9p.io/magic/m[...]
[4] 웹사이트 9P for Mac https://github.com/b[...] 2019-04-19
[5] 웹사이트 Styx-on-a-Brick http://doc.cat-v.org[...]
[6] 웹사이트 What's new for WSL in Windows 10 version 1903? https://devblogs.mic[...] 2019-02-16
[7] 웹사이트 Running Custom Containers Under Chrome OS https://chromium.goo[...] 2019-03-28
[8] 간행물 VirtFS—A virtualization aware File System pass-through https://www.kernel.o[...] 2010-07-13
[9] 웹사이트 Documentation/9psetup https://wiki.qemu.or[...] 2019-03-28
[10] 웹사이트 Plan 9 from Bell Labs — Overview https://9p.io/plan9/[...] 2020-06-03
[11] 웹사이트 research: u9fs.tgz is the source code tarbal https://www.netlib.o[...] 2020-06-03
[12] 웹사이트 Plan 9 /sys/man/4/u9fs http://9p.io/magic/m[...] 2020-06-03
[13] 웹사이트 9P for Mac https://github.com/b[...] 2020-06-03
[14] 웹사이트 Styx-on-a-Brick http://doc.cat-v.org[...] 2020-06-03
[15] 웹사이트 What’s new for WSL in Windows 10 version 1903? https://devblogs.mic[...] 2020-06-03
[16] 웹사이트 Running Custom Containers Under Chrome OS https://chromium.goo[...] 2019-03-28
[17] 간행물 VirtFS—A virtualization aware File System pass-through https://www.kernel.o[...] 2010-07-13
[18] 웹사이트 Documentation/9psetup https://wiki.qemu.or[...] 2019-03-28
[19] 웹사이트 Section 5: 9P protocol http://man.cat-v.org[...] 2020-06-03
[20] 웹사이트 version page from Section 5 of the plan 9 manual http://man.cat-v.org[...] 2020-06-03
[21] 웹사이트 error page from Section 5 of the plan 9 manual http://man.cat-v.org[...] 2020-06-03
[22] 웹사이트 flush page from Section 5 of the plan 9 manual http://man.cat-v.org[...] 2020-06-03
[23] 웹사이트 attach page from Section 5 of the plan 9 manual http://man.cat-v.org[...] 2020-06-03
[24] 웹사이트 walk page from Section 5 of the plan 9 manual http://man.cat-v.org[...] 2020-06-03
[25] 웹사이트 open page from Section 5 of the plan 9 manual http://man.cat-v.org[...] 2020-06-03
[26] 웹사이트 read page from Section 5 of the plan 9 manual http://man.cat-v.org[...] 2020-06-03
[27] 웹사이트 clunk page from Section 5 of the plan 9 manual http://man.cat-v.org[...] 2020-06-03
[28] 웹사이트 remove page from Section 5 of the plan 9 manual http://man.cat-v.org[...] 2020-06-03
[29] 웹사이트 stat page from Section 5 of the plan 9 manual http://man.cat-v.org[...] 2020-06-03
[30] 웹인용 9p protocol https://web.archive.[...] 2010-08-22



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

문의하기 : help@durumis.com