ФЭНДОМ


Плюмбинг — механизм динамического связывания одновременно выполняющихся интерактивных программ, позволяющий управлять обменом сообщениями между ними. Для него написан набор инструкций (см. plumb(6)) для обработки поступающих сообщений и их отправки приложениям.

plumber(4) является файловым сервером, который выполняет обработку и отправку сообщений. Он работает с любым приложением, использующим этот механизм, но только в области пользователь-интерфейс, механизм позволяет пользователю указывать имя файла или URL и обрабатывает связанный ресурс с подходящим приложением.

ПримерыПравить

В командной оболочке rc вы можете выбрать фрагмент текста, нажать кнопку 2 мыши и выбрать из меню пункт «plumb». В зависимости от того, какой текст,plumber может выполнять различные действия. К примеру,

  • файлы .ps, .pdf, или .dvi запускают программу просмотра page(1);
  • файлы .gif, .jpg, .png, .ppm также запускают программу просмотра page(1);
  • сообщение ошибки компилятора с указанием файла и номера строки запускает текстовый редактор по умолчанию, чтобы открыть этот файл с данным номером строки;
  • .h выполняет поиск в каталоге /sys/include для данного заголовка и открывает его в текстовом редакторе по умолчанию;
  • при выводе man-страницы запускается программа man(1);
  • URL запускает броузер по умолчанию для данной страницы.

Хорошая хитростьПравить

Пространство имен в Plan 9 — локальное. Т. е., если вы работаете с приложением, то пространство имен раздваивается, вы не можете работать с этим пространством имен в других приложениях. Конкретный пример, вы не можете подмонтировать удаленный файловый сервер а затем сплюмбинговать его в другое запущенное приложение. Вот неплохая хитрость, которая позволяет обходить это ограничение:

srvfs plumbspace /n
plumber
rfork n
mount -b /srv/plumbspace /n

Добавьте эти строки в файл /lib/profile (перед запуском rio) и каталог /n — теперь косвенная часть пространства имен, которая может использоваться во всех приложениях плюмбером. Все, что нужно использовать в нем:

type is text
data matches 'Local (.*)'
plumb to none
plumb start rc -c $1

К примеру, вам нужно подмонтировать локальный диск kfs и отредактировать в нем файл. Откройте новое окно оболочки и выполните:

disk/kfs
plumb 'Local mount /srv/kfs /n/kfs'

и файлы нового диска будут просматриваться во всех приложениях системы.

Дополнительные ссылкиПравить

Plumbing and Other Utilities — документ о создании и реализации системы плюмбинга.

Copyright © 2003 Перевод Андрей С. Кухар. Последняя модификация 22.08.2003