stringtranslate.com

Fontanero (programa)

El fontanero , en el Plan 9 de los sistemas operativos Bell Labs e Inferno , es un mecanismo para la comunicación confiable entre procesos uni o multicast de mensajes de texto formateados. Utiliza el protocolo de archivos de red Plan 9, 9P , en lugar de un mecanismo IPC de propósito especial.

Cualquier número de clientes puede escuchar mensajes en un puerto con nombre (un archivo). Los puertos y el enrutamiento de los puertos están definidos por reglas de plomería. Estas reglas son dinámicas. Cada programa de escucha recibe una copia de los mensajes coincidentes. Por ejemplo, si los datos /sys/lib/plumb/basic están conectados con las reglas estándar, se envían al puerto de edición . El puerto escribirá una copia del mensaje a cada oyente. En este caso, todos los editores en ejecución interpretarán este mensaje como un nombre de archivo y abrirán el archivo.

El fontanero es el servidor de archivos 9P que proporciona este servicio. Los clientes pueden usar libplumb para formatear mensajes. Como los mensajes son 9P, son transparentes para la red.

Ejemplo

El siguiente es un ejemplo de reglas de plomería:

# estos generalmente están ordenados del más específico al menos,# ya que la primera regla que dispara gana.dirección=':(#?[0−9]+)'protocolo='(https?|ftp|archivo|gopher|mailto|noticias|nntp|telnet|wais)'dominio='[a−zA−Z0−9_@]+([.:][a−zA−Z0−9_@]+)*/?[a−zA−Z0−9_?,%#~&/\ −]+'archivo='([:.][a−zA−Z0−9_?,%#~&/\−]+)*'# archivos de imagen ir a la páginael tipo es textolos datos coinciden con '[a-zA-Z0-9_\-./]+'los datos coinciden con '([a−zA−Z0−9_\−./]+).(jpe?g|gif|bit)'arg esarchivo $0plomada a la imagenpágina de inicio de plomada −w $archivo# URL van al navegador webel tipo es textolos datos coinciden con $protocolo://$dominio$archivoplomada a la webNavegador web de ventana de inicio vertical $0# archivos existentes, posiblemente etiquetados por número de línea, vaya a editar/samel tipo es textolos datos coinciden con '([.a−zA−Z0−9_/–]+[a−zA−Z0−9_/\−])('$addr')?'arg esarchivo $1conjunto de datos $ archivoatributo agregar dirección=$3plomada para editarventana de inicio de plomada sam $file# Los archivos .h se buscan en /sys/include y se pasan a edit/samel tipo es textolos datos coinciden con '([a−zA−Z0−9]+\.h)('$addr')?'arg isfile /sys/include/$1conjunto de datos $ archivoatributo agregar dirección=$3plomada para editarventana de inicio de plomada sam $file

Ver también

enlaces externos