/ / Що таке протокол файлової системи та як він працює? - файлові системи, термінологія, протоколи

Що таке протокол файлової системи і як він працює? - файлові системи, термінологія, протоколи

Як приклад я підберу протокол файлової системи Plan9, який називається 9P (a.k.a Styx). Як зазначено у статті у Вікіпедії:

9P - мережевий протокол, розроблений (...) як засіб підключення компонентів системи План 9

Я хочу знати, з точки зору програмування,які технології, які слід використовувати для побудови такої модульної системи зв'язку. А які вимоги до операційної системи (читайте похідні Unix) для підтримки цього протоколу.

Наскільки я розумію, кожен компонент (id est, додаток, модуль) всієї мережі повиннімати приватний контролер (чи повинен цей контролер ділитися в системі?), щоб надсилати запити та отримувати відповіді, з можливістю виконувати завдання перекладу між внутрішньою логікою окремої програми та самим протоколом зв'язку (може бути конкретним такої мови, як XML ?, база даних, або навіть якесь відображення інформації файлової системи?). З цієї (моєї) точки зору описана система може бути визначена як варіант архітектури клієнт-сервер, але проектується в локальну або обмежену область мережі та з акцентом на прямий доступ до даних та ефективність. Ось як я бачу дизайн протокол файлової системи...

Я щойно ініціював вивчення операційних систем "прийоми комунікації процесу / додатків і хотіли б розробити протокол міні-файлової системи, щоб побачити ці поняття в дії. У мене немає реального і конкретного робочого плану через протікання теоретичних основ, тому будь-які пояснення, пропозиції з літератури, приклади та лише коментарі будуть вітатися!

Відповіді:

2 для відповіді № 1

Ви можете прочитати все про мережу Plan9 в /sys/doc розділ (або онлайн html, пс, pdf)

Спосіб, який працює на високому рівні, схожий на ваше розуміння, система має 17 протокольних повідомлень (подібні речі open, create, walk і remove). Є RPC механізм, який піклується про надсилання та отримання повідомлень з сервера. Ось цитата з статті:

Структура даних ядра, канал, є ручкою для файлового сервера. Операції на каналі генерують такі повідомлення 9P. The session і attach повідомлення автентифікують з'єднання, встановлене зовнішніми засобами 9P, і перевіряють його користувача. Результатом є автентифікований канал, що посилається на корінь сервера. The clone повідомлення робить новий канал ідентичним існуючому каналу, подібно до dup системний виклик. Канал може бути переміщений у файл на сервері за допомогою walk повідомлення про спуск кожного рівня в ієрархії. The stat і wstat повідомлення читають і записують атрибути файлу, на який посилається канал. The open повідомлення готує канал для подальшого read і write повідомлення для доступу до вмісту файлу. Create і remove виконувати дії, що мають на увазі їх імена, на файл, на який посилається канал. The clunk повідомлення відкидає канал, не впливаючи на файл.

Що стосується плану 9, це те, що цей інтерфейс є всюдисущим в операційній системі. Дуже багато речей представляє цей інтерфейс (файловий сервер).