Эта статья поднимает множество проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалить эти сообщения-шаблоны ) ( Узнайте, как и когда удалить этот шаблон сообщения )
|
Набор интернет-протоколов |
---|
Уровень приложения |
Транспортный уровень |
Интернет-уровень |
|
Связующий слой |
|
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 в локальных сетях.
- Распределенная файловая система
Ссылки [ править ]
- ^ «План 9 от Bell Labs - Обзор» . 9p.io .
- ^ "исследование: u9fs.tgz - tarbal исходного кода" . www.netlib.org .
- ^ «План 9 / sys / man / 4 / u9fs» . 9p.io .
- ^ Бенавенто (19 апреля 2019 г.). «9P для Mac» - через GitHub.
- ^ "Стикс-на-кирпиче" . Cat-V Док .
- ^ "Что нового для WSL в Windows 10 версии 1903?" . Инструменты командной строки Windows для разработчиков . 16 февраля 2019.
- ^ «Запуск пользовательских контейнеров в Chrome OS» . Документы Chromium OS . Проверено 28 марта 2019 .
- ^ Jujjuri, Venkateswararao; Ван Хенсберген, Эрик; Лигуори, Энтони; Пулаварты, Бадари (13–16 июля 2010 г.). «VirtFS - сквозная файловая система с поддержкой виртуализации» (PDF) . Симпозиум по Linux .
- ^ "Документация / 9psetup" . QEMU Docs . Проверено 28 марта 2019 .
- ^ «Раздел 5: протокол 9P» . Plan 9 manualg .
- ^ "страница версии из Раздела 5 руководства плана 9" . Plan 9 manualg .
- ^ "страница ошибки из Раздела 5 руководства по плану 9" . Plan 9 manualg .
- ^ "промыть страницу из раздела 5 руководства плана 9" . Plan 9 manualg .
- ^ "прикрепите страницу из Раздела 5 руководства плана 9" . Plan 9 manualg .
- ^ "пройти страницу из Раздела 5 руководства плана 9" . Plan 9 manualg .
- ^ "открыть страницу из Раздела 5 руководства плана 9" . Plan 9 manualg .
- ^ "прочтите страницу из Раздела 5 руководства плана 9" . Plan 9 manualg .
- ^ "щелкнуть страницу из Раздела 5 руководства плана 9" . Plan 9 manualg .
- ^ "удалить страницу из раздела 5 руководства плана 9" . Plan 9 manualg .
- ^ "страница статистики из Раздела 5 руководства плана 9" . Plan 9 manualg .
Внешние ссылки [ править ]
- Страница ресурсов 9P на сайте cat-v.org
- Руководство 9P
- Styx Архитектура для распределенных систем по Роб Пайк и Деннис Ритчи
- Организация сетей в Плане 9 Дэйв Пресотто и Фил Уинтерботтом
- Безопасность в Плане 9