{{위키데이터 속성 추적}}
{{IP스택}}
'''9P'''(플랜 9 파일 시스템 프로토콜 또는 Styx)는 [[플랜 9 (운영 체제)|플랜 9]] [[운영 체제]]용으로 개발된 [[통신 프로토콜|네트워크 프로토콜]]로, 플랜 9 시스템의 구성 요소들을 연결해 준다. 파일들은 플랜 9의 중요한 객체들이다. 이들은 [[창 (컴퓨팅)|창]], [[컴퓨터 네트워크|네트워크]] 연결, [[프로세스]] 등 운영 체제에서 이용할 수 있는 모든 것을 표현한다. [[네트워크 파일 시스템|NFS]]과는 달리 9P는 [[캐시|캐시 처리]]를 강화하고 [[합성 파일 시스템|합성 파일]]도 제공한다. (이를테면 프로세스를 표현하는 [[procfs|/proc]])

9P는 플랜 9의 4번째 판을 위해 '''9P2000'''라는 이름으로 개정되었으며 다양하고도 중요한 개선 사항이 포함되었다. [[인페르노 (운영 체제)|인페르노 운영 체제]]의 최신 버전도 9P2000을 이용한다. 인페르노 파일 프로토콜은 원래 Styx로 불렸으나 기술적으로 늘 9P의 변종으로 취급되어왔다.

다른 변종인 '''9p2000.u'''는 [[유닉스]] 환경을 더 잘 지원하는 개정판이며 자세한 사항을 보려면 [http://v9fs.sourceforge.net/rfc/9p2000.u.html v9fs 9p2000.u]를 참고하라. 유닉스용 9P의 서버 기능은 [[u9fs]]라고 부르며 플랜 9 배포판에 포함되어 있다. [[리눅스]]용 커널 클라이언트 드라이버는 [[v9fs]] 프로젝트의 일부이다. 9P와 파생판들은 [https://web.archive.org/web/20091124094119/http://www.vitanuova.com/inferno/rcx_paper.html Styx on a Brick project]와 같은 임베디드 환경에 응용하여 쓰이는 것을 볼 수 있다.

== 서버 응용 프로그램 ==
수많은 플랜 9 응용 프로그램들은 9P 서버의 형태를 지닌다. 눈에 띄는 예는 다음과 같다:
* [[acme]]: 프로그래머들을 위한 사용자 인터페이스
* [[리오 (운영 체제)|리오]](rio): 플랜 9 운영 체제
* [[플럼버 (플랜 9)|플럼버]](plumber): 프로세스 간 통신
* [[wikifs]]: [[위키]]

== 추가된 기능 ==
9p는 다음의 메시지를 클라이언트와 서버 사이에서 내보낸다.<ref>{{웹 인용 |url=http://plan9.bell-labs.com/magic/man2html/5/0intro |제목=9p protocol |확인날짜=2010-08-22 |archive-date=2015-02-05 |archive-url=https://web.archive.org/web/20150205034655/http://plan9.bell-labs.com/magic/man2html/5/0intro |url-status=dead }}</ref> 이 메시지들은 9p 서버에 포함되어야 하는 플랜 9 [[가상 파일 시스템|vfs]] 계층의 시작점(엔트리 포인트)과 일치한다.

; version: [http://plan9.bell-labs.com/magic/man2html/5/version 프로토콜 버전 탐색] {{웨이백|url=http://plan9.bell-labs.com/magic/man2html/5/version |date=20150205034716 }}
; error: [http://plan9.bell-labs.com/magic/man2html/5/error 오류 반환] {{웨이백|url=http://plan9.bell-labs.com/magic/man2html/5/error |date=20150205034657 }}
; flush : [http://plan9.bell-labs.com/magic/man2html/5/flush 메시지 중단] {{웨이백|url=http://plan9.bell-labs.com/magic/man2html/5/flush |date=20150205034658 }}
; auth, attach : [http://plan9.bell-labs.com/magic/man2html/5/attach 연결 수행 메시지 표시] {{웨이백|url=http://plan9.bell-labs.com/magic/man2html/5/attach |date=20150205032902 }}
; walk : [http://plan9.bell-labs.com/magic/man2html/5/walk 디렉터리 계급 내려가기] {{웨이백|url=http://plan9.bell-labs.com/magic/man2html/5/walk |date=20150205034717 }}
; create, open : [http://plan9.bell-labs.com/magic/man2html/5/open 기존의 파일이나 새로운 파일에 대한 입출력을 위한 피드(fid) 준비] {{웨이백|url=http://plan9.bell-labs.com/magic/man2html/5/open |date=20150205034700 }}
; read, write : [http://plan9.bell-labs.com/magic/man2html/5/read 데이터를 파일로, 또는 파일을 데이터로 송신] {{웨이백|url=http://plan9.bell-labs.com/magic/man2html/5/read |date=20150205034701 }}
; clunk : [http://plan9.bell-labs.com/magic/man2html/5/clunk 피드(fid)를 잊음] {{웨이백|url=http://plan9.bell-labs.com/magic/man2html/5/clunk |date=20150205034656 }}
; remove: [http://plan9.bell-labs.com/magic/man2html/5/remove 서버로부터 파일 제거] {{웨이백|url=http://plan9.bell-labs.com/magic/man2html/5/remove |date=20150205034702 }}
; stat, wstat : [http://plan9.bell-labs.com/magic/man2html/5/stat 파일 특성 확인 및 변경] {{웨이백|url=http://plan9.bell-labs.com/magic/man2html/5/stat |date=20150205032914 }}

== 같이 보기 ==
* [[v9fs]] - [[u9fs]]: [[유닉스 계열]] 운영 체제용 9P 추가 기능
* [[IL (통신 프로토콜)|IL 프로토콜]] - 랜(LAN) 환경에서 9P용으로 개발된 전송 프로토콜.
* [[분산 파일 시스템]]

== 각주 ==
<references />

== 외부 링크 ==
* [http://9p.cat-v.org/ 9P 리소스] cat-v.org의 페이지
* [https://web.archive.org/web/20160204042705/http://www.cs.bell-labs.com/magic/man2html/5/0intro 9P 설명서]
* [http://doc.cat-v.org/inferno/4th_edition/styx 배포판 운영 체제를 위한 Styx 구조] - [[롭 파이크]]와 [[데니스 리치]] 씀.
* [http://doc.cat-v.org/plan_9/4th_edition/papers/net/ The Organization of Networks in Plan 9] - [[데이브 프레소토]]와 [[필 윈도보텀]] 씀.

[[분류:응용 계층 프로토콜]]
[[분류:네트워크 파일 시스템]]
[[분류:인터넷 프로토콜 기반 네트워크 소프트웨어]]