В этой книге представлены методы программирования в среде Linux, включая системные команды Linux, сценарии оболочки, языки программирования (gawk, Perl), ядро системы, систему безопасности, X Window и т. д. Она богата содержанием и содержит подробное обсуждение. , охватывающий все аспекты системы Linux. Компакт-диск, прилагаемый к этой книге, включает в себя последнюю версию системы RedHat Linux и метод установки, а также большой объем программного кода из этой книги, что значительно облегчает чтение и предоставляет исчерпывающий справочник для технических специалистов, которые используют и будут использовать Linux-системы.
Содержание Предисловие Глава 1 Введение в систему Linux Глава 1 Введение в Linux…1
1.1 Происхождение Linux 1
1.2 Проект GNU 1 Фонда свободного программного обеспечения
1.3 Произношение Linux 2
1.4 Особенности Linux 2
1.5 Основные требования к оборудованию 3
1.6 Как получить Linux 3
1.6.1 Загрузите Linux 3 из Интернета
1.6.2 Получение Linux 3 с компакт-диска
1.7 Веб-сайты и дискуссионные группы, посвященные Linux, 6
1.8 Недостатки Linux 7
Глава 2. Оболочка и общие команды 8
2.1 Вход и выход8
2.2 Оболочка системы Linux 8
2.3 Общие команды оболочки 9
2.3.1 Изменение пароля учетной записи 9
2.3.2 Онлайн-помощь 9
2.3.3 Удаленный вход 9
2.3.4 Обработка файлов или каталогов 9
2.3.5 Изменение рабочего каталога 10
2.3.6 Копирование файла 10
2.3.7 Перемещение или изменение имен файлов и каталогов 10
2.3.8 Создайте новый каталог10
2.3.9 Удаление каталога 11
2.3.10 Удаление файлов 11
2.3.11 Список текущего местоположения каталога 11
2.3.12 Просмотр содержимого файла 11
2.3.13 Просмотр содержимого файла по страницам 11
2.3.14 Проверка места на диске, занимаемого каталогом 11
2.3.15 Передача файлов 11
2.3.16 Установка прав доступа к файлам 12
2.3.17 Проверьте название рабочей группы, к которой вы принадлежите13
2.3.18 Изменение владельца файла или каталога в рабочей группе 13
2.3.19 Изменение времени последнего изменения файла или каталога13
2.3.20 Ссылки на файлы 13
2.3.21 Поиск строк в файлах 14
2.3.22 Поиск пути к файлу или команде 14
2.3.23 Сравнение содержимого файлов или каталогов14
2.3.24 Распечатка файла 14
2.3.25 Печать общих документов 14
2.3.26 Печать файлов troff 14
2.3.27 Команда управления принтером 14
2.3.28 Управление процессом 15
2.3.29 Переменная оболочки 16
2.3.30 Переменные среды 16
2.3.31 Псевдоним 16
2.3.32 Исторические команды 17
2.3.33 Сжатие файлов 17
2.3.34 Использование команд конвейера 17
2.3.35 Управление вводом/выводом 18
2.3.36 Просмотр пользователей в системе 18
2.3.37 Изменение имени пользователя18
2.3.38 Просмотр имени пользователя 18
2.3.39 Просмотр пользователей всех рабочих станций в текущей системе 19
2.3.40 Общение с пользователем на рабочей станции 19
2.3.41 Проверка работоспособности удаленной системы 19
2.3.42 Знакомство с использованием электронной почты 19
Глава 3. Сетевые функции систем Linux 21
3.1 Сетевые протоколы, поддерживаемые Linux 21
3.1.1 TCP/IP 21
3.1.2 TCP/IP версии 6 21
3.1.3 IPX/SPX 21
3.1.4 Пакет протоколов AppleTalk 21
3.1.5 Глобальная сеть 22
3.1.6 ЦСИС 22
3.1.7 PPP, SLIP и PLIP 22
3.1.8 Любительское радио 22
3.1.9 Банкомат 22
3.2 Общий доступ к файлам и принтерам в системе Linux 22
3.2.1 Среда Machintosh 22
3.2.2 Среда Windows 22
3.2.3 Среда Novell 23
3.2.4 Среда UNIX 23
3.3 Функции Интернета/Интранета в системах Linux 23
3.3.1 Электронная почта 23
3.3.2 Веб-сервер 24
3.3.3 Веб-браузер 24
3.3.4 FTP-сервер и клиент 24
3.3.5 Служба новостей 24
3.3.6 Система доменных имен 24
3.3.7 DHCP и bootp 24
3.3.8 24 шекеля
3.4 Удаленное выполнение приложений в системе Linux 24
3.4.1 Телнет 25
3.4.2 Дистанционные команды 25
3.4.3 X-окно 25
3.5 Функция сетевого соединения системы Linux 25
3.5.1 Маршрутизатор 25
3.5.2 Мост 25
3.5.3 Маскарад IP 25
3.5.4 IP-статистика 26
3.5.5 IP-псевдонимы 26
3.5.6 Ограничитель потока 26
3.5.7 Брандмауэр 26
3.5.8 Загрузка порта 26
3.5.9 Балансировка нагрузки 26
3.5.10 УКВ 27
3.5.11 Прокси-сервер 27
3.5.12 Звонок по требованию 27
3.5.13 Каналы, мобильный IP и виртуальные персональные сети 27
3.6 Управление сетью в системах Linux 27
3.6.1 Приложения управления сетью в системе Linux 27
3.6.2 SNMP 28
3.7 Корпоративная сеть Linux 28
3.7.1 Высокая доступность 28
3.7.2 Рейд 28
3.7.3 Резервные сети 28
Глава 4. Введение в управление системой Linux 29
4.1 корневая учетная запись 29
4.2 Запуск и выключение системы 29
4.2.1 Загрузка с дискеты 29
4.2.2 Начиная с LILO 29
4.2.3 Завершение работы системы Linux 30
4.3 Монтирование файловой системы 30
4.3.1 Установка дискеты 30
4.3.2 Создание новой файловой системы 30
4.3.3 Размонтирование файловой системы 31
4.4 Проверка файловой системы 31
4.5 Использование файлов в качестве областей подкачки 31
4.6 Резервное копирование системы и файлов 32
4.7 Настройка системы 33
4.7.1 Установка имени системы 33
4.7.2 Использование диска обслуживания 33
4.7.3 Сброс пароля учетной записи root 33
4.7.4 Установка данных для входа 33
Часть 2 Язык высокого уровня для Linux и программирование управления Глава 5 Программирование в командной оболочке 35
5.1 Создание и запуск оболочек 35
5.1.1 Создание оболочки 35
5.1.2 Запуск оболочки 35
5.2 Использование переменных оболочки36
5.2.1 Присвоение значений переменным 36
5.2.2 Чтение значения переменной 37
5.2.3 Позиционные переменные и другие системные переменные 37
5.2.4 Роль кавычек 37
5.3 Команды числовых операций 38
5.4 Условное выражение 40
5.4.1 если выражение 40
5.4.2 Выражение случая 41
5.5 Оператор цикла 42
5.5.1 к заявлению 43
5.5.2, а оператор 43
5.5.3 до утверждения 44
5.6 команда переключения 44
5.7 оператор выбора 45
5.8 повторить утверждение 46
5.9 Подфункция 46
Глава 6. Программирование на языке gawk 48
6.1 Основные функции gawk 48
6.2 Как выполнить программу gawk 48
6.3 Файлы, записи и поля 48
6.4 Шаблоны и действия 49
6.5 Операции сравнения и числовые операции 50
6.6 Внутренние функции 50
6.6.1 Случайные числа и математические функции 51
6.6.2 Внутренние функции строки 51
6.6.3 Внутренние функции ввода и вывода 52
6.7 Строки и числа52
6.8 Форматированный вывод 52
6.9 Изменение разделителей полей 54
6.10 Метасимволы 54
6.11 Вызов программы gawk 55
6.12 НАЧАЛО и КОНЕЦ 55
6.13 Переменная 56
6.14 Встроенные переменные 56
6.15 Структура управления 57
6.15.1 если выражение 57
6.15.2 цикл while 57
6.15.3 для контура 58
6.15.4 далее и выход 58
6.16 Массив 58
6.17 Пользовательские функции 58
6.18 Несколько примеров 59
Глава 7 Программирование на языке Perl 60
7.1 Что такое Perl 60
7.2 Текущий статус Perl 60
7.3 Первая попытка использования Perl 60
7.4 Переменные Perl 60
7.4.1 Скаляр 60
7.4.2 Массив 63
7.4.3 Связанные массивы 65
7.5 Дескрипторы файлов и файловые операции 65
7.6 Структура цикла 66
7.6.1 цикл foreach 66
7.6.2 Операция принятия решения 66
7.6.3 для цикла 67
7.6.4 Циклы while и до 67
7.7 Условная структура 67
7.8 Сопоставление символов 68
7.9 Замена и перевод 69
7.9.1 Замена 69
7.9.2 Трансляция 70
7.10 Подпроцесс 70
7.10.1 Определение подпроцесса 70
7.10.2 Параметр 70
7.10.3 Возвращаемое значение 70
7.11 Полный пример программы Perl 71
Часть 3 Анализ ядра системы Linux Глава 8 Введение в ядро Linux 73
8.1 Инициализация системы 73
8.2 Работа системы 73
8.3 Различные системные вызовы, предоставляемые ядром 74
8.3.1 Основные понятия о процессах и основные структуры данных системы 74
8.3.2 Создание и уничтожение процессов 74
8.3.3 Выполнение программы 74
8.4 Доступ к файловым системам 75
Глава 9 Системные процессы 76
9.1 Что такое процесс 76
9.2 Структура процессов 76
9.3 Планирование процессов 78
9.4 Файлы, используемые процессами 79
9.5 Виртуальная память, используемая процессами 80
9.6 Создание процессов 81
9.7 Время процесса и таймеры 81
9.7.1 Часы реального времени 81
9.7.2 Виртуальные часы 81
9.7.3 Часы изображения 81
9.8 Выполнение программы 82
9.8.1 Файлы ELF 82
9.8.2 Файлы сценариев 82
Глава 10 Управление памятью 83
10.1 Роль управления памятью 83
10.2 Абстрактная модель виртуальной памяти 83
10.3 Загрузка страниц по требованию 84
10.4 Обмен 85
10.5 Общая виртуальная память 85
10.6 Контроль доступа 85
10.7 Кэширование 86
10.7.1 Буферный кэш 86
10.7.2 Кэш страниц 86
10.7.3 Кэш подкачки 86
10.7.4 Аппаратный кэш 86
10.8 Таблица системных страниц 86
10.9 Распределение и освобождение страниц 87
10.9.1 Распределение страниц 88
10.9.2 Выпуск страниц 88
10.10 Отображение памяти 88
10.11 Пейджинг запроса 89
10.12 Кэширование страниц 89
10.13 Демон подкачки ядра 90
Глава 11 Межпроцессное взаимодействие 91
11.1 Механизм сигнализации 91
11.2 Трубопроводный механизм 92
11.3 Механизм IPC System V 93
11.3.1 Очередь сообщений 93
11.3.2 Семафоры 94
11.3.3 Общая память 96
Глава 12 PCI 98
12.1 Система PCI 98
12.2 Адресное пространство PCI 98
12.3 Заголовок настройки PCI 99
12.4 Ввод-вывод PCI и адрес памяти PCI 100
12.5 Мост PCI-ISA 100
12.6 Мост PCI-PCI 100
12.7 Инициализация PCI 101
12.7.1 Структура данных ядра системы Linux, связанная с PCI 101
12.7.2 Драйверы устройств PCI 102
12.7.3 Функции PCI BIOS 105
12.7.4 Исправление PCI 105
Глава 13 Прерывания и их обработка 106
13.1 Прерывания 106
13.2 Программируемый контроллер прерываний 106
13.3 Инициализация структуры данных для обработки прерываний 107
13.4 Обработка прерываний 108
Глава 14 Драйверы устройств 109
14.1 Управление аппаратными устройствами 109
14.2 Опрос и прерывания 110
14.3 Прямой доступ к памяти 110
14.4 Память 111
14.5 Интерфейс между драйвером устройства и ядром 111
14.5.1 Символьные устройства 112
14.5.2 Блочные устройства 113
14.6 Жесткий диск 113
14.6.1 Жесткий диск IDE 115
14.6.2 Инициализация подсистемы жесткого диска IDE 115
14.6.3 Жесткий диск SCSI 115
14.6.4 Инициализация дисковой подсистемы SCSI 116
14.6.5 Передача запросов блочного устройства 118
14.7 Сетевое оборудование 118
14.7.1 Имя файла сетевого устройства 118
14.7.2 Информация об автобусе 118
14.7.3 Теги сетевого интерфейса 119
14.7.4 Информация протокола 119
14.7.5 Инициализация сетевых устройств 119
Глава 15 Файловые системы 121
15.1 Обзор файловой системы Linux 121
15.2 файловая система ext2 122
15.2.1 Индексный узел ext2 122
15.2.2 суперблок ext2 124
15.2.3 Дескриптор группы блоков данных ext2 124
15.2.4 Каталоги в ext2 125
15.2.5 Поиск файлов в файловой системе ext2 125
15.2.6 Изменение размера файлов в файловой системе ext2 126
15.3 ВФС 127
15.3.1 Суперблок 128 VFS
15.3.2 Индекс 129 VFS
15.3.3 Регистрация файловой системы 129
15.3.4 Монтирование файловой системы 130
15.3.5 Поиск файлов в VFS 131
15.3.6 Удаление файловой системы 131
15.3.7 Кэш индексного дескриптора VFS 132
15.3.8 Кэширование каталога VFS 132
15.4 Буферное кэширование 133
15.5 /proc файловая система 135
Глава 16 Сетевые системы 136
16.1 Введение в сеть TCP/IP 136
16.2 Уровни сетей TCP/IP 137
16.3 Сокеты BSD 138
16.4 Уровень сокета INET 140
16.4.1 Создание сокета BSD 141
16.4.2 Указание адреса для сокета INET BSD 141
16.4.3 Создание соединений на сокетах INET BSD 142
16.4.4 Прослушивание сокета INET BSD 142
16.4.5 Получение запросов на соединение 143
16.5 Уровень IP 143
16.5.1 Буфер сокетов 143
16.5.2 Получение IP-пакетов 144
16.5.3 Отправка IP-пакетов 144
16.5.4 Фрагментация данных 144
16.6 Протокол разрешения адресов 145
Глава 17. Механизм ядра системы 147
17.1 Обработка нижней половины 147
17.2 Очередь задач 148
17.3 Таймеры 149
17.4 Очередь ожидания 149
17.5 Семафор 150
Часть 4. Расширенное программирование систем Linux Глава 18. Программирование модулей ядра Linux 151
18.1 Простая программа Hello World 151
18.2 Файлы устройства 152
18.3 /proc файловая система 156
18.4 Использование /proc для ввода 158
18.5 Обмен файлами устройства 162
18.6 Параметры запуска 169
18.7 Системные вызовы 170
18.8 Процессы блокировки 172
18.9 Замена печати 177
18.10 Планирование задач 178
Глава 19. Программирование для связи процессов 181
19.1 Введение в межпроцессное взаимодействие 181
19.2 Полудуплексные каналы UNIX 181
19.2.1 Основные понятия 181
19.2.2 Создание конвейеров с использованием языка C 182
19.2.3 Простой способ создания конвейера 185
19.2.4 Автоматизация с использованием труб 187
19.2.5 На что следует обратить внимание при использовании полудуплексных каналов 188
19.3 Именованные каналы 188
19.3.1 Основные понятия 188
19.3.2 Создание ФИФО 188
19.3.3 Операция FIFO 189
19.3.4 Блокировка FIFO 190
19.3.5 Сигнал SIGPIPE 190
19.4 Система V МПК 190
19.4.1 Основные понятия 190
19.4.2 Основные понятия очереди сообщений 191
19.4.3 Системный вызов msgget() 194
19.4.4 Системный вызов msgsnd() 195
19.4.5 Системный вызов msgctl() 197
19.4.6 Экземпляр msgtool 199
19.5 Программирование с использованием семафоров 201
19.5.1 Основные понятия 201
19.5.2 Системный вызов semget() 202
19.5.3 Системный вызов semop() 203
19.5.4 Системный вызов semctl() 204
19.5.5 Примеры использования наборов семафоров: semtool 205
19.6 Общая память 209
19.6.1 Основные понятия 209
19.6.2 Внутренняя структура пользовательских данных системы
shmid_ds 209
19.6.3 Системный вызов shmget() 210
19.6.4 Системный вызов shmat() 211
19.6.5 Системный вызов shmctl() 211
19.6.6 Системный вызов shmdt() 212
19.6.7 Примеры использования общей памяти: shmtool 212
Глава 20. Расширенное многопоточное программирование 215
20.1 Понятие и использование потоков 215
20.2 Простой пример 215
20.3 Синхронизация потоков 217
20.4 Использование координатора семафоров 218
20.5 Реализация семафора 220
20.5.1 Семафор.h 220
20.5.2 Семафор.c 221
Глава 21. Системное сетевое программирование Linux 225
21.1 Что такое розетка 225
21.2 Два типа интернет-розеток 225
21.3 Уровни сетевых протоколов 225
21.4 Структуры данных 225
21.5 IP-адреса и как они используются 226
21.5.1 сокет() 226
21.5.2 привязка() 226
21.5.3 подключение() 227
21.5.4 прослушивание() 228
21.5.5 принять() 228
21.5.6 send() и Recv() 229
21.5.7 sendto() и Recvfrom() 230
21.5.8 закрытие() и выключение() 230
21.5.9 getpeername() 231
21.5.10 gethostname() 231
21.6 DNS 231
21.7 Модель клиент/сервер 232
21.8 Простая программа сервера потоковой передачи данных 232
21.9 Простая клиентская программа потоковой передачи 234
21.10 Датаграммный сокет 235
21.11 Блокировка 237
Глава 22. Программирование портов ввода-вывода в Linux 240
22.1 Как использовать порт ввода-вывода 240 на языке C
22.1.1 Общие методы 240
22.1.2 Другая альтернатива: /dev/port 241.
22.2 Аппаратные прерывания и доступ по DMA 241
22.3 Высокоточное время 241
22.3.1 Время задержки 241
22.3.2 Измерение времени 243
22.4 Использование других языков программирования 243
22.5 Некоторые полезные порты ввода-вывода 243
22.5.1 Параллельный порт 243
22.5.2 Игровой порт 244
22.5.3 Последовательный порт 245
Часть 5 Анализ безопасности системы Linux Глава 23 Безопасность системного администратора 247
23.1 Управление безопасностью 247
23.2 Суперпользователь 247
23.3 Безопасность файловой системы 247
23.3.1 Обзор файловой системы Linux 247
23.3.2 Файлы устройства 248
23.3.3 /etc/mknod команда 249
23.3.4 Соображения безопасности 249
23.3.5 найти команду 250
23.3.6 безопасная программа 250
23.3.7 команда ncheck 250
23.3.8 Установка и удаление файловых систем 250
23.3.9 Системные каталоги и файлы 251
23.4 Программы, работающие под root 251
23.4.1 Запуск системы 251
23.4.2 процесс инициализации 251
23.4.3 Вход в многопользовательский режим 252
23.4.4 команда выключения 252
23.4.5 Программа cron System V 252
23.4.6 программы cron после System V версии 252
23.4.7 /etc/профиль 253
23.5 файл /etc/passwd 253
23.5.1 Срок действия пароля 253
23.5.2 UID и GID 254
23.6 /etc/групповой файл 254
23.7 Добавление, удаление и перемещение пользователей 254
23.7.1 Добавление пользователей 254
23.7.2 Удаление пользователя 255
23.7.3 Перемещение пользователей в другую систему 255
23.8 Проверка безопасности 255
23.8.1 Бухгалтерский учет 255
23.8.2 Другие команды проверки 256
23.8.3 Проблемы с процедурами проверки безопасности 256
23.8.4 Что делать после утечки в системе 257
23.9 Ограниченные среды 258
23.9.1 Ограниченные приложения 258
23.9.2 Использование chroot() для ограничения пользователей 258
23.10 Безопасность малых систем 259
23.11 Физическая безопасность 259
23.12 Осведомленность пользователей 260
23.13 Информированность системного администратора 261
23.13.1 Обеспечение безопасности личных логинов системных администраторов 261
23.13.2 Обеспечение безопасности систем 261
Глава 24 Безопасность системного программиста 263
24.1 Системные подпрограммы 263
24.1.1 Подпрограммы ввода/вывода 263
24.1.2 Управление процессом 263
24.1.3 Атрибуты файла 264
24.1.4 Обработка UID и GID 265
24.2 Стандартная библиотека C 265
24.2.1 Стандартный ввод/вывод 265
24.2.2 Обработка /etc/passwd 266
24.2.3 Обработка /etc/group 267
24.2.4 Подпрограмма шифрования 268
24.2.5 Запуск оболочки 268
24.3 Написание безопасных программ на языке C 268
24.3.1 Вопросы безопасности, которые следует учитывать268
24.3.2 Руководящие принципы программы SUID/SGID 269
24.3.3 Способы компиляции и установки программ SUID/SGID 269
24.4 Разработка программы пользователя root 270
Глава 25 Сетевая безопасность систем Linux 272
25.1 Обзор системы UUCP 272
25.1.1 Команды UUCP 272
25.1.2 команды uux 272
25.1.3 программа uucico 273
25.1.4 программа uuxqt 273
25.2 Проблемы безопасности UUCP 273
25.2.1 Файл ПОЛЬЗОВАТЕЛЬСКОГО ФАЙЛА 273
25.2.2 Файл L.cmds 274
25.2.3 вход в uucp 274
25.2.4 Файлы и каталоги, используемые uucp 274
25.3 ХОНЕЙДАНБЕР UUCP 275
25.3.1 Различия между HONEYDANBER UUCP и старым UUCP 275
25.3.2 Правила имени пользователя 276
25.3.3 МАШИННЫЕ правила 277
25.3.4 Объединение MACHINE и LOGNAME
Правило 278
25.3.5 команда uucheck 278
25.3.6 Шлюз 278
25.3.7 Проверка файла входа 279
25.4 Другие сети 279
25.4.1 Вход в систему удаленного задания 279
25.4.2 Сетевая система НБК 280
25.5 Безопасность связи 280
25.5.1 Физическая безопасность 280
25.5.2 Шифрование 281
25.5.3 Аутентификация личности пользователя 282
25.6 Сетевая безопасность системы SUN OS 283
25.6.1 Защита NFS 283
25.6.2 Недостатки безопасности NFS 284
25.6.3 Аутентификация вызова удаленной процедуры 284
25.6.4 Механизм аутентификации Linux 284
25.6.5 Система аутентификации DES 285
25.6.6 Кодирование общедоступных ключевых слов 286
25.6.7 Именование сетевых объектов 286
25.6.8 Применение системы идентификации DES 287
25.6.9 Остающиеся проблемы безопасности 287
25.6.10 Производительность 288
25.6.11 Проблемы, вызванные программами запуска и установки 288
25.6.12 Резюме 289
Глава 26. Безопасность пользователей систем Linux 290
26.1 Безопасность пароля 290
26.2 Права доступа к файлам 290
26.3 Лицензирование каталогов 291
26.4 команда umask 291
26.5 Установка разрешений для идентификатора пользователя и идентификатора группы пользователей 291
26.6 команды cp mv ln и cpio 291
26.7 команды su и newgrp 292
26.7.1 команда su 292
26.7.2 команда newgrp 292
26.8 Шифрование файлов 292
26.9 Другие вопросы безопасности 293
26.9.1 Файл профиля пользователя 293
26.9.2 лс-а 293
26.9.3 Файлы .exrc 293
26.9.4 Временные файлы и каталоги 293
26.9.5 UUCP и другие сети 293
26.9.6 Троянский конь 294
26.9.7 Приманка 294
26.9.8 Компьютерные вирусы 294
26.9.9 Для выхода из терминала необходимо войти в систему294
26.9.10 Интеллектуальный терминал 294
26.9.11 Отключение от системы 294
26.9.12 команда у.е. 295
26.10 Советы по обеспечению безопасности вашей учетной записи 295
Часть шестая: Внутренняя структура и использование X Window System Глава 27. Базовые знания о X Window System 297
27.1 Введение в систему X Window 297
27.1.1 Характеристики X 297
27.1.2 Что такое оконная система 298
27.1.3 История развития X 299
27.1.4 Произведение X 299
27.1.5 X 299 выпущен MIT
27.2 Базовая структура X 302
27.2.1 Основные элементы X 303
27.2.2 Как взаимодействуют и общаются сервисные и клиентские программы 304
27.2.3 Обзор сети X 306
27.3 Обзор X 307 с точки зрения пользовательского интерфейса
27.3.1 Интерфейс управления: Диспетчер окон 307
27.3.2 Интерфейсы приложений и наборы инструментов 309
27.3.3 Другие взгляды на систему 309
27.4 Терминология и обозначения 310
27.4.1 Терминология 310
27.4.2 Символы 311
27.5 Запуск и выключение X 312
27.5.1 Запуск X 312
27.5.2 Способы выполнения программы X 313
27.5.3 Закрыть X 314
27.6 Основы оконного менеджера — uwm 315
27.6.1 Что такое оконный менеджер315
27.6.2 Запуск uwm 315
27.6.3 Основные операции с окнами — uwm
Меню 315
27.6.4 Перемещение окон 316
27.6.5 Изменение размера окон 316
27.6.6 Создание нового окна 316
27.6.7 Управление пространством экрана 318
27.6.8 Прерывание приложения Windows 320
27.6.9 Другие способы активации uwm меню 320
27.7 Сетевые устройства, использующие x 320
27.7.1 Укажите удаленный терминал — отображение
Вариант 321
27.7.2 Практическое использование выносных дисплеев 322
27.7.3 Управление мониторами доступа — xhost 322
27.8 Эмулятор терминала — подробное введение в xterm 323
27.8.1 Выбор функций xterm — параметры меню и командной строки 323
27.8.2 Прокрутка экрана xterm 324
27.8.3 Запись процесса взаимодействия с терминалом — запись записей 325
27.8.4 Вырезание текста 325
27.8.5 Использование функций моделирования Tektronix 326
27.8.6 Использование разных шрифтов 327
27.8.7 Использование цвета 327
27.8.8 Другие опции xterm 327
27.8.9 Настройка клавиатуры терминала 328
Глава 28 Утилиты и инструменты 329
28.1 Коммунальные услуги 329
28.2 Сохранение, отображение и печать изображений экрана 330
28.3 Приложения, использующие X 332
28.3.1 Текстовый редактор — Xedit 333
28.3.2 Системы почты/сообщений — xmh 336
28.4 Примеры и игровые программы 336
28.4.1 Поиск пути через случайный лабиринт — лабиринт 336
28.4.2 Большой глаз, служащий указателем мыши —
глаза 336
28.4.3 Настольная игра «Мудрость» — головоломка 337
28.4.4. Напечатайте большой логотип X — xlogo 337.
28.4.5 Прыгающий многогранник — ico 337
28.4.6 Динамические геометрические узоры – измельчитель и
плед 337
28.7 Программы для отображения информации и статуса 337
28.7.1 Перечислите характеристики программ службы X:
xdpyinfo 338
28.7.2 Получение информации об окне 338
28.7.3 Наблюдение события X—xev 340
Глава 29 Настройка системы X Window 341
29.1 Использование шрифтов и цветов X 341
29.1.1 Предварительные шрифты 341
29.1.2 Именование шрифтов 342
29.1.3 Просмотр содержимого определенного шрифта — xfd 343
29.1.4 Сохранение шрифтов и позиций 343
29.1.5 Пример: добавление нового шрифта в вашу сервисную программу 345
29.1.6 Использование цвета X 346
29.2 Определение и использование графики 347
29.2.1 Библиотека системной графики 347
29.2.2 Интерактивное редактирование графики — растровое изображение 347
29.2.3 Другие способы редактирования графики 349
29.2.4 Настройка корневого окна — xsetroot 349
29.3 Определение параметров приложения по умолчанию —
Ресурсы 350
29.3.1 Что такое ресурсы350
29.3.2 XToolkit 351
29.3.3 Управление ресурсами — Менеджер ресурсов 353
29.3.4 Типы ресурсов — как указать значения 358
29.4 Фактическое использование ресурсов 359
29.4.1 Где сохранить значения по умолчанию для ресурсов 359
29.4.2 Сохранение значений по умолчанию в сервисных программах—
хрдб 363
29.4.3 Распространенные ошибки и исправления 366
29.5 Настройка клавиатуры и мыши 367
29.5.1 Практическое использование преобразований 368
29.5.2 Преобразование — форматы и правила 374
29.5.3 Общие проблемы в спецификациях преобразования 377
29.6 Клавиатура и мышь — соответствия и параметры 379
29.6.1 Сопоставление клавиатуры и мыши — xmodmap 379
29.6.2 Настройки параметров клавиатуры и мыши — xset 382
29.7 Дальнейшее знакомство и настройка uwm 384
29.7.1 Новые возможности uwm 384
29.7.2 Настройка uwm 386
29.8 Диспетчер дисплея — xdm 390
29.8.1 Что необходимо сделать 390
29.8.2 хдм 391
29.8.3 Дополнительная информация о xdm 392
29.8.4 Конфигурация uwm 395
Приложение A. Введение в использование Gcc 396
Приложение Б. Установка оконной системы X Window 410
Расширять