X Font Server

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 17:17, 12 января 2019.
X Font Server
Разработчики:
  • Дейв Лемке, Network Computing Devices, Inc
  • Кит Паккард, Массачусетский технологический институт
Постоянный выпуск: Version 11, Release 7.5 / октябрь 2009
Операционная система: X Window System
Тип ПО: Сервер шрифтов
Веб-сайт x.org/archive

X Font Server - это сервер шрифтов X Window System. Он предоставляет шрифты для серверов отображения X Window System через стандартный механизм взаимодействия X-сервера с средством визуализации шрифтов , часто работающим на удаленном компьютере. Обычно он работает на TCP-порту 7100.

Рисунок 1 - Архитектура функционирования X Font Server

Описание

X Font Server - это служба на основе TCP/IP, которая предоставляет файлы шрифтов своим клиентам. Клиенты подключаются к серверу, чтобы запросить набор шрифтов, а сервер считывает файлы шрифтов с диска и передает их клиентам. Демон X Font Server (далее - xfs) состоит из двоичного файла сервера / usr / openwin / bin / xfs. Демон обычно запускается из inetd . Однако для текущего примера предположим, что правильная запись в файле /etc/inetd.conf была отключена (например, с помощью команды fsadmin -d ), так что демон находится под исключительным контролем программного обеспечения Solaris Cluster.

Запуск сервера

Сервер обычно запускается системным администратором и запускается через загрузочные файлы, такие как /etc/rc.local. Пользователи могут также захотеть запустить частные серверы шрифтов для определенных наборов шрифтов.

Файл конфигурации X Font Server

По умолчанию X Font Server считывает информацию о своей конфигурации из файла /usr/openwin/lib/X11/fontserver.cfg. Запись каталога в этом файле содержит список каталогов шрифтов, доступных демону для обслуживания. Администратор кластера может найти каталоги шрифтов в файловой системе кластера. Это расположение оптимизирует использование X Font Server в Solaris Cluster, поддерживая единственную копию базы данных шрифтов в системе. Если администратор кластера хочет изменить местоположение, администратор кластера должен отредактировать файл fontserver.cfg, чтобы отразить новые пути для каталогов шрифтов.

Для удобства настройки администратор кластера также может поместить сам файл конфигурации в файловую систему кластера. XFS демон предоставляет аргументы командной строки , которые замещают по умолчанию, встроенный в расположение этого файла на SUNW.xfnts типа ресурса использует следующую команду для запуска демона под управлением программного обеспечения кластера Solaris:

/ USR / openwin / bin / XFS -Config местоположение из конфигурации файла /fontserver.cfg \ -port номер-порта</code>

В реализации типа ресурса SUNW.xfnts можно использовать свойство Confdir_list для управления расположением файла конфигурации fontserver.cfg.

/etc/rc.d/init.d/xfs Скрипт запускает xfs сервер. В его конфигурационном файле можно настроить несколько параметров /etc/X11/fs/config.

Ниже перечислены общие параметры:

  • alternate-servers - Определяет список альтернативных серверов шрифтов, которые будут использоваться, если этот сервер шрифтов недоступен. Запятая должна отделять каждый сервер шрифтов в списке.
  • catalogue - Определяет упорядоченный список путей шрифтов для использования. Запятая должна отделять каждый путь шрифта в списке.

При использовании строки :unscaled сразу после пути шрифта, происходит необходимая загрузка немасштабированных шрифтов в этом пути. Затем при указании всего пути происходит загрузка и других масштабированных шрифтов.

  • client-limit - Указывает максимальное количество клиентов службы сервера шрифтов. По умолчанию это 10.
  • clone-self - Позволяет серверу шрифтов клонировать новую версию себя при client-limit ударе. По умолчанию эта опция включена.
  • default-point-size - Определяет размер точки по умолчанию для любого шрифта, который не указывает это значение. Значение для этой опции задается в деципоинтах. Значение по умолчанию 120 соответствует 12-точечному шрифту.
  • default-resolutions - Определяет список разрешений, поддерживаемых X-сервером. Каждое разрешение в списке должно быть разделено запятой.
  • deferglyphs - Указывает, следует ли отложить загрузку глифов (графика, используемая для визуального представления шрифта). Чтобы отключить эту функцию, необходимо использвать none, чтобы включить эту функцию для всех шрифтов или включить эту функцию только для 16-битных шрифтов 16.
  • error-file - Определяет путь и имя файла местоположения, где xfs регистрируются ошибки.
  • no-listen - Предотвращает xfs прослушивание определенных протоколов. По умолчанию этот параметр отключен tcp для xfs прослушивания портов TCP по соображениям безопасности.

Рисунок 2 - Взаимодействие XFS с X-сервером и X-клиентами

Опции

  • config configuration_file - указывает файл конфигурации, который будет использовать сервер шрифтов. Если этот параметр не указан, будет использоваться файл по умолчанию / usr / X11R6 / lib / X11 / fs / config.
  • ls listen_socket - определяет дескриптор файла, который уже настроен для использования в качестве прослушивающего сокета. Этот параметр предназначен только для использования самим сервером шрифтов, когда он автоматически создает другую копию для обработки дополнительных подключений.
  • port tcp_port - задает номер порта TCP, на котором сервер будет прослушивать соединения. Номер порта по умолчанию - 7100.
  • daemon - дает команду xfs на автоматическое развертывание и переход в фоновый режим при запуске. Если этот параметр не указан, xfs будет запускаться как обычный процесс (если xfs не был создан для демонизации по умолчанию).
  • droppriv - если указано, xfs будет пытаться запускаться как пользователь и группа xfs (если не используется опция -user ). Это было реализовано по соображениям безопасности, поскольку xfs может иметь необнаруженные переполнения буфера или другие пути для возможного использования, как локального, так и удаленного. С помощью этой опции вы также можете указать «no-listen = tcp» в файле конфигурации, что гарантирует, что xfs вообще не будет использовать порт TCP.
  • nodaemon - когда xfs по умолчанию создан для демонизации (запускается в фоновом режиме), то эта опция предотвращает данный процесс и запускает xfs как обычный процесс.
  • user username - указывает, что xfs запускается от имени пользователяОн эквивалентен -droppriv за исключением того, что xfs будет работать как имя пользователя. [Источник 1]

Номер порта TCP

Номер порта TCP, который использует демон сервера xfs , обычно является портом «fs», обычно определяемым как 7100 в файле /etc/services. Однако опция -port, которую администратор кластера включает в команду xfs, позволяет администратору кластера переопределить настройку по умолчанию.

Также можно использовать свойство Port_list в типе ресурса SUNW.xfnts, чтобы установить значение по умолчанию и разрешить администратору кластера использовать параметр -port с командой xfs . Значение этого свойства по умолчанию определяется как 7100 / tcp в файле RTR. Метод SUNW.xfnts Start позволяет передать Port_list к -port опции на XFS командной строке. Следовательно, пользователю этого типа ресурса не требуется указывать номер порта (по умолчанию порт равен 7100 / tcp ). Администратор кластера может указать другое значение для Port_list свойства, когда администратор кластера настраивает тип ресурса. [Источник 2]

Элементы шрифта

В центре общих методов доступа к шрифтам, используемых X и xfs, находится структура данных Font Path Element. Как и большинство структур на X-сервере, он содержит коллекцию данных и несколько указателей на функции для манипулирования этими данными:

 1  /* Внешний вид путей шрифта */
 2  typedef struct _FontPathElement {
 3     int         name_length;
 4     char       *name;
 5     int         type;
 6     int         refcount;
 7     pointer     private;
 8  } FontPathElementRec, *FontPathElementPtr;
 9 
10  typedef struct _FPEFunctions {
11     int         (*name_check) ( /* name */ );
12     int         (*init_fpe) ( /* fpe */ );
13     int         (*reset_fpe) ( /* fpe */ );
14     int         (*free_fpe) ( /* fpe */ );
15     int         (*open_font) (  /* client, fpe, flags,
16                         name, namelen, format,
17                         fid,  ppfont, alias */ );
18     int         (*close_font) ( /* pfont */ );
19     int         (*list_fonts) ( /* client, fpe, pattern,
20                         patlen, maxnames, paths */ );
21     int         (*start_list_fonts_with_info) (
22                         /* client, fpe, name, namelen,
23                            maxnames, data */ );
24     int         (*list_next_font_with_info) (
25                         /* client, fpe, name, namelen,
26                            info, num, data */ );
27     int         (*wakeup_fpe) ( /* fpe, mask */ );
28     int         (*client_died) ( /* client, fpe */ );
29  } FPEFunctionsRec, FPEFunctions;

Указатели на функции выделяются из структуры данных для экономии памяти; Кроме того, это позволяет избежать каких-либо сложностей при инициализации структуры данных, так как не было бы никакого способа найти подходящую функцию для вызова (проблема курицы и яйца). Когда тип пути шрифта инициализируется, он передает указатели функций на сервер, которые затем сохраняются в FPEFunctionsRec.[Источник 3]

Источники

  1. XFS справочная страница [2018—2018]. Дата обновления: 30.11.2018. URL: https://linux.die.net/man/1/xfs (дата обращения: 30.11.2018)
  2. X Font Server // Sun Cluster Data Services Developer's Guide for Solaris OS. [2018—2018]. Дата обновления: 30.11.2018. URL: https://docs.oracle.com/cd/E18728_01/html/821-2848/dsdl_sample-2.html (дата обращения: 30.11.2018)
  3. X Font Server // The X Font Library. [2018—2018]. Дата обновления: 30.11.2018. URL: https://www.x.org/releases/X11R7.5/doc/libXfont/fontlib.html (дата обращения: 30.11.2018)