Настройка ядра
20.1. Многообразие ядер Linux
В дереве развития ядер Linux достаточно много веток. И хотя в большинстве случаев придерживаются официальных версий ядер (ветка 2.6.x), упускать из внимания все остальные ни в коем случае нельзя.
2.6.xЭто главная ветка ядер Linux на настоящий момент, которую принято считать официальной и которая поддерживается самим Линусом Торвальдсом. Политика этой ветки более либеральна по сравнению с политикой ветки 2.4: в нее включаются не только исправления багов, но и такие изменения, для которых раньше заводили отдельную, экспериментальную, ветку. Все ядра этой ветки можно найти на сайте
www.kernel.org
.2.4.xВ свое время ядра 2.4.x были основными — они встраивались во все дистрибутивы. Однако им на смену пришли ядра 2.6.x, и о ядрах классической ветки не стоило бы говорить, если бы не их исключительная стабильность (по сравнению с ядрами 2.6.x). И хотя они не обладают многими достоинствами и качествами 2.6.x, для тех, кому важна стабильность — они еще служат хорошую службу.
Более того, даже в некоторые современные дистрибутивы еще встраивается эти ядра (например, в Slackware 10.1). На сегодняшний момент эта ветка по прежнему очень активно поддерживается, а руководит данным процессом Марсело Тосатти, очень молодой программист бразильской компании Conectiva.
В качестве обновлений выступают исправления обнаруженных ошибок, ну и периодически — новые драйвера.
Так же как и ядра 2.6.x, ядра ветки 2.4.x. можно получить на сайте
www.kernel.org
.2.6.x.уВыше было сказано, что ядра ветки 2.6.x не отличаются особой стабильностью по сравнению с теми же 2.4.x. Даже были намерения сменить схему именования новых ядер. Однако этого не произошло, просто создали дополнительную ветку, которая выступает под грифом «stable» (то бишь стабильная), и которая известна под именем 2.6.x.у.
Ведут ветку -stable товарищи по имени Грег Кроа-Хартман и Крис Райт. В ней появляются только те обновления, которые непосредственно касаются повышения стабильности ядра и решают конкретные проблемы. Никакие обновления с новыми функциональными возможностями и т.п. в ядра этой ветки не вносятся.
2.6.x-mmЕсли в предыдущем разделе мы рассмотрели наиболее стабильную ветку ядер Linux поколения 2.6, ветку 2.6.x-mm можно считать наименее стабильной. Она включает в себя все возможные патчи ядра, которые были выпущены.
Данная ветка является скорее экспериментальной, нежели имеющей практическое значение. Очень многое к Линусу в его ветку 2.6.x попадает именно через фильтр 2.6.x-mm. В частности сейчас в этих ядрах уже имеется поддержка файловой системы Reiser4, которая с легкостью выигрывает все тесты по производительности, и технологии FUSE (http://fuse.sourceforge.net). реализующей поддержку файловых систем в пользовательском пространстве.
Ведет ветку Эндрю Мортон, а патчи ветки доступны в двух видах:
♦ «все в одном» — единый мегапатч;
♦ «каждый сам по себе» — архив патчей, которые можно применять по отдельности.
Скачать их можно по адресу http://kernel.org/patchtypes/mm.html,
2.6.x-mm-jediВетка 2.6.x-mm-jedi является, как это можно понять из названия, ответвлением 2.6.x-mm. И по сути считается stable-версией последней. Здесь собираются самые критичные исправления по различным версиям ядер 2.6.x-mm.
Доступ к данным патчам можно получить по адресу ftp://ftp.c9x.org/pub/linux-kernel.
2.6.x-pre и 2.6.x-rcЯдра этих веток представляют собой предварительные версии ядер, которые впоследствии должны стать официальными. При этом принято считать, что ядра -pre являются наиболее «сырыми» и в них могут быть привнесены существенные изменения, а ядра -rc — уже более-менее стабильными.
2.6.x-tinyАвтор и ведущий данной ветки, Мэтт Мэколл, поставил себе задачу минимизировать занимаемые ядром дисковое пространство и объем памяти. Автор утверждает, что его ядро может быть запущено даже на машине с 2 Мб памяти.
Детально ознакомиться с этим направлением и получить само ядро можно на сайте http://selentic.com/tiny.
2.6.x-acЭта ветка, ведомая Аланом Коксом, призвана аккумулировать все исправления и патчи, касающиеся в основном драйверов. Кстати говоря именно это ядро используется в дистрибутивах Fedora Core.
Проект доступен по адресу http://kernel.org/patchtypes/ac.html
ПрочиеСреди прочих следует также отметить:
♦2.6.x-ck — в этой ветке аккумулируются патчи к диспетчерам ввода/вывода, а также направленные на общее повышение отзывчивости системы. Адрес: http://ck.kolivas.org/patches/2.6.
♦2.6.x-RT — данная ветка направлена на обеспечение использования Linux в системах реального времени (мягкого и жесткого), насколько это вообще возможно сделать применительно к Linux.
20.2. Зачем настраивать ядро?
В главе 7 я уже говорил о том, что в обязанности ядра ОС Linux входит не только реализация концепций процессов, виртуальной памяти, файловой системы и тому подобных составляющих UNIX, но и организация взаимодействия с оборудованием компьютера. Это взаимодействие осуществляют драйверы устройств, которые в современных (выше 2.0) ядрах могут как встраиваться в ядро статически, так и подключаться в виде модулей.
Хорошо известно, как многочисленно и разнообразно оборудование персональных компьютеров, на которых и работает ОС Linux, Ядро должно уметь адаптироваться к любой аппаратной среде. Этой цели служат параметры ядра — динамические или сообщаемые ему при загрузке — и механизм динамического подключения модулей.
Производители дистрибутивов поставляют ядро в некоторой базовой конфигурации, работающей на множестве вариантов оборудования, но не оптимизированной ни под один из них. Переконфигурировав ядро именно под свою аппаратную среду и задачи, можно существенно повысить производительность и увеличить надежность системы.
В этой главе я рассмотрю три основных способа настройки ядра:
♦ модификация динамических параметров ядра через псевдофайловую систему
/proс
;♦ использование загрузчика для передачи ядру параметров на этапе начальной загрузки;
♦ пересборка ядра из исходных кодов.
20.3. Динамические параметры ядра
Файлы в каталоге
/proc
— это на самом деле информационные каналы, реализующие интерфейс между ядром и прикладными программами. Они разработаны для повышения гибкости ядра, позволяя системному администратору корректировать его поведение «на лету», без перезагрузки. Файловая система procfs называется виртуальной, потому что в действительности это карта работающей системы в иерархическом виде, создаваемая ядром и присоединяемая к обычной файловой системе. Некоторые команды (например, ps) извлекают информацию о состоянии системы, не прибегая к системным вызовам, а читая непосредственно из /proc
.Хотя часть виртуальных файлов содержит текстовые данные, для их просмотра и изменения обычный ASCII-редактор неприменим: ведь они мало того что не существуют физически, так еще и ядро может в любое время внести в них изменения. Читать такие файлы нужно командой cat, а записывать — перенаправляя вывод команды echo. Например, чтобы увидеть максимальное количество файлов, которые можно открыть в одном процессе, введите команду
$ cat /proc/sys/fs/file-max
Большинство параметров ядра, предназначенных для динамической настройки на работающей системе, представлены файлами в каталоге
/proc/sys
. Эти файлы доступны для записи суперпользователю. Например, если у вас обычный домашний компьютер, подключенный к Интернету по DSL или локальной сети, то производительность сети можно повысить, выключив некоторые параметры:# echo "0" > /proc/sys/net/ipv4/tcp_sack
# echo "0" > /proc/sys/net/ipv4/tcp_timestamps
Особый интерес с точки зрения повышения производительности системы представляет коэффициент подкачки, находящийся в псевдофайле
/proc/sys/vm/swappiness
. Этот коэффициент, значение которого может быть от 0 до 100, указывает ядру, как часто следует выгружать страницы памяти на диск (свопить). Высокий коэффициент подкачки уместен в том случае, если вы работаете с несколькими громоздкими приложениями и переключаетесь между ними нечасто: каждое приложение будет работать быстрее, но переключение займет больше времени, ведь приложение, которое вы оставили без внимания на несколько минут, давно выгружено в своп-раздел. Например, если вы дизайнер и с утра до вечера не выходите из GIMP, то установите значение коэффициента равным 100:# echo "100" > /proc/sys/vm/swappiness
Производительность вашего основного приложения (GIMP) станет максимальной. Если же вы целый день работаете с небольшими программками, между которыми часто переключаетесь, то установите коэффициент подкачки около 20. Значение по умолчанию равно 70. Возможно, вам больше всего подойдет именно это значение.
Значения динамических параметров ядра при перезагрузке не сохраняются, Чтобы сделать их постоянными, нужно вписать строки вида <параметр> = <значение> в файл
/etc/sysctl.conf
, откуда их в ходе начальной загрузки прочитает утилита sysctl.Имя параметра — это имя виртуального файла относительно каталога
/proc/sys
, в котором символ слэша заменяется на точку: vm.swappiness. Команда
Оглавление
-
Введение
-
Об этой книге
-
Почему 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-программ
-
***
-
***