Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

9P (или протокол файловой системы Plan 9 или Styx ) - это сетевой протокол, разработанный для Plan 9 из распределенной операционной системы Bell Labs в качестве средства соединения компонентов системы Plan 9. Файлы являются ключевыми объектами Plan 9. Они представляют окна , сетевые соединения, процессы и почти все, что доступно в операционной системе.

9P был переработан для 4-го издания Plan 9 под названием 9P2000 , содержащего различные улучшения. Некоторые из внесенных улучшений: удаление определенных ограничений имени файла, добавление поля метаданных «последний модификатор» для каталогов и файлов аутентификации. [1] Последняя версия операционной системы Inferno также использует 9P2000. Файловый протокол Inferno изначально назывался Styx, но технически он всегда был вариантом 9P.

Серверная реализация 9P для Unix, называемая u9fs , [2] [3] , включена в дистрибутив Plan 9. Расширение клиентского ядра 9P OS X предоставляется Mac9P. [4] Клиентский драйвер ядра, реализующий 9p с некоторыми расширениями для Linux, является частью проекта v9fs . 9P и его производные также нашли применение во встроенных средах, таких как проект Styx on a Brick. [5]

Серверные приложения [ править ]

Многие приложения Plan 9 имеют форму файловых серверов 9P. Примеры включают:

  • acme : текстовый редактор / среда разработки
  • rio : оконная система Plan 9
  • сантехник : межпроцессное взаимодействие
  • ftpfs: FTP- клиент, который представляет файлы и каталоги на удаленном FTP-сервере в локальном пространстве имен.
  • wikifs: инструмент редактирования вики , который представляет удаленную вики как файлы в локальном пространстве имен
  • webfs: файловый сервер, который извлекает данные из URL-адресов и представляет содержимое и детали ответов в виде файлов в локальном пространстве имен.

Вне Plan 9 протокол 9P все еще используется, когда требуется облегченная удаленная файловая система:

  • NixOS : чисто функциональный и декларативный дистрибутив Linux может перестраиваться внутри виртуальной машины , где клиент использует 9P для монтирования каталога хранилища пакетов хоста.
  • Подсистема Windows для Linux : начиная с Windows 10 версии 1903, подсистема реализует 9P как сервер, а операционная система Windows хоста выступает в качестве клиента. [6]
  • Crostini : специальный сервер 9P используется для предоставления доступа к файлам вне виртуальной машины Linux [7]
  • QEMU : устройство VirtFS допускает совместное использование файловой системы через 9P, что ускоряется с помощью драйверов ядра и разделяемой памяти [8] [9]
  • DIOD : Distributed I / O Daemon - файловый сервер 9P

Реализация [ править ]

9P отправляет следующие сообщения между клиентами и серверами. [10] Эти сообщения соответствуют точкам входа на уровне vfs Plan 9, которые должен реализовать любой сервер 9P.

версия
Версия протокола согласования [11]
ошибка
Вернуть ошибку [12]
румянец
Отменить сообщение [13]
авторизация, прикрепить
Установите соединение [14]
ходить
Спуститься по иерархии каталогов [15]
создать, открыть
Подготовьте фид для ввода-вывода в существующем или новом файле [16]
читай пиши
Перенос данных из файла в файл [17]
глухой звук
Забудьте о скрипке [18]
удалять
Удалить файл с сервера [19]
stat, wstat
Запросить или изменить атрибуты файла [20]

См. Также [ править ]

  • IL (сетевой протокол) , транспортный протокол, разработанный для 9P в локальных сетях.
  • Распределенная файловая система

Ссылки [ править ]

  1. ^ «План 9 от Bell Labs - Обзор» . 9p.io .
  2. ^ "исследование: u9fs.tgz - tarbal исходного кода" . www.netlib.org .
  3. ^ «План 9 / sys / man / 4 / u9fs» . 9p.io .
  4. ^ Бенавенто (19 апреля 2019 г.). «9P для Mac» - через GitHub.
  5. ^ "Стикс-на-кирпиче" . Cat-V Док .
  6. ^ "Что нового для WSL в Windows 10 версии 1903?" . Инструменты командной строки Windows для разработчиков . 16 февраля 2019.
  7. ^ «Запуск пользовательских контейнеров в Chrome OS» . Документы Chromium OS . Проверено 28 марта 2019 .
  8. ^ Jujjuri, Venkateswararao; Ван Хенсберген, Эрик; Лигуори, Энтони; Пулаварты, Бадари (13–16 июля 2010 г.). «VirtFS - сквозная файловая система с поддержкой виртуализации» (PDF) . Симпозиум по Linux .
  9. ^ "Документация / 9psetup" . QEMU Docs . Проверено 28 марта 2019 .
  10. ^ «Раздел 5: протокол 9P» . Plan 9 manualg .
  11. ^ "страница версии из Раздела 5 руководства плана 9" . Plan 9 manualg .
  12. ^ "страница ошибки из Раздела 5 руководства по плану 9" . Plan 9 manualg .
  13. ^ "промыть страницу из раздела 5 руководства плана 9" . Plan 9 manualg .
  14. ^ "прикрепите страницу из Раздела 5 руководства плана 9" . Plan 9 manualg .
  15. ^ "пройти страницу из Раздела 5 руководства плана 9" . Plan 9 manualg .
  16. ^ "открыть страницу из Раздела 5 руководства плана 9" . Plan 9 manualg .
  17. ^ "прочтите страницу из Раздела 5 руководства плана 9" . Plan 9 manualg .
  18. ^ "щелкнуть страницу из Раздела 5 руководства плана 9" . Plan 9 manualg .
  19. ^ "удалить страницу из раздела 5 руководства плана 9" . Plan 9 manualg .
  20. ^ "страница статистики из Раздела 5 руководства плана 9" . Plan 9 manualg .

Внешние ссылки [ править ]

  • Страница ресурсов 9P на сайте cat-v.org
  • Руководство 9P
  • Styx Архитектура для распределенных систем по Роб Пайк и Деннис Ритчи
  • Организация сетей в Плане 9 Дэйв Пресотто и Фил Уинтерботтом
  • Безопасность в Плане 9