2011-01-12 4 views
4

예를 들어 9P (a.k.a Styx)라는 Plan9의 파일 시스템 프로토콜을 선택하겠습니다. 는 위키 백과의 문서 상태로 :파일 시스템 프로토콜이란 무엇이며 어떻게 작동합니까?

9P가에서, 구성 요소 플랜의

내가 알고 싶은 9 시스템을 연결하는 수단으로 개발 한 네트워크 프로토콜 (...)입니다 프로그래밍 관점, 그러한 모듈 통신 시스템을 구축하는 데 사용해야하는 기술은 무엇입니까? 그리고이 프로토콜을 지원하기 위해 운영 체제 (유닉스 파생 상품 읽기)에 대한 요구 사항은 무엇입니까?

전체 네트워크의 각 구성 요소 (id est, 응용 프로그램, 모듈)에는 개인 컨트롤러가 있어야합니다 (또는이 컨트롤러를 시스템 전체에서 공유해야합니까?), 요청을 보내고 응답을 받으려면 개별 응용 프로그램의 내부 논리와 통신 프로토콜 자체 (XML과 같은 특정 언어 일 수도 있음), 데이터베이스 또는 정보의 일종의 파일 시스템 반영과 같은 번역 작업을 수행 할 수있는 능력. 이 (내) 관점에서 설명한 시스템은 클라이언트 - 서버 아키텍처의 변형으로 정의 될 수 있지만 로컬 또는 제한된 네트워크 범위로 예상되고 직접적인 데이터 액세스 및 효율성에 중점을두고 있습니다. 이것이 내가 파일 시스템 프로토콜의 설계를 보았던 방법입니다. ...

방금 ​​운영 체제의 프로세스/응용 프로그램 통신 기술에 대한 연구를 시작했으며,이 개념을 실행하기 위해 미니 파일 시스템 프로토콜을 개발하려고합니다. 이론적 인 기초가 누출되어 실제적이고 구체적인 작업 계획이 없으므로 설명, 문학 제안, 예제 및 의견 만 환영합니다!

답변

2

/sys/doc 섹션 (또는 온라인 html, ps, pdf)의 Plan9 네트워크에 관한 모든 내용을 읽을 수 있습니다.

이 작동하는 높은 수준의 방법은 이해와 비슷합니다, 시스템은 (물건 open, create, walkremove 등) 17 프로토콜 메시지가 있습니다. 서버에서 메시지를 보내고받는 것을 처리하는 RPC 메커니즘이 있습니다. 여기에 종이에서 인용입니다 :

커널 데이터 구조의 채널는, 파일 서버에 대한 핸들입니다. 채널에 대한 작업은 다음과 같은 9P 메시지를 생성합니다. sessionattach 메시지는 9P 외부의 방법으로 설정된 연결을 인증하고 해당 사용자의 유효성을 검사합니다. 결과는 서버의 루트를 참조하는 인증 된 채널입니다. clone 메시지는 dup 시스템 호출과 마찬가지로 새 채널을 기존 채널과 동일하게 만듭니다. walk 메시지를 사용하여 계층 구조의 각 레벨을 내림차순으로 서버의 파일로 채널을 이동할 수 있습니다. statwstat 메시지는 채널에서 참조하는 파일의 속성을 읽고 씁니다. open 메시지는 후속 readwrite 메시지가 파일 내용에 액세스 할 수 있도록 채널을 준비합니다. Createremove은 채널에서 참조하는 파일에서 해당 이름이 암시하는 작업을 수행합니다. clunk 메시지는 파일에 영향을주지 않고 채널을 삭제합니다.

Plan9의 장점은이 인터페이스가 운영체제에서 유비쿼터스라는 것입니다. 많은 것들이이 인터페이스 (파일 서버)를 제공합니다.

관련 문제