При работе с серверами wu-ftpd и ProFTPD вы можете использовать программы ftpshut (останавливает сервер), ftpwho (выводит информацию о пользователях), ftpcount (сообщает о количестве установленных соединений). Инструментальные средства обоих серверов имеют похожие опции, но вспомогательные программы для ProFTPD выводят больше полезной информации.
Я рекомендую использовать расширенный вывод утилиты ftpwho. В этом режиме предоставляется больше информации (листинг 15.11).
Листинг 15.11. Результат работы программы ftpwho
# ftpwho -v
Master proftpd process 759:
1113 2m55s proftpd: ftp — localhost.localdomain:
anonymous/den@den.com: IDLE
(host: localhost.localdomain [127.0.0.1])
(cwd: /)
1150 0m20s proftpd: den - localhost.localdomain: IDLE
(host: localhost.localdomain [127.0.0.1])
(cwd: /home/den)
Service class - 2 users
15.4. Виртуальный узел FTP
Виртуальный сервер — это сервер, не существующий физически, но представляющийся пользователю как реальный сервер. ОС Linux может поддерживать несколько IP-адресов, благодаря чему имеется возможность создать виртуальные узлы. Если вы располагаете дополнительными IP-адресами, то они как раз могут использоваться для создания виртуальных узлов. При конфигурировании виртуальных FTP-узлов каждому виртуальному узлу нужно присвоить отдельный IP-адрес.
Виртуальные FTP-узлы нужны, если вы, например, хотите организовать несколько узлов FTP — например, для разных рабочих групп и для анонимных пользователей. Обслуживать сразу несколько FTP-узлов позволяет все тот же демон proftpd.
Настройка виртуального FTP-узла очень похожа на настройку виртуального веб-сервера, которая будет рассмотрена в следующей главе. Даже используется одна и та же директива VirtualHost, содержащая IР-адрес или доменное имя, прописанное в службе DNS. IP-адрес должен указывать на узел сети, на котором запущен ProFTPD (см. листинг 15.12).
Листинг 15.12. Пример использования директивы VirtualHost
ServerName "Online library"
MaxClients 15
MaxLoginAttempts 1
DeferWelcome on
Allow from 192.168.1
Deny from all
AllowUser libadmin
DenyAll
User library
Group library
AnonRequirePassword on
User ftp
Group ftp
UserAlias anonymous ftp
В примере 15.12 также конфигурируются две анонимных учетных записи — library и ftp. Причем учетная запись library требует ввода пароля при регистрации. Пароль должен совпадать с паролем того пользователя, который запустил демон. Доступ к виртуальному серверу разрешен только для подсети 192.168.1.0. Записывать данные на сервер может только пользователь libadmin.
15.5. Защита FTP
Очень полезной, особенно, при организации виртуальных узлов, является конфигурационная директива DefaultRoot, позволяющая указать каталог, который представлялся бы пользователям как корневой. Например, значение DefaultRoot "~" настраивает сервер так, чтобы корневым каталогом каждого пользователя был его собственный домашний каталог.
А что делать, если нам нужно, чтобы пользователи видели все дерево файловой системы? Например, чтобы каждый мог посмотреть, в каком каталоге находится та или иная программа. В этом случае целесообразно ограничить действия над файлами в корневом каталоге (точнее, во всех каталогах, кроме домашнего каталога пользователя). Делается это так:
DenyAll
Пример файла конфигурации с использованием директивы DefaultRoot приведен ниже (листинг 15.13):
Листинг 15.13. Пример использования директивы Default Root (/etc/proftpd.conf)
ServerName "My ProFTPD server"
ServerType standalone
DefaultServer on
# Корневым для пользователя будет его домашний каталог
DefaultRoot "~"
# Используем стандартный порт
Port 21
Umask 022
MaxInstances 30
# Пользователь и группа, обслуживающие сервер
User nobody
Group nobody
# Параметры корневого каталога. Блочная директива Directory
# Директива, определяющая параметр AllowOverwrite
AllowOverwrite on
# Чтобы избежать атаки на отказ, нужно установить
# максимальное число клиентов, а также максимальное
# число неудачных попыток регистрации;
MaxClients 10
MaxLoginAttempts 2
# Иногда для взлома злоумышленник пытается использовать
# а качестве оболочки какую-нибудь программу, например,
# "оболочку" rm -R /.
# Обычно эта брешь в защите закрыта, но все же желательно
# требовать использования только законных оболочек:
RequireValidShell on
Глава 16HTTP-сервер Apache
Эта глава посвящена популярному HTTP-серверу Apache. Этот сервер возник из веб-сервера NCSA, разработанного в Национальном центре разработок суперкомпьютеров Иллинойского университета. В 1994 году из проекта NCSA ушел главный разработчик, оставив многих последователей самостоятельно разбираться в своем сервере. Со временем начали появляться исправления и дополнения к серверу NCSA — заплатки (патчи). А в апреле 1995 года вышла первая версия сервера Apache, основанного на версии 1.3 сервера NCSA, которая просто вобрала в себя все известные на тот момент исправления NCSA. Отсюда появилось и само название Apache — «А PatCHy». Позже Apache стал самостоятельной разработкой, и сейчас он поддерживается группой программистов-добровольцев Apache Group.
Сервер Apache разрабатывался для ОС Linux и UNIX, но со временем были выпущены его версии и для ОС Windows и OS/2.
Хочу также отметить, что, кроме Apache, для ОС Linux существуют и другие веб-серверы: Red Hat Secure Server, Apache-SSL, Netscape Enterprise Server и т.д.
16.1. Установка Apache
В зависимости от дистрибутива, пакет, из которого устанавливается веб-сервер Apache, может называться apache или httpd, а пакет с документацией — apache-docs или httpd-manual соответственно. В первом случае вам понадобится установить еще пакет
apache-common
, содержащий необходимые файлы для запуска сервера.После установки сервер конфигурируется для запуска в режиме standalone, то есть он будет постоянно находиться в памяти. Я не рекомендую изменять этот режим. Для запуска и останова сервера Apache вы можете воспользоваться командами:
# /etc/rc.d/init.d/httpd start
# /etc/rc.d/init.d/httpd stop
После успешной установки сервера отредактируйте файл
/etc/httpd/conf/httpd.conf
. В нем исправьте всего одну директиву — ServerName. Значением ее должно быть имя, зарегистрированное в службе DNS вашей сети. После этого запустите сервер. Откройте любой браузер и попробуйте обратиться к серверу с локального компьютера (netscape http://localhost
), а потом с другого компьютера вашей сети (netscape http://server.firma.ru
). Если в обоих случаях вы увидите приветствие сервера (рис. 16.1), значит, ваш сервер Apache
Оглавление
-
Введение
-
Об этой книге
-
Почему Linux?
-
История Linux
-
***
-
Происхождение Linux
-
***
-
***
-
Выбор дистрибутива
-
***
-
***
-
Разное
-
Глава 1 Установка операционной системы
-
1.1. Подготовка жесткого диска
-
1.1.1. Рекомендуемая схема разбиения диска
-
1.1.2. Имена разделов в ОС Linux
-
1.1.3. Разделы и точки монтирования
-
1.2. Загрузка программы установки
-
1.2.1. С использованием загрузочного компакт-диска
-
1.2.2. С использованием загрузочной дискеты
-
1.2.3. С использованием жесткого диска
-
1.2.4. Установка по сети
-
1.3. Установка Fedora Core
-
1.3.1. Описание дистрибутива
-
1.3.2. Особенности установки различных версий Fedora Core
-
1.3.3. Установка загрузчика
-
1.3.4. Продолжение установки
-
1.4. Особенности установки Mandrake 10.0
-
1.5. Проблемы при установке
-
1.5.1. Конфликты Fedora Core 1 и 2 с различным оборудованием
-
1.5.2. Fedora Core: не удается войти в систему как root в графическом режиме
-
1.5.3. Ошибка Signal 11
-
1.5.4. Не определяется мышь
-
1.5.5. Проблемы с переходом в графический режим
-
1.5.6. Проблемы при загрузке
-
1.5.7. Проблемы с графическим экраном загрузчика
-
1.5.8. Не загружается система X Window
-
1.5.9. Я забыл пароль пользователя root
-
1.5.10. У меня больше оперативной памяти!
-
1.5.11. Не работают принтер или звуковая плата
-
1.6. Как удалить Linux
-
1.7. Системы с двойной загрузкой
-
1.7.1. Установка Windows 9x и Linux
-
1.7.2. Установка Windows 9x, Windows NT/2000/XP и Linux
-
1.8. Первый запуск Linux
-
1.9. Стандартные сервисы Linux
-
1.10. Справочная система
-
Глава 2 Файловая система LINUX
-
2.1. Видимая сторона файловой системы
-
2.1.1. Имена файлов и каталогов
-
2.1.2. Назначение основных системных каталогов
-
2.1.3. Типы файлов
-
2.1.4. Команды работы с файлами и каталогами
-
2.2. Изнанка файловой системы
-
2.2.1. Файловая система ext2fs — предшественница ext3fs
-
2.2.2. Журналируемые файловые системы
-
2.3. Создание и монтирование файловых систем
-
Глава 3 Работаем в командной строке
-
3.1. Как устроен Linux: ядро и процессы
-
3.2. Жизнь процесса
-
3.3. Взаимодействие процессов
-
3.3.1. Конвейер (pipe)
-
3.3.2. Сигналы
-
3.4. Командная оболочка. Bash
-
3.4.1. Встроенные команды
-
3.4.2. История команд
-
3.4.3. Переменные
-
3.4.4. Подстановка переменных и команд
-
3.4.5. Шаблоны имен файлов
-
3.4.6. Потоки ввода-вывода
-
3.4.7. Группировка команд
-
3.4.8. Инициализационные файлы bash
-
Глава 4 Рабочее место пользователя
-
4.1. Графическая система X Window
-
4.2. Оконная среда KDE
-
4.2.1. Рабочий стол KDE
-
4.2.2. Запуск программ и переключение между ними
-
4.2.3. Файловый менеджер Konqueror
-
4.2.4. Центр управления KDE
-
4.2.5. Работа со съемными носителями в KDE
-
4.2.6. Добавление собственных команд в контекстное меню KDE
-
4.2.7. Новое в KDE 3.4
-
4.3. Оконная среда GNOME
-
4.3.1. Общее описание и методика работы
-
4.3.2. Добавление собственных команд в контекстное меню GNOME
-
4.3.3. Автоматическая смена обоев
-
4.4. Офисные пакеты
-
4.5. Издательские системы
-
4.6. Графика в Linux
-
4.6.1. Графические редакторы
-
4.6.2. Программы — просмотрщики изображений
-
4.6.3. Как сделать снимок экрана
-
4.7. Полезные трюки
-
Глава 5 Звук и видео в Linux
-
5.1. Почему воспроизведение аудио в Linux лучше, чем в Windows
-
5.2. Прослушивание музыки
-
5.2.1. Сравнение Xmms и NoAtun
-
5.3. «Ограбление» Audio-CD
-
5.4. Программы для просмотра видео
-
5.5. Воспроизведение неподдерживаемых форматов
-
Глава 6 Сеть и интернет
-
6.1. Основные сетевые понятия
-
6.1.1. Протокол и интерфейс
-
6.1.2. Уровни взаимодействия OSI
-
6.1.3. Протокол TCP/IP и IP-адресация
-
6.1.4. DNS — система доменных имен
-
6.1.5. Порты
-
6.1.6. Динамическое выделение адреса
-
6.2. Подключение к локальной сети
-
6.2.1. Настройка сети в Linux Mandrake
-
6.2.2. Настройка сети в Linux Red Hat
-
6.2.3. Настройка сети в Fedora Core
-
6.2.4. Проверка работы сетевого интерфейса
-
6.2.5. Настройка сети в старых дистрибутивах
-
6.3. Подключение к Windows-сети
-
6.4. Подключение к Интернету
-
6.4.1. Настройка модема
-
6.4.2. Подготовка к выходу в Интернет
-
6.4.3. Специальные возможности браузеров
-
6.4.4. Текстовые браузеры
-
6.4.5. Полезный трюк: Что делать, если браузер «подвисает» на какой-то странице
-
6.4.6. Набор программ для работы в Интернете
-
Глава 7 Основы администрирования системы
-
7.1. Что понимается под администрированием системы
-
7.2. Конфигураторы Linux
-
7.3. Пользователи и квоты
-
7.3.1. Учетные записи пользователей
-
7.3.2. Создание и удаление пользователей и групп
-
7.3.3. Квотирование
-
7.4. Подключение и конфигурирование аппаратных устройств
-
7.4.1. Ядро и поддержка устройств
-
7.4.2. Утилиты для работы с модулями
-
7.4.3. Kudzu — утилита для автоматического определения устройств
-
7.4.4. Настройка установленных устройств
-
7.5. Установка программного обеспечения
-
7.5.1. Установка из исходных текстов
-
7.5.2. Установка из бинарных пакетов
-
7.5.3. Установка из пакетов, содержащих исходный код
-
7.6. Клонирование и восстановление системы
-
Глава 8 Язык командного интерпретатора
-
8.1. Параметры
-
8.2. Подстановки
-
8.3. Массивы
-
8.4. Управляющие структуры
-
8.4.1. Условные операторы
-
8.5. Условная подстановка параметров
-
8.6. Функции
-
8.7. Обработка сигналов и протоколирование
-
Глава 9 Управление процессами
-
9.1. Как загружается Linux
-
9.1.1. Начальная загрузка: LILO и GRUB
-
9.1.2. Продолжение загрузки.
-
9.2. Команды управления процессами
-
9.2.1. Иерархия процессов: ps и pstree
-
9.2.2. Информация о ресурсах системы: команды free, df, du
-
9.2.3. Процессы в реальном времени: команда top
-
9.2.4. Приоритет процесса: команды nice и renice
-
9.2.5. Фоновый режим: команды jobs, fg, bg
-
9.3. Протоколирование системы
-
9.3.1. Конфигурационный файл /etc/syslog.conf
-
9.3.2. Сетевое протоколирование
-
9.3.3. Протоколирование ядра. Демон klogd и команда dmesg
-
9.3.4. Что делать с протоколами дальше? Утилита logrotate
-
9.4. Выполнение заданий по расписанию
-
9.4.1. Запуск задания в назначенное время: команда at
-
9.4.2. Диспетчер расписаний — демон cron
-
Глава 10 Резервное копирование и восстановление данных
-
10.1. Восстановление удаленного файла
-
10.1.1. Midnight Commander
-
10.1.2. Утилита debugfs
-
10.2. Стратегия резервного копирования
-
10.3. Оборудование для резервного копирования
-
10.3.1. Стример
-
10.3.2. Магнитооптический диск
-
10.4. Программное обеспечение для резервного копирования
-
10.4.1. Простое резервное копирование по сети
-
10.4.2. Управление стримером
-
10.4.3. Команды dump и restore
-
10.4.4. Архиватор cpio
-
10.4.5. Программа AMANDA
-
10.5. Дублирование данных: введение в RAI D
-
10.6. Как найти, спрятать и безвозвратно уничтожить данные
-
Глава 11 Базовое конфигурирование сервера
-
11.1. Серверные технологии Linux
-
11.2. Организация и состав Linux-сервера
-
11.3. Суперсервер xinetd
-
11.3.1. Установка суперсервера xinetd
-
11.3.2. Настройка суперсервера xinetd
-
11.3.3. Запуск xinetd
-
11.3.3.1. Защита xinetd
-
11.3.3.2. Пример файла конфигурации /etc/xinetd
-
11.4. Удаленный доступ: ssh и telnet
-
11.4.1. Использование telnet
-
11.4.2. Настройка и использование SSH
-
Глава 12 Разделение ресурсов: NFS и SAMBA
-
12.1. NFS — сетевая файловая система
-
12.1.1. Клиент NFS: монтирование сетевого каталога
-
12.1.2. Настройка сервера NFS
-
12.2. Samba: Linux-сервер для Windows-клиентов
-
12.2.1. Samba на сервере
-
12.2.2. Настройка Samba
-
12.2.3. Практические примеры настройки
-
12.2.4. Доступ к принтеру Linux для Windows-машин
-
12.2.5. Доступ к Windows-принтеру с компьютера, работающего под Linux
-
12.2.6. Конфигуратор SWAT
-
12.2.7. Samba и безопасность
-
12.2.8. Оптимизация Samba
-
12.3. Совместное использование каталогов в Linux Mandrake
-
12.4. Программа LinNeighborhood — правильный выбор
-
Глава 13 DNS — служба имен
-
13.1. Введение в DNS
-
13.2. Настройка клиента DNS
-
13.3. Настройка сервера DNS
-
13.3.1. Обновление корневого кэша
-
13.4. Кэширующий сервер DNS
-
13.4.1. Настройка кэширования на DNS-сервере
-
13.4.2. Возможные проблемы и их решение
-
13.5. Вторичный сервер DNS
-
13.6. Просм отр DNS-зоны. Утилита nslookup
-
13.7. Оптимизация настроек сервера DNS
-
13.8. Защита сервера DNS
-
13.8.1. Настройка и запуск DNS-сервера в chroot-окружении
-
13.9. Использование подписей транзакций. Механизм TSIG
-
Глава 14 Почтовый сервер
-
14.1. Установка и настройка sendmail
-
14.1.1. Базовая настройка sendmail
-
14.1.2. Редактирование конфигурационных файлов
-
14.2. Аутентификация в sendmail
-
14.2.1. Установка и настройка SASL
-
14.2.2. Настройка sendmail+SASL
-
14.2.3. Настройка почтовых клиентов с использованием аутентификации
-
14.3. Агент доступа — fetchmail
-
14.4. Автоматическая сортировка входящей почты — программа procmail
-
14.5. Создание списка рассылки
-
14.6. Защита программы sendmail. Программа smrsh
-
Глава 15 Настройка сервера FTP
-
15.1. Сервер WU-FTPD
-
15.1.1. Настройка WU-FTPD. Конфигурационные файлы
-
15.2. Сервер ProFTP
-
15.2.1. Установка и запуск ProFTPD
-
15.2.2. Настройка ProFTPD. Файл /etc/proftpd.conf
-
15.2.3. Разграничение доступа к серверу ProFTP
-
15.3. Утилиты обслуживания FTP-сервера
-
15.4. Виртуальный узел FTP
-
15.5. Защита FTP
-
Глава 16 HTTP-сервер Apache
-
16.1. Установка Apache
-
16.2. Настройка Apache. Файлы конфигурации
-
16.3. Основные настройки. Файл httpd.conf (httpd2.conf)
-
16.3.1. Общие директивы
-
16.3.2. Директивы протоколирования
-
16.3.3. Директивы управления производительностью
-
16.3.4. Директивы обеспечения постоянного соединения с клиентом
-
16.3.5. Директивы создания виртуальных узлов
-
16.3.6. Директивы настройки отображения каталогов
-
16.3.7. Директивы обработки MIME-типов
-
16.3.8. Директивы для работы с многоязычными документами
-
16.3.9. Директивы перенаправления
-
16.3.10. Директивы обработки ошибок
-
16.3.11. Директивы управления доступом к отдельным каталогам
-
16.4. Файл ротации журналов /etc/logrotate.d/httpd
-
16.5. Системный файл конфигурации /etc/sysconfig/httpd
-
16.6. Сценарий запуска сервера Apache /etc/init.d/httpd
-
16.7. Графические конфигураторы Apache
-
16.8. Каталоги пользователей
-
16.9. Виртуальный HTTP-сервер
-
16.9.1. Виртуальные серверы с идентификацией по имени
-
16.9.2. Виртуальные серверы с идентификацией по IP-адресу
-
16.10. SSL и Apache
-
16.10.1. Установка SSL
-
16.10.2. Подключение SSL к Apache
-
16.10.3. Генерирование сертификатов
-
16.11. Пример файла httpd.conf
-
***
-
***
-
***
-
***
-
16.12. Перекодирование русскоязычных документов «на лету»
-
16.12.1. Russian Apache: установка, настройка, использование
-
16.12.2. Настройка перекодировки русскоязычных документов
-
16.13. Защита сервера Apache
-
16.14. Сервер kHTTPd — веб-сервер уровня ядра
-
16.14.1. Настройка kHTTPd
-
Глава 17 Установка и настройка MySQL. Связка Apache + PHP + MySQL
-
17.1. Установка MySQL
-
17.1.1. Назначение пароля суперпользователя
-
17.1.2. Автозапуск сервера MySQL
-
17.1.3. Пользователи сервера MySQL и их права
-
17.2. Клиентская часть MySQL
-
17.3. Установка PHP и настройка связки Apache+PHP+MySQL
-
17.3.1. Первый способ: из пакетов RPM
-
17.3.2. Тестируем созданную конфигурацию
-
17.3.3. Второй способ: из исходных текстов
-
17.4. Защита сервера MySQL
-
17.5. Введение в язык SQL
-
17.5.1. Общие понятия
-
17.5.2. Краткий практический курс SQL
-
Глава 18. Прокси-серверы SQUID и SOCKS
-
18.1. Что такое прокси-сервер?
-
18.2. Установка SQUID
-
18.3. Настройка SQUID
-
18.4. Запуск SQUID
-
18.5. Расширенные настройки SQUID. Конфигурационный файл squid.conf
-
18.5.1. Параметры сети
-
18.5.2. Параметры соседей
-
18.5.3. Управление кэшем
-
18.5.4. Протоколирование
-
18.5.5. Параметры внешних программ
-
18.5.6. Параметры администрирования
-
18.6. Списки ACL
-
18.6.1. Параметры доступа
-
18.7. Отказ от рекламы. Баннерный фильтр
-
18.8. Разделение канала с помощью SQUID
-
18.9. Настройка поддержки прокси у клиентов
-
18.10. Технология SOCKS5, или как использовать аську из локальной сети
-
18.10.1. Введение в SOCKS. Прокси-сервер SOCKS5
-
18.10.2. Настройка сервера SOCKS5
-
18.10.3. Запуск сервера socks5
-
18.10.4. Dante — еще один сервер SOCKS5
-
18.10.5. Настройка клиентов SOCKS5 (ICQ и licq)
-
Глава 19 Маршрутизация и межсетевые экраны
-
19.1. Введение в маршрутизацию
-
19.2. Программы маршрутизации в Linux
-
19.2.1. Демон routed
-
19.2.2. Демон gated — правильный выбор
-
19.3. Расширенные средства маршрутизации. Комплекс iproute2
-
19.3.1. Пакет iproute2
-
19.3.2. Утилита ip
-
19.3.3. Просмотр параметров сетевого устройства
-
19.3.4. Операции над адресами: команда ip address
-
19.3.5. Управление таблицей маршрутизации
-
19.3.6. Динамическая маршрутизация
-
19.3.7. Управление правилами маршрутизации
-
19.4. Что такое брандмауэр
-
19.5. Цепочки правил
-
19.6. IPTables — пакетный фильтр для ядер 2.4.x. и 2.6.x
-
19.6.1. Что изменилось в IPTables по сравнению с IPChains
-
19.6.2. Настройка ядра Linux для поддержки IPTables
-
19.6.3. Первичная настройка IPTables. Задание политики по умолчанию
-
19.6.4. Действия над цепочками
-
19.6.5. Правила фильтрации
-
19.6.6. Фильтрация по отдельным пользователям
-
Глава 20 Настройка ядра
-
20.1. Многообразие ядер Linux
-
20.2. Зачем настраивать ядро?
-
20.3. Динамические параметры ядра
-
20.4. Загрузочные параметры ядра
-
20.4.1. Параметры корневой файловой системы
-
20.4.2. Объем памяти
-
20.4.3. Управление RAMDISK
-
20.4.4. Управление планировщиком ввода/вывода
-
20.4.5. Другие параметры ядра
-
20.5. Компиляция ядра
-
20.5.1. Зачем обновлять ядро?
-
20.5.2. Конфигурирование ядра
-
20.5.2.1. Code maturity level options
-
20.5.2.2. General setup
-
20.5.2.3. Loadable module support
-
20.5.2.4. Processor type and features
-
20.5.2.5. Power Management Options
-
20.5.2.6. Bus Options
-
20.5.2.7. Executable file formats
-
20.5.2.8. Device drivers
-
20.5.2.9. Filesystems
-
20.5.2.10. Kernel hacking
-
20.5.2.11 .Cryptographic options
-
20.5.3.Сборка ядра
-
Глава 21 Создаем консольное приложение
-
21.1. Компилятор gcc
-
21.1.1. Вызов gcc
-
21.1.2. Общие опции
-
21.1.3. Опции языка
-
21.1.4. Опции препроцессора
-
21.1.5. Опции компоновщика
-
21.1.6. Опции каталогов
-
21.1.7. Опции отладки
-
21.1.8. Опции оптимизации
-
21.2. Сборочная утилита make
-
21.3. Пакет binutils и другие полезные программы
-
21.3.1. ansi2knr
-
21.3.2. as
-
21.3.3. bison
-
21.3.4. flex
-
21.3.5. gprof
-
21.3.6. strip
-
21.4. Пример программы на С
-
Глава 22 Отладка, трассировка и оптимизация программ
-
22.1. Ошибки и отладка
-
22.2. Отладчик gdb
-
22.3. Пример отладки программы
-
22.4. Трассировка системных вызовов
-
22.5. Оптимизация программ. Профайлер gprof
-
22.5.1. Использование профайлера
-
22.5.2. Как оптимизировать программу
-
Глава 23 Разработка графического приложения: библиотека GTK+
-
23.1. Введение в GTK+
-
23.2. Библиотека Glib
-
23.2.1. Стандартные типы данных библиотеки Glib
-
23.2.2. Функции для работы с памятью
-
23.2.3. Строки и Glib
-
23.2.4. Списки
-
23.2.5. Таймеры в Glib
-
23.3. Первая программа на GTK+
-
23.3.1. Виджиты
-
23.3.2. Окна
-
23.3.3. Изменение размеров окна
-
23.3.4. Обработка сигналов
-
23.3.5. Виджит событий — EventBox
-
23.4. Виджиты
-
23.4.1. Рождение, смерть и состояния виджита
-
23.4.2. Упаковка виджитов, поля ввода и кнопки
-
23.4.3. Переключатели
-
23.4.4. Список
-
23.4.7. Меню
-
23.4.8. Иерархия виджитов
-
Глава 24 Студия Glade
-
24.1. Что такое Glade?
-
24.2. Знакомство с Glade
-
24.3. Работа с проектом
-
24.4. Создание меню
-
24.5. Интересные виджиты
-
Глава 25 Пакет Dialog
-
25.1. Что такое Dialog?
-
25.2. Сообщения
-
25.3. Виджит Yes-no
-
25.4. Окно ввода текста
-
25.5. Зависимые и независимые переключатели
-
25.6. Организация меню
-
25.7. Календарь
-
25.8. Шкала прогресса
-
Глава 26 Взаимодействие процессов в Linux
-
26.1. Способы взаимодействия
-
26.2. Полудуплексные каналы
-
26.3. Каналы типа FIFO
-
26.4. Основные принципы System V IPC
-
26.5. Очереди сообщений
-
26.5.1. Основные структуры ядра для работы с очередями
-
26.5.2. Создание очереди сообщений
-
26.5.3. Постановка сообщения в очередь
-
26.5.4. Получение сообщений очереди
-
26.5.5. Проверка наличия сообщения в очереди
-
26.5.6. Тотальный контроль
-
26.6. Семафоры
-
26.6.1. Создание множества семафоров
-
26.6.2. Выполнение операций над семафорами
-
26.6.3. Контроль семафора
-
26.7. Разделяемые сегменты памяти
-
Глава 27 Создание сетевого приложения в Linux
-
27.1. Протокол TCP/IP
-
27.1.1. Многоуровневая архитектура стека TCP/IP
-
27.1.1.1. Уровень сетевого интерфейса
-
27.1.1.2. Межсетевой уровень
-
27.1.1.3. Транспортный (основной) уровень
-
27.1.1.4. Уровень приложений
-
27.1.2. Структура пакетов IP и TCP
-
27.2 Протокол ICMP
-
27.2.1. Для чего используется протокол ICMP
-
27.2.2. Структура ICMP-пакета
-
27.2.3. Тип и код ICMP-сообщения
-
27.2.4. Функции для работы с протоколом ICMP
-
27.2.4.1. Технические подробности
-
27.3. Программирование сокетов
-
27.3.1. Что такое сокет?
-
27.3.2. Создание и связывание сокета
-
27.3.3. Установление связи с удаленным компьютером
-
27.3.4. Функция gethostbyname()
-
27.3.5. Функции сетевого ввода/вывода
-
27.3.6. Завершение сеанса связи
-
27.3.7. Программа-сервер
-
27.3.8. Программа-клиент
-
27.3.9. Установка опций сокета
-
27.3.10. Сигналы и сокеты
-
27.3.11. Мультиплексирование
-
27.3.12. Неблокирующие операции
-
Глава 28 Программирование ядра
-
28.1. Каркас модуля
-
28.2. Компиляция модуля
-
28.3. Работа с устройствами
-
28.4. Операции над устройством. Поиск устройств
-
***
-
Приложение Таблицы соответствия Windows- и Linux-программ
-
***
-
***