diff --git a/ru_RU.KOI8-R/books/handbook/users/chapter.sgml b/ru_RU.KOI8-R/books/handbook/users/chapter.sgml
index b48e2923f3..bd3e97008b 100644
--- a/ru_RU.KOI8-R/books/handbook/users/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/users/chapter.sgml
@@ -1,1068 +1,1080 @@
NeilBlakey-MilnerПредоставил ДенисПеплинПеревод на русский язык: Пользователи и основы управления учетными записямиКраткий обзорFreeBSD позволяет одновременную работу множества пользователей
на одном компьютере. Разумеется, только один пользователь может сидеть
за клавиатурой и перед экраном в один момент времени
Конечно, пока не используется множество терминалов, но мы
оставим эту тему для ., но любое количество пользователей может выполнять работу
через сеть. Для использования системы у каждого пользователя должна
быть учетная запись.После прочтения этой главы вы будете знать:Различия между разнообразными учетными записями в системе
FreeBSD.Как добавлять учетные записи пользователей.Как удалять учетные записи пользователей.Как изменять данные учетных записей пользователей, такие
как полное имя пользователя, или предпочитаемую оболочку.Как устанавливать ограничения на использование ресурсов,
например на использование памяти и времени CPU для учетных записей
или групп учетных записей.Как использовать группы для упрощения управлением учетными
записями.Перед прочтением этой главы вам потребуется:Понимание основ &unix; и FreeBSD ().ВведениеВесь доступ к системе осуществляется через учетные записи,
и все процессы запускаются пользователями, так что управление
пользователями и учетными записями в системах FreeBSD имеет
всеобъемлющее значение.С каждой учетной записью в системе FreeBSD связана определенная
идентификационная информация.Имя пользователяИмя пользователя в том виде, в каком оно вводится в
приглашение login:. Имена пользователей
должны быть уникальны в пределах одного компьютера; не может
быть двух пользователей с одинаковым именем пользователя.
Существует множество правил для создания правильных имен
пользователей, документированных в &man.passwd.5;; вы как
правило будете использовать имена пользователей, состоящие
из восьми или меньшего количества символов, все символы в
нижнем регистре.ПарольС каждой учетной записью связан пароль. Пароль может быть
пустым, в этом случае для доступа к системе не нужен пароль.
Обычно это очень плохая идея; у каждой учетной записи должен быть
пароль.ID пользователя (User ID, UID)The UID это номер, традиционно от 0 до
65535Возможно использование UID/GID вплоть до
4294967295, но эти ID могут вызвать серьезные проблемы с
программами, делающими предположения о значениях
ID., используемый для однозначной идентификации
пользователя в системе. Сама система FreeBSD для идентификации
пользователей использует UID — любая команда FreeBSD,
позволяющая вам указывать имя пользователя, первым делом
преобразует его к UID. Это означает, что вы можете создать
несколько учетных записей с различными именами пользователей,
но с одним UID. FreeBSD будет воспринимать эти учетные записи как
одного пользователя. Маловероятно, что вам когда-либо это
понадобится.ID группы (Group ID, GID)GID это номер, традиционно от 0 до
65535, используемый
для однозначной идентификации главной группы, к которой
принадлежит пользователь. Группы это механизм для контроля
доступа к ресурсам на основе GID пользователя вместо его UID.
Это может значительно уменьшить размер некоторых файлов настройки.
Кроме того, пользователь может быть включен более чем в одну
группу.Класс логинаКлассы логинов это расширение к механизму групп,
позволяющее системе более гибко управлять различными
пользователями.Время изменения пароляПо умолчанию FreeBSD не принуждает пользователей периодически
менять пароли. Вы можете включить эту функцию для определенных
пользователей, заставив некоторых или всех пользователей менять
пароли по прошествии определенного времени.Время истечения действия учетной записиПо умолчанию в FreeBSD время действия учетных записей не
ограничено. Если вы создаете учетные записи, продолжительность
жизни которых ограничена, например учетные записи для
студентов в школе, вы можете определить время истечения
действия учетной записи. После наступления этого времени
учетная запись не может использоваться для входа в систему,
хотя каталоги и файлы этой учетной записи останутся
нетронутыми.Полное имя пользователяИмя пользователя является уникальным идентификатором
учетной записи в FreeBSD, но недостаточно для сопоставления
с реальным именем пользователя. Эта информация может быть
добавлена в учетную запись.Домашний каталогДомашний каталог это полный путь к каталогу в системе, в
котором пользователь начнет работать после входа в систему.
По общепринятому соглашению все домашние каталоги пользователей
помещаются в
/home/username
или
/usr/home/username.
Пользователи хранят личные файлы в домашнем каталоге и в любых
подкаталогах, создаваемых внутри домашнего каталога.Оболочка пользователяОболочка необходима пользователям как средство взаимодействия
с системой по умолчанию. Существует множество различных видов
оболочек, опытные пользователи работают с собственными
настройками, которые могут быть отражены в установках их учетных
записей.Существует три основных типа учетных записей: суперпользователь, системные пользователи, и учетные записи пользователей.
Учетная запись суперпользователя, обычно называемая
root, используется для управления системой
без ограничения привилегий. Системные пользователи запускают
сервисы. Наконец, учетные записи пользователей необходимы обычным
людям для входа в систему, чтения почты, и так далее.Учетная запись суперпользователяучетные записисуперпользователь (root)Учетная запись суперпользователя, обычно называемая
root, существует в системе изначально
для целей системного администрирования, и не должна использоваться
для повседневных задач, таких как получение и отправка почты,
общее исследование системы или программирование.Причина в том, что суперпользователь, в отличие от обычных
пользователей, может работать без ограничений и неправильное
использование учетной записи суперпользователя может привести к
полному уничтожению системы. Учетные записи пользователей не
способны уничтожит систему вследствие ошибки, поэтому обычно
лучше использовать учетные записи обычных пользователей везде,
где это возможно, пока вам не потребуются дополнительные
привилегии для какой-то определенной задачи.Вы всегда должны дважды и трижды проверять команды, выполняемые
под учетной записью суперпользователя, поскольку даже один лишний
пробел или отсутствующий символ может привести к безвозвратной
потере данных.Таким образом, первое, что вам необходимо сделать после прочтения
этой главы, это создать непривилегированную учетную запись пользователя
для повседневного использования (если вы еще этого не сделали).
Это необходимо сделать независимо от того, работаете ли вы на
многопользовательском или однопользовательском компьютере.
Позже в этой главе мы обсудим как создать дополнительные учетные записи,
и как менять уровень привилегий между нормальным пользователем и
суперпользователем.Системные учетные записиучетные записисистемныеСистемные пользователи предназначены для запуска сервисов, таких
как DNS, почта, веб серверы и так далее. Это необходимо по соображениям
безопасности; если все сервисы работают от суперпользователя, они
могут действовать без ограничений.учетные записиdaemonучетные записиoperatorПримеры системных пользователей это daemon,
operator, bind (для
Domain Name Service, DNS), news и
www.учетные записиnobodynobody это классический непривилегированный
системный пользователь. Тем не менее, необходимо помнить, что чем
больше сервисов используют nobody, тем больше
файлов и процессов ассоциировано с этим пользователем, и следовательно
тем больше прав появляется у этого пользователя.Учетные записи пользователейучетные записипользователейУчетные записи пользователей в основном означают доступ в систему
для обычных людей, и эти учетные записи отделяют пользователя и
его рабочую среду, предотвращая повреждение пользователем системы
или данных других пользователей, и позволяя пользователям
настраивать свою рабочую среду без влияния на других
пользователей.Каждая персона, получающая доступ к вашей системе, должна получить
уникальную учетную запись пользователя. Это позволит вам выяснить
кто что делает, предотвращая сбивание одним пользователем настроек
других пользователей, чтение чужой почты и так далее.Каждый пользователь может настраивать свою собственную рабочую
среду для приспособления системы под свои нужды с помощью альтернативных
оболочек, редакторов, привязки клавиш и настроек языка.Изменение учетных записейучетные записиизменениеВ среде &unix; существуют различные команды для работы с учетными
записями пользователей. Наиболее часто используемые команды приведены
в таблице, ниже находятся более детальные примеры их
использования.КомандаКраткое описание&man.adduser.8;Рекомендуемое приложение командной строки для добавления
новых пользователей.&man.rmuser.8;Рекомендуемое приложение командной строки для удаления
пользователей.&man.chpass.1;Гибкий инструмент для изменения информации в базе данных
пользователей.&man.passwd.1;Простой инструмент командной строки для изменения паролей
пользователей.&man.pw.8;Мощный и гибкий инструмент для изменения любой информации,
связанной с учетными записями пользователей.adduserучетные записидобавлениеadduser/usr/share/skelкаталог шаблоновskeleton directory&man.adduser.8; это простая программа для добавления новых
пользователей. Она создает записи в системных файлах
passwd и group.
Она также создает домашний каталог для нового пользователя,
копируя файлы настройки по умолчанию (dotfiles, файлы
имя который начинается с символа .) из
/usr/share/skel и опционально может отправлять
новому пользователю приветственное сообщение.Добавление пользователя в &os;&prompt.root; adduser
Username: jru
Full name: J. Random User
Uid (Leave empty for default):
Login group [jru]:
Login group is jru. Invite jru into other groups? []: wheel
Login class [default]:
Shell (sh csh tcsh zsh nologin) [sh]: zsh
Home directory [/home/jru]:
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username : jru
Password : ****
Full Name : J. Random User
Uid : 1001
Class :
Groups : jru wheel
Home : /home/jru
Shell : /usr/local/bin/zsh
Locked : no
OK? (yes/no): yes
adduser: INFO: Successfully added (jru) to the user database.
Add another user? (yes/no): no
Goodbye!
&prompt.root;Пароль, который вы вводите, не отображается,
звездочки при вводе пароля также не отображаются.
Убедитесь, что вы не ошиблись при вводе пароля.rmuserrmuserучетные записиудалениеДля полного удаления пользователя из системы вы можете
использовать &man.rmuser.8;. Эта программа выполняет следующие
действия:Удаление записи пользователя из &man.crontab.1; (если
она присутствует).Удаляет задачи &man.at.1;, принадлежащие
пользователю.Уничтожает все процессы, принадлежащие пользователю.Удаляет пользователя из локального файла паролей.Удаляет домашний каталог пользователя (если он принадлежит
пользователю).Удаляет принадлежащую пользователю входящую почту из
/var/mail.Удаляет все файлы, принадлежащие пользователю, из каталогов
с временными файлами, например /tmp.Наконец, удаляет имя пользователя из всех групп, которым оно
принадлежит, в /etc/group.Если после этого удаления группа остается пустой и
имя группы совпадает с именем пользователя, она удаляется;
Это необходимо для удаления пользовательских уникальных
групп, создаваемых &man.adduser.8;.&man.rmuser.8; не может использоваться для удаления учетной
записи суперпользователя, поскольку это почти всегда означает
разрушение системы.По умолчанию используется интерактивный режим, программа
пытается убедиться, что вы уверены в своих действиях.Интерактивное удаление учетной записи с помощью
rmuser&prompt.root; rmuser jru
Matching password entry:
jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh
Is this the entry you wish to remove? y
Remove user's home directory (/home/jru)? y
Updating password file, updating databases, done.
Updating group file: trusted (removing group jru -- personal group is empty) done.
Removing user's incoming mail file /var/mail/jru: done.
Removing files belonging to jru from /tmp: done.
Removing files belonging to jru from /var/tmp: done.
Removing files belonging to jru from /var/tmp/vi.recover: done.
&prompt.root;chpasschpass&man.chpass.1; изменяет информацию в базе данных пользователей:
пароли, оболочки, персональную информацию.Только системные администраторы с правами суперпользователя
могут изменять информацию и пароли других пользователей с помощью
&man.chpass.1;.При запуске без параметров (кроме опционального имени
пользователя), &man.chpass.1; вызывает редактор, содержащий
информацию о пользователе. Когда пользователь выходит из редактора,
база данных пользователей обновляется этой информацией.После выхода из редактора будет запрошен
пароль (если вы не суперпользователь).Интерактивная работа с chpass
суперпользователя#Changing user database information for jru.
Login: jru
Password: *
Uid [#]: 1001
Gid [# or name]: 1001
Change [month day year]:
Expire [month day year]:
Class:
Home directory: /home/jru
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:Обычные пользователи могут изменять лишь небольшую часть этой
информации, и только для своей учетной записи.Интерактивная работа с chpass обычного
пользователя#Changing user database information for jru.
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:&man.chfn.1; и &man.chsh.1; это всего лишь ссылки на
&man.chpass.1;, как и &man.ypchpass.1;, &man.ypchfn.1; и
&man.ypchsh.1;. NIS поддерживается автоматически, так что
указание yp перед командой не обязательно.
Если это непонятно, не беспокойтесь, NIS будет рассмотрен в
.passwdpasswdучетные записиизменение пароля&man.passwd.1; это обычный способ изменения собственного пароля
пользователя, или пароля другого пользователя
суперпользователем.Для предотвращения случайного или неавторизованного изменения,
перед установкой нового пароля необходимо ввести старый.Изменение пароля&prompt.user; passwd
Changing local password for jru.
Old password:
New password:
Retype new password:
passwd: updating the database...
passwd: doneИзменение пароля другого пользователя
суперпользователем&prompt.root; passwd jru
Changing local password for jru.
New password:
Retype new password:
passwd: updating the database...
passwd: doneКак и с &man.chpass.1;, &man.yppasswd.1; это всего лишь
ссылка на &man.passwd.1;, так что NIS работает с обеими
командами.pwpw&man.pw.8; это утилита командной строки для создания, удаления,
модифицирования и отображения пользователей и групп. Она
функционирует как внешний интерфейс к системным файлам пользователей
и групп. У &man.pw.8; очень мощный набор параметров командной строки,
что делает это программу подходящей для использования в shell
скриптах, но новым пользователям она может показаться более сложной,
чем другие представленные здесь команды.Ограничение пользователейограничение пользователейучетные записиограничениеЕсли у вас есть пользователи, может появиться мысль о возможности
ограничения нагрузки на систему. FreeBSD предоставляет
администратору несколько способов ограничения объема
занимаемых пользователями системных ресурсов. Существует два вида
ограничений: дисковые квоты и другие ограничения ресурсов.квотыограничение пользователейквотыдисковые квотыДисковые квоты ограничивают объем пространства, занимаемого
пользователями, это способ быстрой проверки объема без вычисления
его каждый раз. Квоты обсуждаются в .Другие ограничения ресурсов включают способы ограничения
использования CPU, памяти и других ресурсов, которые могут потребляться
пользователем. Ограничения накладываются с помощью классов учетных
записей и обсуждаются в этом разделе./etc/login.confКлассы учетных записей определяются в
/etc/login.conf. Описание полной семантики
выходит за пределы обсуждаемого здесь материала, она детально
описана в странице справочника &man.login.conf.5;. Достаточно
сказать, что каждому пользователю присвоен класс
(default по умолчанию), и каждому классу присвоен
набор характеристик. Характеристика определяется в виде пары
имя=значение,
где имя это определенный идентификатор,
а значение это произвольная строка,
обрабатываемая в зависимости от имени. Настройка классов и
характеристик довольно проста и также описана в
&man.login.conf.5;.Система, как правило, не читает настройки в
/etc/login.conf непосредственно, она обращается
к файлу базы данных /etc/login.conf.db для
ускорения доступа к данным.
Для создания /etc/login.conf.db из
/etc/login.conf, выполните следующую
команду:&prompt.root; cap_mkdb /etc/login.confОграничения на ресурсы отличаются от обычных характеристик:
во-первых, для каждого ограничения существует мягкое
(текущее) и жесткое ограничение. Мягкое ограничение
может настраиваться пользователем или приложением, но не может
превышать жесткое ограничение. Последнее может быть уменьшено
пользователем, но никогда не увеличено. Во-вторых, большинство
ограничений ресурсов применяются к процессам определенного пользователя,
а не к пользователю вообще. Обратите внимание, что эти различия
реализуются специфической обработкой ограничений, а не реализацией
структуры характеристик учетных записей (т.е. это не
настоящий специальный случай характеристик).Ниже приведен список наиболее часто используемых ограничений
на ресурсы (остальные, вместе с другими характеристиками
можно найти в &man.login.conf.5;).coredumpsizecoredumpsizeограничение пользователейcoredumpsizeОграничение на размер файла core, генерируемого программой,
по очевидным причинам подчиняющееся другим ограничениям
на используемое дисковое пространство (например,
filesize, или дисковые квоты).
Тем не менее, оно часто используется как менее строгий
метод контролирования потребления дискового пространства:
поскольку пользователь не создает файлы core самостоятельно,
и зачастую не удаляет их, установка этого параметра может
предохранить его от выхода за пределы дисковых квот, если
большая программа (например, emacs)
создаст core файл.cputimecputimeограничение пользователейcputimeЭто максимальное количество времени CPU, потребляемого
пользователем. Превысившие это время процессы будут уничтожены
- ядром.
+ ядром.Это ограничение потребляемого
времени CPU, а не процентов использования
CPU, которые отображаются в некоторых полях &man.top.1;
и &man.ps.1;. Ограничения на них на время написания этого
материала невозможны и такие ограничения практически
бесполезны: компилятор — вполне законное приложение
— иногда может легко использовать почти 100%
CPU.
-
filesizefilesizeограничение пользователейfilesizeЭто максимальный размер файла, который может обрабатываться
пользователем. В отличие от дисковых
квот, это ограничение применяется к отдельным файлам,
а не ко всему набору принадлежащих пользователю файлов.maxprocmaxprocограничение пользователейmaxprocЭто максимальное число процессов, которые могут быть
запущены пользователем. В это число включаются и консольные
и фоновые процессы. По очевидным причинам, они не могут быть
больше, чем системное ограничение, указываемое через
переменную &man.sysctl.8; kern.maxproc.
Имейте ввиду, что установка слишком жестких ограничений может
стать помехой работе пользователя: зачастую полезно входить
в систему с нескольких консолей или использовать каналы.
Некоторые задачи, такие как компиляция большой программы,
также порождают множество процессов (например, &man.make.1;,
&man.cc.1; и другие препроцессоры).memorylockedmemorylockedограничение пользователейmemorylockedЭто максимальный объем памяти, блокировка которого
может быть запрошена процессом (см. например
&man.mlock.2;). Некоторые критически важные для системы
программы, такие как &man.amd.8;, блокируют память так,
что при выгрузке они не создают системе дополнительных
проблем.memoryusememoryuseограничение пользователейmemoryuseЭто максимальный объем памяти, которая может быть занята
процессами. Он включает основную память и
использование подкачки. Это ограничение не снимает все вопросы,
связанные с использованием памяти, но для начала это подходящее
ограничение.openfilesopenfilesограничение пользователейopenfilesЭто максимальное количество файлов, которые могут быть
открыты процессами. В FreeBSD, файлы также используются для
представления сокетов и каналов IPC; не устанавливайте слишком
маленькое значение. Ограничение этого параметра, устанавливаемое
для всей системы, определяется переменной &man.sysctl.8;
kern.maxfiles.sbsizesbsizeограничение пользователейsbsizeЭто ограничение потребляемого пользователем объема сетевой
памяти, т.е. mbufs. Оно было введено как ответ на старые
DoS атаки, при которых создавалось множество сокетов,
но обычно может быть использовано и для ограничения
сетевых соединений.stacksizestacksizeограничение пользователейstacksizeЭто максимальный размер, до которого может вырасти стек
процесса. Сам по себе этот параметр не может ограничить
размер используемой программой памяти, следовательно,
его необходимо использовать вместе с другими ограничениями.Существуют несколько других аспектов, которые необходимо учитывать
при установке ограничений ресурсов. Ниже приведены некоторые общие
подсказки, советы и различные комментарии.Процессам, загружаемым при старте системы скриптами
/etc/rc присваивается класс
daemon.Хотя /etc/login.conf, поставляемый с
системой, это хороший источник подходящих значений для большинства
ограничений, только вы, администратор, можете знать подходящие
значения для вашей системы. Установка слишком слабых ограничений
может повлечь злоупотребления системой, а установка слишком
сильных ограничений может стать помехой производительности.Пользователи X Window System (X11) возможно должны получить
больше ресурсов, чем другие пользователи. X11 сама по себе
потребляет много ресурсов, а также провоцирует пользователей
на одновременный запуск большего количества программ.Помните, что многие ограничения применяются к отдельным
процессам, а не к пользователю вообще. Например, установка
openfiles в 50 означает, что каждый
процесс, запущенный пользователем, может открывать до 50
файлов. Таким образом, общее количество файлов, которые могут
быть открыты пользователем, вычисляется как
openfiles, помноженное на
maxproc. Это также применимо к потребляемой
памяти.За дальнейшей информацией по ограничениям на ресурсы, классам
учетных записей и характеристикам, обращайтесь к соответствующим
страницам справочника.Группыгруппы/etc/groupsучетные записигруппыГруппа это просто список пользователей. Группа идентифицируется
по имени и GID (Group ID, идентификатор группы). В FreeBSD
(и большинстве других &unix;-подобных системах) ядро для определения
прав процесса использует два фактора: его ID пользователя и
список групп, которым он принадлежит. Когда вы слышите что-то о
group ID пользователя или процесса, это обычно означает
только первую группу из списка.Имена групп связываются с ID групп в файле
/etc/group. Это текстовый файл с четырьмя
разделенными двоеточием полями. Первое поле это имя группы,
второе это зашифрованный пароль, третье это ID группы, а четвертое
это разделенный запятыми список членов группы. Этот файл может
быть безопасно отредактирован вручную (предполагается, конечно,
что вы не сделаете синтаксических ошибок!). За более полным описанием
синтаксиса обратитесь к странице справочника &man.group.5;.Если вы не хотите редактировать /etc/group
вручную, используйте команду &man.pw.8; для добавления и
редактирования групп. Например, для добавления группы,
называемой teamtwo, и проверки ее существования
вы можете использовать:Добавление группы с использованием &man.pw.8;&prompt.root; pw groupadd teamtwo
&prompt.root; pw groupshow teamtwo
teamtwo:*:1100:Число 1100 это ID группы
teamtwo. На данный момент в,
teamtwo нет членов, и поэтому она практически
бесполезна. Давайте изменим эту ситуацию, добавив
jru в группу teamtwo.
- Добавление пользователя в группу с использованием
+ Составление списка членов группы с использованием
&man.pw.8;&prompt.root; pw groupmod teamtwo -M jru
&prompt.root; pw groupshow teamtwo
teamtwo:*:1100:jruАргумент к параметру это разделенный
запятыми список пользователей, являющихся членами группы. Из предыдущих
разделов мы знаем, что файл паролей также указывает группу для
каждого пользователя. Пользователь автоматически добавляется системой
к списку групп; пользователь не будет показан как член группы при
использовании &man.pw.8; , но эта
информация будет показана при использовании &man.id.1; или похожего
инструмента. Другими словами, с этим параметром программа &man.pw.8;
работает только с файлом /etc/group; она никогда
не будет пытаться получить дополнительную информацию из файла
/etc/passwd.
+
+ Добавление нового члена группы с использованием &man.pw.8;
+
+ &prompt.root; pw groupmod teamtwo -m db
+&prompt.root; pw groupshow teamtwo
+teamtwo:*:1100:jru,db
+
+
+ Аргументом к опции является разделенный запятыми
+ список пользователей, добавляемых в группу. В отличие от предыдущего
+ примера, пользователи добавляются в группу, а не замещают имеющийся
+ список пользователей группы.
+
Использование &man.id.1; для определения принадлежности к
группам&prompt.user; id jru
uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)Как вы можете видеть, jru является членом
групп jru и
teamtwo.За дальнейшей информацией о &man.pw.8;, обратитесь к ее странице
справочника, а за дополнительной информацией о формате файла
/etc/group к странице справочника
&man.group.5;.
diff --git a/ru_RU.KOI8-R/books/handbook/x11/chapter.sgml b/ru_RU.KOI8-R/books/handbook/x11/chapter.sgml
index d1c18f093a..cbec1501ef 100644
--- a/ru_RU.KOI8-R/books/handbook/x11/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/x11/chapter.sgml
@@ -1,1725 +1,1736 @@
KenTomОбновили для сервера X.Org X11 MarcFonvieilleАндрейЗахватовПеревод на русский язык: X Window SystemОбзорFreeBSD использует X11 для того, чтобы дать пользователям мощный
графический интерфейс. X11 является свободно доступной версией
X Window System, реализованной в &xorg; и
&xfree86; (а также других программных
пакетах, здесь не рассматриваемых). В версиях &os; до и включая
&os; 5.2.1-RELEASE сервером X11
по умолчанию был &xfree86;, выпускаемый
The &xfree86; Project, Inc. Начиная с &os; 5.3-RELEASE,
официальной версией X11 по умолчанию стал
&xorg;, разработанный
X.Org Foundation под лицензией, очень похожей на ту, которая используется
&os;. Под &os; существуют также коммерческие X серверы.Эта глава посвящена установке и настройке
X11 в системе FreeBSD, с акцентом на релиз
&xorg; &xorg.version;.
За информацией о настройке &xfree86;
(в более старых релизах &os; &xfree86;
был реализацией X11 по умолчанию), или более старых релизов
&xorg;, всегда можно обратиться к старым
версиям Руководства &os; по адресу .За дополнительной информацией по видео оборудованию, поддерживаемому
X11, обратитесь к веб сайту
&xorg;.После чтения этой главы вы будете знать:Как установить и настроить X11.О различных компонентах X Window System и их
взаимодействии.Как установить и использовать различные оконные менеджеры.Как использовать шрифты &truetype; в X11.Как настроить вашу систему на графический интерфейс входа
(XDM).Перед чтением этой главы вам потребуется:Узнать, как устанавливать дополнительное программное обеспечение
сторонних разработчиков ().Основы XПервое знакомство с X может оказаться чем-то вроде шока для тех, кто
работал с другими графическими системами, такими, как µsoft.windows;
или &macos;.Хотя нет необходимости вникать во все детали различных компонентов X и
их взаимодействия, некоторые базовые знания делают возможным
использование сильных сторон X.Почему именно X?X не является первой оконной системой для &unix;, но она
самая популярная из них. До работы над X команда ее разработчиков трудилась
над другой оконной системой. Та система называлась W
(от Window). X была просто следующей
буквой в романском алфавите.X можно называть X, X Window System,
X11 и множеством других терминов. Факт использования названия
X Windows для X11 может задеть интересы некоторых
людей; дополнительную информацию по этому поводу можно найти на
странице справочной системы &man.X.7;.Модель клиент/сервер в XX изначально разрабатывалась, чтобы быть системой, ориентированной
на работу в сети с использованием модели
клиент-сервер.В модели работы X X-сервер работает на компьютере с
клавиатурой, монитором и мышью. Область ответственности сервера
включает управление
- дисплеем, обработку ввода с клавиатуры и мыши и так далее. Каждое
+ дисплеем, обработку ввода с клавиатуры, мыши и других устройств
+ ввода или вывода (например, планшет может быть
+ использован в качестве устройства ввода, а видеопроектор в качестве
+ альтернативного устройства вывода). Каждое
X-приложение (например, XTerm или
&netscape;) является
клиентом. Клиент посылает сообщения серверу, такие,
как Пожалуйста, нарисуй окно со следующими координатами,
а сервер посылает в ответ сообщения типа Пользователь только что
щёлкнул мышью на кнопке OK.В случае
использования дома или в офисе, сервер и клиенты X как правило будут работать на
том же самом компьютере. Однако реально возможно запускать X-сервер
на менее мощном настольном компьютере, а приложения X (клиенты) на,
скажем, мощной и дорогой машине, обслуживающей целый офис. В этом
сценарии X-клиент и сервер общаются через сеть.Некоторых это вводит в заблуждение, потому что терминология X
в точности обратна тому, что они ожидают. Они полагают, что
X-сервер будет большой мощной машиной, стоящей на полу,
а X-клиентом является машина, стоящая на их
столах.Важно помнить, что X-сервером является машина с монитором и
клавиатурой, а X-клиенты являются программами, выводящими окна.В протоколе нет ничего, что заставляет машины клиента и сервера
работать под управлением одной и той же операционной системы, или
даже быть одним и тем же типом компьютера. Определённо возможно
запускать X-сервер в µsoft.windows; или &macos; от Apple, и есть
множество свободно распространяемых и коммерческих приложений, которые
это реализуют.Оконный менеджерФилософия построения X очень похожа на философию построения &unix;,
инструменты, не политика. Это значит, что X не пытаются
диктовать то, как должна быть выполнена работа. Вместо этого
пользователю предоставляются инструменты, а за пользователем остается
принятие решения о том, как использовать эти инструменты.Этот подход расширен в X тем, что не задается, как окна должны
выглядеть на экране, как их двигать мышью, какие комбинации клавиш
должны использоваться для переключения между окнами (то есть
AltTab, в случае использования µsoft.windows;), как должны
выглядеть заголовки окон, должны ли в них быть кнопки для закрытия, и
прочее.Вместо этого X делегирует ответственность за это приложению,
которое называется Window Manager (Менеджер Окон). Есть
десятки оконных менеджеров для X: AfterStep,
Blackbox, ctwm,
Enlightenment,
fvwm, Sawfish,
twm,
WindowMaker и другие. Каждый из этих
оконных менеджеров предоставляет различные внешние виды и удобства;
некоторые из них поддерживают виртуальные рабочие столы;
некоторые из них позволяют изменять назначения комбинаций
клавиш, используемых для управления рабочим столом; в некоторых есть
кнопка Start или нечто подобное; некоторые поддерживают
темы, позволяя изменять внешний вид, поменяв тему.
Эти оконные менеджеры, а также множество
других, находятся в категории x11-wm коллекции
портов.Кроме того, оболочки KDE и
GNOME имеют собственные оконные
менеджеры, которые интегрированы в оболочку.Каждый оконный менеджер также имеет собственный механизм настройки;
некоторые предполагают наличие вручную созданного конфигурационного
файла; некоторые предоставляют графические инструменты для выполнения
большинства работ по настройке; по крайней мере один
(Sawfish) имеет конфигурационный файл,
написанный на диалекте языка Lisp.Политика фокусированияДругой особенностью, за которую отвечает оконный менеджер,
является политика фокусирования мыши. Каждая оконная
система должна иметь некоторый способ выбора окна для активации
получения нажатий клавиш, а также визуальную индикацию того, какое
окно активно.Широко известная политика фокусировки называется
щелчок-для-фокуса (click-to-focus).
Эта модель используется в
µsoft.windows;, когда окно становится активным после получения
щелчка мыши.X не поддерживает никакой конкретной политики фокусирования.
Вместо этого менеджер окон управляет тем, какое окно владеет фокусом
в каждый конкретный момент времени. Различные оконные менеджеры
поддерживают разные методы фокусирования. Все они поддерживают метод
щелчка для фокусирования, и большинство из них поддерживают некоторые
другие методы.Самыми популярными политики фокусирования являются:фокус следует за мышью (focus-follows-mouse)Фокусом владеет то окно, что находится под
указателем мыши. Это не обязательно будет окно, которое
находится поверх всех остальных. Фокус меняется при
указании на другое окно, при этом также нет нужды щёлкать на
нём.нечеткий фокус (sloppy-focus)С политикой focus-follows-mouse если мышь помещается
поверх корневого окна (или заднего фона), то никакое окно
фокус не получает, а нажатия клавиш просто пропадают.
При использовании политики нечёткого фокуса он меняется
только когда курсор попадает на новое окно, но не когда
уходит с текущего окна.щелчок для выбора фокуса (click-to-focus)Активное окно выбирается щелчком мыши. Затем окно
может быть поднято и появится поверх всех
других окон. Все нажатия клавиш теперь будут направляться
в это окно, даже если курсор переместится к другому.Многие оконные менеджеры поддерживают и другие политики, а также
вариации перечисленных. Обязательно обращайтесь к документации по
оконному менеджеру.ВиджетыПодход X, заключающийся в предоставлении инструментов, а не
политики, распространяется и на виджеты, которые располагаются на
экране в каждом приложении.Виджет (widget) является термином для всего в
пользовательском интерфейсе, на чём можно
щёлкать или каким-то образом управлять; кнопки, зависимые (radio
buttons) и независимые (check boxes) опции, иконки, списки и так
далее. В µsoft.windows; это называется элементами
управления (controls).µsoft.windows; и &macos; от Apple имеют очень жёсткую
политику относительно виджетов. Предполагается, что разрабатываемые
приложения обязательно должны иметь похожий внешний вид. Что касается
X, то было решено, что не нужно требовать обязательного использования
какого-то определённого графического стиля или набора виджетов.В результате не стоит ожидать от X-приложений
похожести во внешнем виде. Существует несколько популярных наборов
виджетов и их разновидностей, включая оригинальный набор виджетов
Athena от MIT, &motif; (по
образу которого был разработан набор виджетов в µsoft.windows;,
все эти скошенные углы и три разновидности серого цвета),
OpenLook и другие.В большинстве появляющихся в настоящее время приложений для X будет
использоваться современно выглядящий набор виджетов, либо Qt,
используемый в KDE, либо
GTK+, используемый проектом
GNOME. В этом отношении наблюдается
унификация внешнего вида рабочего стола в &unix;, что определённо
облегчает жизнь начинающему пользователю.Установка X11Версией X11 по умолчанию для &os; является
&xorg;. &xorg;
это сервер X дистрибутива открытой реализации X Window System,
выпущенной X.Org Foundation. &xorg; основан на коде
&xfree86 4.4RC2 и X11R6.6.
Версия &xorg;, доступная на данный момент
из коллекции портов &os;: &xorg.version;.Для сборки и установки &xorg; из
Коллекции портов, выполните:&prompt.root; cd /usr/ports/x11/xorg
&prompt.root; make install cleanПеред сборкой полной версии &xorg;
удостоверьтесь в наличии хотя бы 4 GB свободного места.Кроме того, X11 может быть установлен непосредственно из
пакетов. Бинарные пакеты, устанавливаемые &man.pkg.add.1;,
доступны и для X11. Когда &man.pkg.add.1; используется для удаленной
загрузки пакетов, номер версии пакета необходимо удалить.
&man.pkg.add.1; автоматически установит последнюю версию
приложения.Таким образом, для загрузки и установки пакета
&xorg;, просто наберите:&prompt.root; pkg_add -r xorgВ примерах выше будет установлен полный дистрибутив
X11, включая серверы, клиенты, шрифты
и так далее. Также доступны и отдельные пакеты и порты для
различных частей X11.В оставшейся части главы будет рассказано о том, как сконфигурировать
X11 и настроить рабочее окружение.ChristopherShumwayТекст предоставил Конфигурация X11&xorg;X11Перед тем, как начатьПеред настройкой X11
необходима следующая информация о конфигурируемой системе:Характеристики монитораНабор микросхем, используемый в видеоадаптереОбъём видеопамятичастота горизонтальной разверткичастота вертикальной разверткиХарактеристики монитора используются в
X11 для определения рабочего
разрешения и частоты. Эти характеристики обычно могут быть получены из
документации, которая прилагается к монитору или с сайта производителя.
Тут нужны два диапазона значений, для частоты горизонтальной развёртки
и для частоты вертикальной синхронизации.Набор микросхем графического адаптера определяет, модуль какого
драйвера использует X11 для работы с
графическим оборудованием.
Для большинства типов микросхем это может быть определено
автоматически, но все же его полезно знать на тот случай, когда
автоматическое определение не работает правильно.Объём видеопамяти графического адаптера определяет разрешение и
глубину цвета, с которым может работать система. Это важно, чтобы
пользователь знал ограничения системы.Конфигурирование X11
- Процесс настройки X11 является
+ Начиная с версии 7.3, &xorg;
+ зачастую может работать без какого-либо файла настройки,
+ для его запуска достаточно просто набрать:
+
+ &prompt.user; startx
+
+ Если это не сработает, или конфигурация по умолчанию не
+ подходит, X11 необходимо настроить вручную. Процесс настройки
+ X11 является
многошаговым. Первый шаг заключается в построении начального
конфигурационного файла. Работая с правами суперпользователя,
просто запустите:&prompt.root; Xorg -configureПри этом в каталоге /root будет создан скелет
конфигурационного файла X11 под именем
xorg.conf.new (там, куда после &man.su.1; или
непосредственного входа будет указывать переменная
$HOME). Программа
X11 сделает попытку распознать графическое оборудование системы и
запишет конфигурационный файл, загружающий правильные драйверы для
обнаруженного оборудования в системе.Следующим шагом является тестирование существующей конфигурации для
проверки того, что &xorg; может работать
с графическим оборудованием в настраиваемой системе. Для этого
выполните:&prompt.root; Xorg -config xorg.conf.newЕсли появилась чёрно-белая сетка и курсор мыши в виде
X, то настройка была выполнена успешно. Для завершения тестирования
просто нажмите одновременно
CtrlAltBackspace.Если мышь не работает, ее необходимо настроить.
Обратитесь к в главе об установке
&os;.Тонкая настройка X11Теперь выполните тонкую настройку в файле
xorg.conf.new по своему вкусу.
Откройте файл в текстовом редакторе, таком, как &man.emacs.1; или
&man.ee.1;. Сначала задайте частоты для
монитора. Они обычно обозначаются как частоты горизонтальной и
вертикальной синхронизации. Эти значения добавляются в файл
XF86Config.new в
раздел "Monitor":Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
HorizSync 30-107
VertRefresh 48-120
EndSectionКлючевых слов HorizSync и
VertRefresh может и не оказаться в
файле конфигурации. Если их нет, то они должны быть добавлены, с
указанием корректных значений горизонтальной частоты синхронизации
после ключевого слова HorizSync и вертикальной
частоты синхронизации после ключевого слова
VertRefresh. В примере выше были введены частоты
монитора настраиваемой системы.X позволяет использовать возможности технологии DPMS (Energy Star)
с поддерживающими её мониторами. Программа &man.xset.1; управляет
временными задержками и может явно задавать режимы ожидания, останова
и выключения. Если вы хотите включить использование возможностей
DPMS вашего монитора, вы должны добавить следующую строку в раздел,
описывающий монитор:Option "DPMS"xorg.confПока файл конфигурации xorg.conf.new
открыт
в редакторе, выберите желаемые разрешение и глубину цвета, которые
будут использоваться по умолчанию. Они задаются в разделе
"Screen":Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1024x768"
EndSubSection
EndSectionКлючевое слово DefaultDepth описывает
глубину цвета, с которой будет работа по умолчанию. Это значение
может быть переопределено при помощи параметра командной строки
для &man.Xorg.1;.
Ключевое слово
Modes описывает разрешение, с которым нужно
работать при данной глубине цвета. Заметьте, что поддерживаются
только те стандартные режимы VESA, что определены графическим
оборудованием настраиваемой системы. В примере выше глубина цвета по
умолчанию равна двадцати четырём битам на пиксел. При такой глубине
цвета принимается разрешение в 1024 на 768 точек.Наконец, запишите конфигурационный файл и
протестируйте его при помощи тестового режима, описанного выше.При решении проблем могут помочь лог файлы X11, в которых
находится информация по каждому устройству, к которому
подключен сервер X11. Лог файлам
&xorg; названия даются в формате
/var/log/Xorg.0.log. Имена лог файлам
могут даваться от Xorg.0.log до
Xorg.8.log и так далее.Если все в порядке, то конфигурационный файл нужно установить в
общедоступное место, где его сможет найти &man.Xorg.1;.
Обычно это /etc/X11/xorg.conf или
/usr/local/etc/X11/xorg.conf.&prompt.root; cp xorg.conf.new /etc/X11/xorg.confТеперь процесс настройки X11 завершен.
&xorg; теперь можно запустить с помощью
&man.startx.1;. X11 можно также запустить через
&man.xdm.1;.Имеется также графический инструмент для настройки,
&man.xorgcfg.1;, который включён в
дистрибутив X11. Он позволяет выполнить
настройку в интерактивном режиме посредством выбора соответствующих
драйверов и настроек. Эта программа может быть запущена в консоли
командой xorgcfg -textmode. Для получения более
полной информации обратитесь к странице справочной системы
&man.xorgcfg.1;.Кроме того, существует программа настройки &man.xorgconfig.1;.
Это консольная утилита, которая менее дружественна к пользователю,
но может работать в ситуациях, в которых другие утилиты не
работают.Тонкие вопросы настройкиКонфигурирование при работе с графическими чипсетами &intel;
i810графический чипсет Intel i810Конфигурирование при работе с интегрированными наборами микросхем
&intel; i810 требует наличия agpgart,
программного интерфейса AGP, посредством которого
X11 будет управлять адаптером. Подробности смотрите на странице
справочника &man.agp.4;.Это позволит конфигурировать графическое оборудование точно так
же, как и любой другой графический адаптер. Заметьте, что для
систем, у которых драйвер &man.agp.4; в ядро не вкомпилирован,
попытка погрузить модуль с помощью &man.kldload.8; окончится
неудачно. Этот драйвер должен оказаться в ядре во время загрузки,
либо вкомпилированным, либо подгруженным посредством
/boot/loader.conf.Настройка широкоэкранного режиманастройка широкоэкранного режимаДля этого раздела необходимо несколько больше навыков настройки.
Если после использования описанных выше инструментов настройки в
результате рабочей конфигурации не получается, в лог файлах достаточно
информации для доведения конфигурации до рабочего уровня. Для настройки
используется текстовый редактор.Существующие широкоэкранные стандарты (WSXGA, WSXGA+, WUXGA, WXGA,
WXGA+, и т.д.) поддерживают форматы изображения 16:10 и 10:9, которые
могут быть проблемными. Для формата 16:10, например, возможны следующие
разрешения экрана:2560x16001920x12001680x10501440x9001280x800Иногда достаточно добавить одно из этих разрешений в качестве параметра
Mode в раздел Section "Screen"
вот так:Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1680x1050"
EndSubSection
EndSection&xorg; может извлечь информацию о разрешении
из монитора посредством I2C/DDC, так что у него есть данные, какие
частоты и разрешения может поддерживать монитор.Если эти ModeLines не определены в драйверах,
может потребоваться дополнительная настройка
&xorg;. Используя
/var/log/Xorg.0.log, можно извлечь достаточно
информации для создания рабочей строки ModeLine вручную.
Просто обратитесь к следующей информации:(II) MGA(0): Supported additional Video Mode:
(II) MGA(0): clock: 146.2 MHz Image Size: 433 x 271 mm
(II) MGA(0): h_active: 1680 h_sync: 1784 h_sync_end 1960 h_blank_end 2240 h_border: 0
(II) MGA(0): v_active: 1050 v_sync: 1053 v_sync_end 1059 v_blanking: 1089 v_border: 0
(II) MGA(0): Ranges: V min: 48 V max: 85 Hz, H min: 30 H max: 94 kHz, PixClock max 170 MHzЭта информация называется EDID. Создание ModeLine
из сводится к расположению номеров в правильном порядке:ModeLine <name> <clock> <4 horiz. timings> <4 vert. timings>Для нашего примера ModeLine в Section
"Monitor" будет выглядеть так:Section "Monitor"
Identifier "Monitor1"
VendorName "Bigname"
ModelName "BestModel"
ModeLine "1680x1050" 146.2 1680 1784 1960 2240 1050 1053 1059 1089
Option "DPMS"
EndSectionПосле завершения редактирования конфигурации, X должен запуститься
в новом широкоэкранном разрешении.MurrayStokelyТекст предоставил Использование шрифтов в X11Шрифты Type1Шрифты, используемые по умолчанию и распространяемые вместе с
X11, вряд ли можно назвать идеально
подходящими для применения в обычных издательских приложениях. Большие
презентационные шрифты выглядят рвано и непрофессионально, а мелкие
шрифты в &netscape; вообще невозможно
разобрать. Однако есть некоторое количество свободно распространяемых
высококачественных шрифтов Type1 (&postscript;), которые можно без
изменений использовать с X11. К примеру, в наборе шрифтов URW
(x11-fonts/urwfonts) имеются
высококачественные версии стандартных шрифтов type1 (Times Roman, Helvetica, Palatino и другие). В набор Freefonts
(x11-fonts/freefonts) включено ещё
больше шрифтов, однако большинство из них предназначено для
использования в программном обеспечении для работы с графикой,
например, Gimp, и они не вполне пригодны
для использования в качестве
экранных шрифтов. Кроме того, X11 с
минимальными усилиями может быть настроена на использование шрифтов
&truetype;. Более детальная информация находится на странице
справочной системы &man.X.7; и в разделе о
шрифтах &truetype; ниже.Для установки вышеупомянутых коллекций шрифтов Type1 из коллекции
портов выполните следующие команды:&prompt.root; cd /usr/ports/x11-fonts/urwfonts
&prompt.root; make install cleanТо же самое нужно будет сделать для коллекции freefont и других.
Чтобы X-сервер обнаруживал
этих шрифты, добавьте соответствующую строку в
файл настройки X сервера (/etc/X11/xorg.conf),
которая должна выглядеть так:FontPath "/usr/local/lib/X11/fonts/URW/"Либо из командной строки при работе с X выполните:&prompt.user; xset fp+ /usr/local/lib/X11/fonts/URW
&prompt.user; xset fp rehashЭто сработает, но будет потеряно, когда сеанс работы с X будет
закрыт, если эта команда не будет добавлена в начальный файл
(~/.xinitrc в случае обычного сеанса через
startx
или ~/.xsession при входе через графический
менеджер типа XDM). Третий способ
заключается в использовании нового файла
/usr/local/etc/fonts/local.conf: посмотрите
раздел об антиалиасинге.Шрифты &truetype;Шрифты TrueTypeшрифтыTrueTypeВ &xorg; имеется встроенная
поддержка шрифтов &truetype;. Имеются два модуля, которые могут
обеспечить эту функциональность. В нашем примере используется модуль
freetype, потому что он в большей степени похож на другие механизмы
для работы с шрифтами. Для включения модуля freetype достаточно в
раздел "Module" файла
/etc/X11/xorg.conf добавить следующую
строчку.Load "freetype"Теперь создайте каталог для шрифтов &truetype;
(к примеру, /usr/local/lib/X11/fonts/TrueType) и
скопируйте все шрифты &truetype; в этот каталог. Имейте в виду,
что напрямую использовать шрифты &truetype; с &macintosh; нельзя;
для использования с X11 они должны
быть в формате &unix;/&ms-dos;/&windows;. После того, как файлы будут
скопированы в этот каталог, воспользуйтесь утилитой
ttmkfdir для создания файла
fonts.dir, который укажет подсистеме вывода
шрифтов X на местоположение этих новых файлов.
ttmkfdir имеется в Коллекции Портов FreeBSD:
x11-fonts/ttmkfdir.&prompt.root; cd /usr/local/lib/X11/fonts/TrueType
&prompt.root; ttmkfdir -o fonts.dirПосле этого добавьте каталог со шрифтами &truetype;
к маршруту поиска шрифтов. Это делается точно также, как описано выше
для шрифтов Type1, то есть
выполните&prompt.user; xset fp+ /usr/local/lib/X11/fonts/TrueType
&prompt.user; xset fp rehashили добавьте строку в файл
xorg.conf.Это всё. Теперь &netscape;,
Gimp,
&staroffice; и все остальные X-приложения
должны увидеть установленные шрифты &truetype;. Очень маленькие (как
текст веб-страницы на дисплее с высоким разрешением) и очень большие (в
&staroffice;) шрифты будут теперь выглядеть
гораздо лучше.Joe MarcusClarkeОбновление выполнил Антиалиасинг шрифтовшрифты с антиалиасингомшрифтыантиалиасингАнтиалиасинг присутствует в X11 начиная с
&xfree86;,
версии 4.0.2. Однако настройка шрифтов была довольно
громоздка вплоть до появления &xfree86;
4.3.0. Начиная с версии &xfree86; 4.3.0,
все шрифты, расположенные в каталогах
/usr/local/lib/X11/fonts/ и
~/.fonts/, автоматически становятся доступными для
применения антиалиасинга в приложениях, использующих Xft. Не все
приложения могут использовать Xft, но во многих его поддержка
присутствует. Примерами приложений, использующих Xft, является Qt
версий 2.3 и более поздних (это инструментальный пакет для оболочки
KDE), GTK+ версий 2.0 и более поздних (это
инструментальный пакет для оболочки GNOME),
а также Mozilla версий 1.2 и более
поздних.Для применения к шрифтам антиалиасинга, а также
для настройки параметров антиалиасинга, создайте (или отредактируйте,
если он уже существует) файл
/usr/local/etc/fonts/local.conf. Некоторые мощные
возможности системы шрифтов Xft могут быть настроены при помощи этого
файла; в этом разделе описаны лишь некоторые простые возможности. Для
выяснения всех деталей, пожалуйста, обратитесь к
&man.fonts-conf.5;.XMLЭтот файл должен быть сформирован в формате XML. Обратите особое
внимание на регистр символов, и удостоверьтесь, что все тэги корректно
закрыты. Файл начинается обычным заголовком XML, за которым следуют
DOCTYPE и
тэг <fontconfig>:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
Как и говорилось ранее, все шрифты из каталога
/usr/local/lib/X11/fonts/, а также
~/.fonts/ уже доступны для приложений,
использующих Xft. Если вы хотите добавить каталог, отличный от этих
двух, добавьте строчку, подобную следующей, в файл
/usr/local/etc/fonts/local.conf:<dir>/path/to/my/fonts</dir>После добавления новых шрифтов, и особенно новых каталогов со
шрифтами, вы должны выполнить следующую команду для перестроения
кэшей шрифтов:&prompt.root; fc-cache -fАнтиалиасинг делает границы несколько размытыми, что делает очень
мелкий текст более читабельным и удаляет лесенки из
текста большого размера, но может вызвать нечёткость при применении к
тексту обычного размера. Для исключения размеров шрифтов, меньших 14, из
антиалиасинга, добавьте такие строки: <match target="font">
<test name="size" compare="less">
<double>14</double>
</test>
<edit name="antialias" mode="assign">
<bool>false</bool>
</edit>
</match>
<match target="font">
<test name="pixelsize" compare="less" qual="any">
<double>14</double>
</test>
<edit mode="assign" name="antialias">
<bool>false</bool>
</edit>
</match>шрифтымежсимвольное расстояниеДля некоторых моноширинных шрифтов антиалиасинг может также
оказаться неприменимым при определении межсимвольного интервала. В
частности, эта проблема возникает с KDE.
Одним из возможных решений для этого
является жесткое задание межсимвольного интервала в 100. Добавьте
следующие строки: <match target="pattern" name="family">
<test qual="any" name="family">
<string>fixed</string>
</test>
<edit name="family" mode="assign">
<string>mono</string>
</edit>
</match>
<match target="pattern" name="family">
<test qual="any" name="family">
<string>console</string>
</test>
<edit name="family" mode="assign">
<string>mono</string>
</edit>
</match>(это создаст алиасы "mono" для других
общеупотребительных имён шрифтов фиксированного размера), а затем
добавьте: <match target="pattern" name="family">
<test qual="any" name="family">
<string>mono</string>
</test>
<edit name="spacing" mode="assign">
<int>100</int>
</edit>
</match> С некоторыми шрифтами, такими, как Helvetica, при антиалиасинге
могут возникнуть проблемы . Обычно это проявляется в виде шрифта,
который наполовину вертикально обрезан. Хуже того, это может
привести к сбоям таких приложений, как
Mozilla. Во избежание этого следует
добавить следующее в файл local.conf: <match target="pattern" name="family">
<test qual="any" name="family">
<string>Helvetica</string>
</test>
<edit name="family" mode="assign">
<string>sans-serif</string>
</edit>
</match> После того, как вы закончите редактирование
local.conf, удостоверьтесь, что файл завершен
тэгом </fontconfig>. Если этого не сделать,
ваши изменения будут проигнорированы.Набор шрифтов по умолчанию, поставляемый с
X11, не очень подходит, если
включается антиалиасинг. Гораздо лучший набор шрифтов, используемых
по умолчанию, можно найти в порте
x11-fonts/bitstream-vera. Этот
порт установит файл
/usr/local/etc/fonts/local.conf, если такого ещё
не существует. Если файл существует, то порт создаст файл
/usr/local/etc/fonts/local.conf-vera. Перенесите
содержимое этого файла в
/usr/local/etc/fonts/local.conf, и шрифты
Bitstream автоматически заменят используемые по умолчанию в
X11 шрифты Serif, Sans Serif и
Monospaced.Наконец, пользователи могут добавлять собственные наборы
посредством персональных файлов .fonts.conf.
Для этого каждый пользователь должен просто создать файл
~/.fonts.conf. Этот файл также должен быть в
формате XML.LCD-дисплейШрифтыLCD-дисплейИ последнее замечание: при использовании дисплея LCD может
понадобиться включение разбиения точек. При этом компоненты красного,
зелёного и голубого цветов (разделяемые по горизонтали),
рассматриваются как отдельные точки для улучшения разрешения экрана
по горизонтали; результат может оказаться потрясающим. Для включения
этого механизма добавьте такую строчку где-нибудь в файле
local.conf:
<match target="font">
<test qual="all" name="rgba">
<const>unknown</const>
</test>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
</match>
В зависимости от типа дисплея, rgb может
потребоваться заменить на bgr,
vrgb или vbgr: пробуйте и
смотрите, что работает лучше.Mozillaотключение шрифтов с антиалиасингомАнтиалиасинг должен быть включен при следующем запуске X-сервера.
Однако программы должны знать, как использовать его преимущества.
В настоящее время инструментальный пакет Qt умеет ими пользоваться,
так что вся оболочка KDE может
использовать шрифты с антиалиасингом.
GTK+ и GNOME
также можно заставить использовать антиалиасинг посредством капплета
Font (обратитесь к для выяснения всех подробностей).
По умолчанию Mozilla версий 1.2 и выше
будет автоматически использовать антиалиасинг. Для отмены
использования антиалиасинга
перестройте Mozilla с флагом
-DWITHOUT_XFT.SethKingsleyТекст предоставил Менеджеры экранов (Display Managers) XВступлениеX Display ManagerМенеджер Экранов X (XDM) это
необязательный компонент
X Window System, который используется для управления входом
пользователей в систему.
Это полезно в ряде ситуаций, например для минимальных
X Терминалов,
десктопов, больших сетевых серверов экранов. Так как X Window System
не зависит от сетей и протоколов, то существует множество различных
конфигураций для X клиентов и серверов, запущенных на различных
компьютерах, подключенных к сети. XDM
предоставляет графический
интерфейс для выбора сервера, к которому вы желаете подключится, и
введения информации, авторизующей пользователя, например комбинации
логина и пароля.XDM можно рассматривать как аналог
программы &man.getty.8;, предоставляющий такие же возможности
для пользователей
(смотрите для подробной информации).
И это именно так, XDM производит вход в
систему для подключенного
пользователя и запускает управляющую сессию для пользователя (обычно
это менеджер окон X). После этого XDM
ожидает завершения
приложения, означающее завершение пользователем работы и
отключает управляющую сессию. Затем
XDM может снова вывести
приглашение к входу в систему и ожидать входа другого пользователя.
Использование XDMПрограммой даемона XDM является
/usr/local/bin/xdm. Эта программа может быть
запущена от пользователя root в любой момент, и
она начнёт управлять дисплеем X на локальной машине.
Если XDM нужно запускать
в фоновом режиме каждый раз при запуске компьютера, то наиболее
правильный способ — это добавить новую запись в
/etc/ttys. Для более подробной информации о
формате и использовании этого файла смотрите . Вот строка, которую необходимо добавить
в файл /etc/ttys для того, чтобы запустить
даемон XDM на виртуальном терминале:ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secureПо умолчанию эта запись отключена; для её включения
нужно заменить пятое поле с off на
on и перезапустить &man.init.8;, используя метод,
описанный в . Первое поле это название
терминала, которым будет управлять программа, ttyv8.
Это означает, что XDM будет запущен на 9ом
виртуальном терминале.Конфигурирование XDMКонфигурационные файлы XDM находятся в
каталоге
/usr/local/lib/X11/xdm. В нём размещаются
насколько файлов, которые используются для изменения
поведения и внешнего вида XDM.
Обычно это следующие файлы:ФайлОписаниеXaccessПравила авторизации клиентов.XresourcesЗначения ресурсов X по умолчанию.XserversСписок локальных и удаленных экранов.XsessionСценарий сессии по умолчанию.Xsetup_*Скрипт для запуска приложений до появления приглашения
к входу в систему.xdm-configГлобальный конфигурационный файл для всех экранов
запущенных на локальной машинеxdm-errorsОшибки сгенерированные серверной программой.xdm-pidID процесса запущенного XDM.В этом каталоге также находятся несколько командных сценариев
и программ, используемых для настройки рабочего стола (desktop)
при запуске XDM. Назначение
каждого из этих файлов будет вкратце описано. Точный синтаксис и
информация по их использованию находятся в &man.xdm.1;.В конфигурации по умолчанию выводится простое прямоугольное окно
приглашения ко входу в систему с именем компьютера, написанным
сверху большим шрифтом, и строками ввода Login: и
Password: внизу. Это хорошая отправная точка
для изменения внешнего вида экранов
XDM.XaccessПротокол, по которому происходит подключение дисплеев,
управляемых XDM, называется X Display
Manager Connection
Protocol (XDMCP). Этот файл представляет собой
набор правил для управления XDMCP соединениями с
удалёнными машинами. Он игнорируется, пока
стандартный файл xdm-config не содержит
указаний по обслуживанию удалённых соединений.XresourcesЭто файл содержит установки по умолчанию для
приложений, запущенных в экране выбора серверов и экране
приглашения к входу в систему. В нем может быть
изменён вид программы входа в систему. Формат этого файла
идентичен файлу app-defaults, описанному
в документации к X11.XserversЭто список удаленных экранов, которые XDM должен предоставить
как варианты для входа в систему.XsessionЭтот файл представляет из себя командный сценарий по умолчанию
для пользователей, вошедших в систему с использованием
XDM.
Обычно каждый пользователь имеет собственный сценарий входа в файле
~/.xsession, который используется
вместо этого сценария.Xsetup_*Они запускаются автоматически перед тем, как показывается экран
выбора сервера или экран входа в систему. Для каждого экрана
(display) есть свой сценарий с именем Xsetup_,
за которым следует локальный номер экрана (например,
Xsetup_0).
Обычно эти сценарии запускают одну или две программы в
фоновом режиме, например xconsole.xdm-configЗдесь содержатся настройки в формате app-defaults,
которые применимы ко всем экранам данного компьютера.xdm-errorsЗдесь находится выдача X серверов, которые
XDM пытается запустить. Если экран,
который XDM пытается
открыть, отключается по некоторым причинам, то это хорошее
место для поиска сообщений об ошибках. Эти сообщения также
записываются в пользовательский файл
~/.xsession-errors для каждого сеанса.Использование сетевого сервера дисплеевДля того, чтобы позволить другим клиентам подключаться к серверу
дисплеев, необходимо отредактировать правила
контроля доступа и включить обслуживание сетевых соединений.
По умолчанию они выключены, что является хорошим решением
с точки зрения обеспечения безопасности. Для того, чтобы
позволить XDM принимать сетевые соединения,
в первую очередь
закомментируйте строку в файле xdm-config:! SECURITY: do not listen for XDMCP or Chooser requests
! Comment out this line if you want to manage X terminals with xdm
DisplayManager.requestPort: 0и потом перезапустите XDM. Помните,
что комментарии в файлах app-defaults начинаются с символа
!, а не как обычно, #. Может
потребоваться более жёсткий контроль доступа — взгляните на примеры из
Xaccess и обратитесь к странице справочника
&man.xdm.1; за дальнейшей информацией.Замены для XDMСуществует несколько программ, заменяющих
XDM. Одна из них,
kdm (поставляемая вместе с
KDE), описана далее в этой главе. В
kdm имеется много визуальных и
косметических улучшений, а также функциональность, позволяющая
пользователям выбирать собственные оконные менеджеры во время
входа в систему.ValentinoVaschettoТекст предоставил Графические оболочкиВ этом разделе описываются различные графические оболочки, доступные
в X для FreeBSD. Термин графическая оболочка может
использоваться для чего угодно, от простого менеджера окон до
полнофункционального набора приложений для рабочего стола, типа
KDE или
GNOME.GNOMEО GNOMEGNOMEGNOME является дружественной к
пользователю графической
оболочкой, позволяющей пользователям легко использовать и настраивать
свои компьютеры. В GNOME имеется панель
(для запуска приложений и
отображения их состояния), рабочий стол (где могут быть размещены
данные и приложения), набор стандартных инструментов и приложений для
рабочего стола, а также набор соглашений, облегчающих совместную
работу и согласованность приложений. Пользователи других
операционных систем или оболочек при использовании такой мощной
графической оболочки, какую обеспечивает
GNOME, должны чувствовать
себя в родной среде. Дополнительную информацию относительно
GNOME во FreeBSD можно найти на сайте
FreeBSD GNOME
Project. Web сайт также содержит достаточно исчерпывающие
FAQ'и, касающиеся установки, конфигурирования и управления
GNOME.Установка GNOMEПрограмму проще всего установить из пакета или коллекции
портов:Для установки пакета GNOME из сети,
просто наберите:&prompt.root; pkg_add -r gnome2Для построения GNOME из
исходных текстов используйте дерево портов:&prompt.root; cd /usr/ports/x11/gnome2
&prompt.root; make install cleanПосле установки GNOME нужно указать
X-серверу на запуск GNOME вместо
стандартного оконного менеджера.Самый простой путь запустить
GNOME - это использовать
GDM (GNOME Display Manager).
GDM, который устанавливается, как
часть GNOME (но отключен по умолчанию),
может быть включён путём добавления gdm_enable="YES"
в /etc/rc.conf. После перезагрузки,
GNOME запустится автоматически
после того, как вы зарегистрируйтесь в системе. Никакой
дополнительной конфигурации не требуется.GNOME может также быть запущен
из командной строки с помощью конфигурирования файла
.xinitrc. Если файл
.xinitrc уже откорректирован, то просто
замените строку, в которой запускается используемый менеджер окон,
на ту, что вызовет
/usr/local/bin/gnome-session.
Если в конфигурационном файле нет ничего особенного, то будет
достаточно просто набрать:&prompt.user; echo "/usr/local/bin/gnome-session" > ~/.xinitrcТеперь наберите startx, и будет запущена
графическая оболочка GNOME.Если используется более старый менеджер дисплеев типа
XDM, то это не сработает. Вместо этого
создайте выполнимый файл .xsession с той
же самой командой в нём. Для этого отредактируйте файл,
заменив существующую команду запуска оконного
менеджера на
/usr/local/bin/gnome-session:&prompt.user; echo "#!/bin/sh" > ~/.xsession
&prompt.user; echo "/usr/local/bin/gnome-session" >> ~/.xsession
&prompt.user; chmod +x ~/.xsessionЕщё одним вариантом является настройка менеджера дисплеев таким
образом, чтобы он позволял выбирать оконный менеджер во время входа в
систему; в разделе о KDE2 в
подробностях описывается, как сделать это для
kdm, менеджера дисплеев из
KDE.Шрифты с антиалиасингом и GNOMEGNOMEантиалиасинг шрифтовX11 поддерживает антиалиасинг посредством своего расширения
RENDER. GTK+ 2.0 и более поздние версии (это
инструментальный пакет, используемый
GNOME) могут использовать такую
функциональность. Настройка антиалиасинга описана в
. Таким образом, при наличии современного
GNOME, возможно использование
антиалиасинга. Просто перейдите в
ApplicationsDesktop PreferencesFont
и выберите либо
Best shapes,
Best contrast, либо
Subpixel smoothing (LCDs). Для приложений
GTK+, которые не являются частью оболочки
GNOME, задайте в качестве значения
переменной окружения GDK_USE_XFT1 перед запуском программы.KDEKDEО KDEKDE является простой в использовании
современной графической оболочкой. Вот лишь некоторые из
преимуществ, которые
даёт пользователю KDE:Прекрасный современный рабочий столРабочий стол, полностью прозрачный для работы в сетиИнтегрированная система помощи, обеспечивающая удобный и
согласованный доступ к системе помощи по использованию рабочего
стола KDE и его приложенийЕдинообразный внешний вид и управление во всех приложениях
KDEСтандартизированные меню и панели инструментов, комбинации
клавиш, цветовые схемы и так далее.Интернационализация: в KDE
поддерживается более 40 языковЦентрализованное единообразное конфигурирование рабочего
стола в диалоговом режимеБольшое количество полезных приложений для
KDEСовместно с KDE
поставляется веб-браузер под
названием Konqueror, который
является серьезным соперником другим браузерам для &unix;-систем.
Дополнительную информацию о KDE можно
найти на веб-сайте KDE в
FreeBSD. Для получения информации и информационных ресурсов,
специфичных для KDE во FreeBSD, обратитесь
к сайту команды FreeBSD-KDE
team.Установка KDEКак и в случае с GNOME или любой
другой графической оболочкой, программное обеспечение можно легко
установить из пакета или из Коллекции Портов:Для установки пакета KDE из сети,
просто наберите:&prompt.root; pkg_add -r kde&man.pkg.add.1; автоматически загрузит самую последнюю версию
приложения.Для построения KDE из исходных
текстов воспользуйтесь деревом портов:&prompt.root; cd /usr/ports/x11/kde3
&prompt.root; make install cleanПосле установки KDE нужно
указать X-серверу на запуск этого приложения вместо оконного
менеджера, используемого по умолчанию. Это достигается
редактированием файла .xinitrc:&prompt.user; echo "exec startkde" > ~/.xinitrcТеперь при вызове X Window System по команде
startx в качестве оболочки будет использоваться
KDE.При использовании менеджера дисплеев типа
XDM настройка несколько отличается.
Вместо этого нужно отредактировать файл
.xsession. Указания для
kdm описаны далее в этой главе.Более подробно о KDEТеперь, когда KDE установлена в
системе, можно узнать много нового из её справочных страниц или просто
указанием и щелканьем по различным меню. Пользователи &windows; или
&mac; будут чувствовать себя как дома.Лучшим справочником по KDE является
онлайновая документация. KDE
поставляется с собственным веб-браузером, который называется
Konqueror,
десятками полезных приложений и подробной документацией. В оставшейся
части этого раздела обсуждаются технические вопросы, трудные для
понимания при случайном исследовании.Менеджер дисплеев KDEKDEменеджер дисплеевАдминистратору многопользовательской системы может
потребоваться графический экран для входа пользователей
в систему. Вы можете использовать XDM, как это описано
ранее. Однако в KDE имеется
альтернативный менеджер kdm, который был
разработан более привлекательным и с
большим количеством настраиваемых опций для входа в систему. В
частности, пользователи могут легко выбирать (посредством меню),
какую оболочку (KDE,
GNOME или что-то ещё) запускать после
входа в систему.Для того, чтобы разрешить запуск kdm,
измените в файле /etc/ttys строку, относящуюся
к консоли ttyv8:ttyv8 "/usr/local/bin/kdm -nodaemon" xterm on secureXFceО XFceXFce является графической оболочкой,
построенной на основе инструментального пакета GTK+, используемого в
GNOME, но она гораздо легче и предназначена
для тех, кому нужен простой, эффективно работающий рабочий стол,
который легко использовать и настраивать. Визуально он выглядит
очень похоже на CDE, который есть в
коммерческих &unix;-системах. Вот некоторые из достоинств
XFce:Простой, лёгкий в обращении рабочий столПолностью настраиваемый при помощи мыши, с
интерфейсом drag and drop и так далееГлавная панель похожа на CDE, с
меню, апплетами и возможностями по быстрому запуску
приложенийИнтегрированный оконный менеджер, менеджер файлов,
управление звуком, модуль совместимости с
GNOME и прочееВозможность использования тем (так как использует
GTK+)Быстрый, легкий и эффективный: идеален для
устаревших/слабых машин или для машин с ограниченной
памятьюДополнительную информацию о XFce
можно найти на сайте
XFce.Установка XFceДля XFce имеется (на момент написания
этого текста) бинарный пакет. Для его установки просто
наберите:&prompt.root; pkg_add -r xfce4Либо, в случае построения из исходных текстов, используйте
Коллекцию Портов: &prompt.root; cd /usr/ports/x11-wm/xfce4
&prompt.root; make install cleanТеперь укажите X-серверу на запуск
XFce при следующем
запуске X. Просто наберите:&prompt.user; echo "/usr/local/bin/startxfce4" > ~/.xinitrcПри следующем запуске X в качестве рабочего стола
будет использоваться XFce.
Как сказано выше, если используется
менеджер дисплеев, такой, как XDM, создайте
файл .xsession так, как это
описано в разделе о GNOME, но
с командой /usr/local/bin/startxfce4, либо
настройте менеджер дисплеев так, чтобы он разрешил выбор рабочего
стола во время входа в систему, как это описано в разделе о kdm.