Компактное и нормальное ядра
В этом приложении вы найдете листинги файлов конфигурации компактного и нормального ядер. В гл. 18 я рекомендовал вам исключать из состава ядра не нужные вам функции. Например, если ваш сервер оборудован только IDE-дисками, то зачем ему поддержка SCSI? В большинстве случаев, при установке дистрибутива ядро настраивается таким образом, чтобы оно могло работать на большом числе компьютеров разных конфигураций. Для этого в состав ядра (или в загружаемые модули) включается поддержка всех чипсетов, файловых систем, сетевых плат и других устройств, что увеличивает размер ядра и делает его более громоздким. Уменьшив число ненужных вам функций, вы повысите производительность всей системы. Но будьте внимательны: отключение одной опции может повлиять на другие. Здесь точно такая же ситуация как и с пакетами RPM: есть зависимые друг от друга пакеты, а есть и несовместимые. Если вы отключите какую-нибудь опцию, которая нужна другим опциям ядра, во время компиляции вы получите сообщение в виде предупреждения (warning) и ядро при этом вообще может не собраться.
Существует и еще один вариант неудовлетворения зависимости опций, когда ядро нормально собирается, но при перезапуске компьютера невозможно запустить систему, используя это ядро. Во время выполнения программы make menuconfig (config или xconfig) вы не узнаете о подобной несовместимости. Все предупреждения и ошибки вы увидите во время компиляции ядра (make zImage). Запомните одно простое правило: ядро должно собираться. Если ядро не собирается, значит, вы допустили ошибку при работе с программой make menuconfig.
В листинге В.1 представлен пример компактного ядра. Я «заточил» его под свой домашний компьютер, поэтому не гарантирую, что оно у вас будет работать. В листинге В.1 вы можете увидеть основные принципы, по которым я собирал ядро. Во-первых, я отказался от загружаемых модулей и включил все необходимые мне драйверы непосредственно в ядро системы. Конечно, такой подход не уменьшит размер файла ядра, но тогда это ядро можно использовать при загрузке с дискеты. Во-вторых, я отключил поддержку всех чипсетов, кроме того, который установлен в моей системе. Я также отказался от поддержки PnP: я не собираюсь добавлять в систему новые устройства, поэтому держать лишний код в ядре для определения нового оборудования, которое никогда не будет установлено, глупо. Обо всех остальных опциях вы узнаете, просмотрев листинг В.1. Компактные ядра, подобные этому, можно использовать на сервере, выполняющем только определенные функции, например, маршрутизацию. Обычно такой сервер после установки и настройки запирают в какой-нибудь комнате и больше не подходят к нему. Естественно, при добавлении новых устройств, для которых необходим драйвер, которого нет в ядре, возникнут определенные неудобства при компилировании ядра. Но вы же не добавляете новые устройства каждый день?
В листинге В.2 представлен обычный файл конфигурации ядра. Такое ядро должно работать на большинстве компьютеров.
Как использовать эти листинги? Очень просто: запускаете make menuconfig и сравниваете названия опций с параметрами конфигурационного файла: что и где вы должны догадаться по смыслу, а потом сравните значения параметров. Тем более, что файл конфигурации разбит на части, названия которых аналогичны названию разделов программы menuconfig. Можно также пойти по более простому пути (хотя он не очень удобен): запустите make с параметром config. Программа будет задавать вам вопросы, на которые вы должны ответить Y, N или М. Y — включить данную функцию в состав ядра, N — не включать в состав ядра, М — включить в виде модуля. Вопросы будут задаваться примерно так:
CONFIG_EXPERIMENTAL ?
На что вы должны ответить Y или N.
Листинг В.1. Пример файла конфигурации компактного ядра#
# Automatically generated by make menuconfig: don't edit
#
#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=N
#
# Processor type and features
#
# CONFIG_M3 8 6 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
CONFIG_M686=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_TSC=y
CONFIG_X86_GOOD_APIC=y
CONFIG_1GB=y
# CONFIG_2GB is not set
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
# CONFIG_SMP is not set
#
# Loadable module support
#
# CONFIGMODULES is not set
#
# General setup
#
# CONFIG_BIGMEM is not set
CONFIG_NET=y
CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GODIRECT is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
# CONFIG_PCI_QUIRKS is not set
CONFIG_PCI_OLD_PROC=y
# CONFIG_MCA is not set
# CONFIG_VISWS is not set
CONFIG_SYSVIPC=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_SYSCTL=y
CONFIG_BINFMT_AOUT=y
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_BINFMT_JAVA is not set
CONFIG_PARPORT=y
# CONFIG_PARPORT_PC is not set
# CONFIG_APM is not set
# CONFIG_TOSHIBA is not set
#
# Plug and Play support
#
# CONFIG_PNP is not set
#
# Block devices
#
CONFIG_BLK_DEV_FD=y
# CONFIG_BLK_DEV_IDE is not set
# CONFIG_BLK_DEV_HD_ONLY is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_NBD=y
CONFIG_BLK_DEV_MD=y
# CONFIG_AUTODETECT_RAID is not set
# CONFIG_MD_LINEAR is not set
# CONFIG_MD_STRIPED is not set
# CONFIG_MD_MIRRORING is not set
# CONFIG_MD_RAID5 is not set
# CONFIG_MD_TRANSLUCENT is not set
# CONFIG_MD_HSM is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
# CONFIG_BLK_DEV_INITRD is not set
# CONFIG_BLK_DEV_XD is not set
# CONFIG_BLK_DEV_DAC960 is not set
CONFIG_PARIDE_PARPORT=y
# CONFIG_PARIDE is not set
# CONFIG_BLK_DEV_IDE_MODES is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_HD is not set
#
# Networking options
#
CONFIG_PACKET=y
CONFIG_NETLINK=y
CONFIG_RTNETLINK=y
CONFIG_NETLINK_DEV=y
CONFIG_FIREWALL=y
CONFIG_FILTER=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_RTNETLINK=y
CONFIG_NETLINK=y
# CONFIG_IP_MULTIPLE_TABLES is not set
# CONFIG_IP_ROUTE_MULTIPATH is not set
# CONFIG_IP_ROUTE_TOS is not set
Оглавление
-
1 Введение в Linux
-
1.1. Вступительное слово
-
1.2. О Linux
-
1.3. Почему именно Linux?
-
1.4. Область применения Linux-серверов
-
1.5. Как устроена данная книга
-
1.6. Какие сервера бывают и для чего они нужны
-
1.6.1. Сервер локальной сети
-
1.6.2. Шлюз — сервер для доступа в Интернет
-
1.6.3. Сервер удаленного доступа
-
1.7. Что такое сервер? (или Курс Молодого Администратора)
-
1.7.1. Архитектура сети: одноранговая и клиент/сервер
-
1.7.2. Протокол и интерфейс
-
1.7.3. Протокол TCP/IP
-
1.7.4.Системадоменныхимен—DNS
-
1.7.5. Многоуровневая архитектура стека TCP/IP
-
1.7.6. Порты и демоны
-
1.7.7. Структура пакетов IP и TCP
-
1.8. Общие рекомендации
-
1.9. Обзор дистрибутивов Linux
-
1.10. Глоссарий
-
2 Установка системы
-
2.1. Установка Red Hat Linux
-
***
-
***
-
2.2. Установка Linux Mandrake
-
2.3. Установка Linux на компьютер с чипсетом Intel810
-
2.4. Установка нескольких операционных систем
-
2.4.1. Установка Windows 9x и Linux
-
2.4.2. Установка Windows 9x, Windows NT/2000 и Linux.
-
2.4.3. Использование loadlin
-
2.5. Постинсталляционная настройка
-
2.6. Установка программного обеспечения
-
2.6.1.Традиционный способ установки: установка из исходных текстов
-
2.6.2. Программа RPM
-
2.6.3. Программы gnorpm, kpackage, apt
-
2.6.4. Установка из пакетов, содержащих исходный код
-
2.7. Завершение работы операционной системы
-
3 Учетные записи пользователей
-
3.1. Вход в систему
-
3.1.1. Вход в систему под другим именем
-
3.2. Изменение пароля
-
3.3. Идентификаторы пользователя и группы
-
3.4. Создание группы
-
3.5. Удаление и модификация учетных записей
-
3.6. Квотирование
-
3.6.1. Определение ограничений
-
3.6.2. Запрет квоты для пользователя или группы
-
3.6.3. Использование программы linuxconf для определения квот
-
3.7. Сценарий создания пользователей
-
4 Файловая система Linux
-
4.1. Файлы и каталоги. Дерево каталогов
-
4.2. Команды для работы с файлами и каталогами
-
4.2.1. Команды для работы с файлами
-
4.2.2. Команды для работы с каталогами
-
4.3.Ссылки
-
4.4. Стандартные имена устройств в Linux
-
4.5. Стандартные каталоги
-
4.6. Создание файловой системы. Типы файловых систем
-
***
-
4.7. Использование программы fdisk
-
4.8. Программа Disk Drake
-
4.9. Монтирование дисков. Файл/etc/fstab
-
4.10. Создание раздела (файла) подкачки
-
4.11. Использование LILO
-
4.12. Права доступа
-
4.13. Обслуживание файловой системы
-
4.14. Подключение магнитооптического диска
-
4.15. Использование стримера
-
4.15.1. Подключение стримера с интерфейсом SCSI
-
4.15.2. Подключение стримера с интерфейсомFDC
-
4.15.3. Управление стримером
-
4.16. Стратегия резервного копирования
-
4.17. Использование программы cpio
-
4.18. Повышение производительности жесткого диска
-
4.19. Создание массивов RAID
-
4.20. Форматирование дискет в Linux
-
5 Процессы
-
5.1. Системные вызовы fork() и ехес()
-
5.1.1. Общая схема управления процессами
-
5.2. Перенаправление ввода/вывода
-
5.3. Команды управления процессами
-
5.4. Создание расписаний
-
5.5. Уровни выполнения.Программа init
-
5.6. Сценарии загрузки системы
-
5.7. Стандартные файлы протоколов (журналов)
-
5.8. Управление протоколированием
-
5.8.1. Демон Syslogd
-
5.8.2. Сигналы
-
5.8.3. Файл конфигурации
-
5.8.4. Сетевое протоколирование
-
5.8.5. Демон klogd
-
5.8.6. Параметры ядра
-
6 Русификация Linux
-
6.1. Русификация консоли
-
6.2. Русификация системы X Window
-
6.3. Русификация принтера
-
7 Настройка сети
-
7.1. Установка сетевой платы. Настройка параметров сети
-
7.2. Подключение модема
-
7.3. Подключение к Интернет
-
7.3.1. Терминальный способ
-
7.3.2. PAP- и СНАР-аутентификация
-
7.4. Настройка DSL-соединения
-
7.4.1. Настройка соединения DSL в Linux Mandrake
-
7.4.2. Настройка соединения DSL в другом дистрибутиве
-
7.5. Настройка выделенных линий
-
7.6. Перед настройкой сервера
-
8 Конфигурирование сервера
-
8.1. Суперсерверы inetd и xinetd
-
8.1.1. Настройка сервера inetd
-
8.1.2. Настройка tcpd
-
8.1.3. Протокол IPv6
-
8.1.4. Установкаx inetd
-
8.1.5. Настройка xinetd
-
8.1.6. Параметры запуска xinetd
-
8.1.7. Пример файла конфигурации /etc/xinetd
-
8.2. Удаленный доступ: ssh и telnet
-
***
-
8.3.Маршрутизация
-
8.4. Настройка DHCP (Dynamic Host Configuration Protocol)
-
8.5. Подсчет трафика. Программа MRTG
-
***
-
8.6. Сетевая файловая система (NFS)
-
8.6.1. Настройка сервера NFS
-
8.6.2. Настройка клиента NFS
-
8.7. Поисковый сервер ht:/Dig
-
8.8. Прокси-сервер Socks5
-
8.8.1.Установка и настройкасервера
-
8.8.2. Альтернативные серверы Socks5
-
8.8.3. Настройка клиента Socks5 (licq)
-
8.9. Система обнаружения и защиты от вторжения
-
8.9.1. Что такое LIDS?
-
8.9.2. Установка LIDS
-
8.9.3. Базовая настройка
-
8.9.4. Правила доступа
-
8.9.5. Администриров ание LIDS
-
9 Протокол Server Message Block (SMB)
-
9.1. Установка Samba
-
9.2. Настройка файлового сервера
-
9.3. Доступ к SMB-ресурсам из Linux
-
9.4. Доступ к принтеру Linux для Windows-машин
-
9.5. Доступ к Windows-принтеру с компьютеров, работающих под Linux
-
9.6. Пример файла smb.conf
-
9.7. Конфигуратор SWAT
-
10 Служба имен — DNS
-
10.1. Настройка сервера DNS
-
10.2. Кэширующий сервер DNS
-
10.3. Настройка дополнительного сервера DNS
-
10.4. Команды управления сервером DNS
-
10.5. Использование nslookup
-
11 Настройка FTP
-
11.1. Сервер FTP wu-ftpd
-
11.1.1. Файл ftpaccess
-
11.1.2. Файл ftphosts
-
11.1.3. Файл ftpusers
-
11.1.4. Файл ftpgroups
-
11.1.5. Файл ftpconversions
-
11.1.6. Файл xferlog
-
11.2.СерверProFTP
-
11.2.1. Файл /etc/proftpd.conf
-
11.2.2. Ограничение доступа
-
11.2.3. Файл .ftpaccess
-
11.3. Организация анонимного FТР-сервера
-
11.4. Вспомогательные программы
-
11.5. Виртуальный узел FTP
-
12 Сервер Apache
-
12.1. Установка Apache
-
12.2. Файлы конфигураци исервера
-
12.2.1. Файл httpd.conf
-
12.2.2. Конфигурирование Apache с помощью netconf
-
12.3. Каталоги пользователей
-
12.4. Виртуальный HTTP-сервер
-
12.4.1. Виртуальные серверы с идентификацией по имени
-
12.4.2. Виртуальные серверы с идентификацией по IP-адресу
-
12.5. SSL и Apache
-
12.5.1. Установк а SSL
-
12.5.2. Подключение SSL к Apache
-
12.5.3. Генерирование сертификатов
-
12.6. Пример файла httpd.conf
-
***
-
***
-
***
-
12.7. Перекодирование русскоязычных документов «на лету»
-
13 Почтовый сервер
-
13.1. Настройка sendmail
-
***
-
13.2. Аутентификация в sendmail
-
13.3. Настройка почтовых клиентов
-
13.4. Другие программы для работы с электронной почтой
-
13.5. Создание списка рассылки
-
14 Бастионы
-
14.1. Применение IPChains
-
14.2. Настройка IPChains
-
14.3. Различные примеры
-
14.3.1. Пакеты SYN
-
14.3.2. Фрагментация пакетов
-
14.3.3. Пинг смерти
-
14.3.4. IР-спуфинг
-
14.3.5. Фильтрация фрагментированных бомб
-
14.4. Практический пример
-
***
-
14.5. IPTables
-
15 Прокси-сервер SQUID
-
15.1. Что такое SQUID?
-
15.2. Установка SQUID
-
15.3. Настройка SQUID
-
15.4. Запуск SQUID
-
15.5. Формат файла squid.conf
-
15.5.1. Параметры сети
-
15.5.2. Параметры соседей
-
15.5.3. Управление кэшем
-
15.5.4. Протоколирование
-
15.5.5. Параметры внешних программ
-
15.5.6. Списки ACL
-
15.5.7. Параметры доступа
-
15.5.8. Параметры администрирования
-
15.6. Отказ от рекламы. Баннерный фильтр
-
15.7. Разделение канала
-
15.8. Программы для учета трафика
-
15.9. Настройка клиентов
-
16 Установка MySQL
-
16.1. Установка сервера
-
16.2. Клиентская часть
-
16.3. Связка Apache + PHP + MySQL
-
16.3.1. Первый способ: из пакетов RPM
-
16.3.2. Второй способ: из исходных текстов
-
17 Практические примеры. Обратный звонок
-
17.1. Настройка шлюза
-
17.1.1. Настройка ядра
-
17.1.2. Настройка сети
-
17.1.3. Конфигурирование IpChains
-
17.1.4. Настройка DNS
-
17.1.5. Настройка Squid
-
17.2. Настройка Dial-In сервера
-
17.2.1. Установка программного обеспечения
-
17.2.2. Настройка mgetty
-
17.2.3. Настройка ррр
-
17.2.4. Включение IP Forwarding
-
17.2.5. Второй вариант настройки
-
17.2.6. Если что-то не работает…
-
17.2.7. Настройка Windows-клиентов
-
17.2.8. Дополнительная литература
-
17.3. Обратный звонок
-
17.3.1. Что такое callback?
-
17.3.2. Настройка сервера. Способ1
-
17.3.3. Настройка сервера.Способ 2
-
17.3.4. Настройка клиен тов. Способ 1
-
17.3.5. Настройка клиентов. Способ 2
-
18 Компилирование ядра
-
18.1. Параметры ядра
-
18.1.1. Параметры корневой файловой системы
-
18.1.2. Управление RAMDISK
-
18.1.3. Управление памятью
-
18.1.4. Другие параметры ядра
-
18.2. Конфигурирование ядра
-
18.2.1. Processor type and features
-
18.2.2. Loadable module support
-
18.2.3.General setup
-
18.2.4. PnP support
-
18.2.5. Block devices
-
18.2.6. Networking options
-
18.2.7. SCSI support
-
18.2.8. Network device support
-
18.2.9.IrDA, USB support
-
18.2.10. Filesystems
-
18.2.11. Sound
-
18.3. Компилирование ядра
-
19 Полезные команды и программы. Создание RPM-пакетов
-
19.1. Общие команды
-
***
-
19.2. Команды для работы с файлами
-
19.3. Команды для работы с Интернет
-
***
-
19.4. Обработка текста
-
***
-
***
-
19.5. Создание RPM-пакетов
-
19.6. Использование редактора vi
-
19.7. Интерпретатор команд bash
-
19.7.1. Каналы и списки
-
19.7.2. Перенаправление ввода/вывода
-
19.7.3. Подоболочки
-
19.7.4. Переменные и массивы
-
19.7.5. Подстановка команд и арифметических выражений
-
19.7.6. Управляющие структуры и циклы
-
19.7.7. Подстановка переменных
-
19.7.8. Функции
-
19.7.9. Обработка сигналов и протоколирование
-
20 Графический интерфейс пользователя. Система X Window
-
20.1. Установка и запуск системы
-
20.2. Конфигурационный файл XF86Config
-
20.3. Настройка X Window
-
20.4. Конвертирование шрифтов Windows
-
20.5. Оконная среда KDE
-
20.6. Оконная среда GNOME
-
20.7. Настройка Х-терминала
-
21 Linux в игровом зале
-
21.1. Достоинства и недостатки
-
21.2. Выбор аппаратного обеспечения для игрового зала
-
21.3. Установка драйверов для видеокарт nVidia
-
21.4. Установка Windows-эмулятора wine
-
21.5. Запуск игр с помощью эмулятора wine
-
21.6. Средства мультимедиа
-
21.7. Администрирование зала
-
21.7.1. Доступ к Интернет
-
21.7.2. Управление пользователями
-
21.7.3. Ограничение доступа пользователя
-
22 Антивирусная защита
-
22.1. Антивирусные программы
-
22.1.1. Программа DrWeb для Linux
-
22.1.2. Программа AVP для Linux
-
22.2. Проверка входящей и исходящей почты
-
23 Прочие возможности
-
23.1. SATAN
-
23.2. Защита от спама
-
23.3. Ограничение системных ресурсов
-
24 Вместо заключения
-
Приложения
-
Приложение А. Конфигурационные файлы Linux
-
***
-
***
-
***
-
Приложение Б. Общие параметры программ для системы X Window
-
Приложение В. Компактное и нормальное ядра
-
***
-
***
-
***
-
***
-
***
-
***
-
***
-
***
-
Приложение Г. Ссылки
-
***
-
***