Конфигурирование ядра

Большинство Linux распространяются вместе с загрузочными дискетами, работующими со всеми основными типами аппаратных средств PC. Это означает что ядро на этих дискетах имеет все виды драйверов, многие из которых Вам никогда не пригодятся, но занимают драгоценную память системы потому что части ядра не свопируются. Поэтому, Вы должны собрать ваше собственное ядро, включая только необходимые Вам драйвера.

При управлении Linux системой, Вы должны быть знакомы со строением ядра. Основы этого объясняются в "Installation and Getting Started" написанной Matt Welsh, который является также частью проекта Linux документации. Потому, в этой секции мы будем обсуждать только те стороны конфигурации Linux, которые относятся к сети.

При запуске make config, сначала Вас спрашивают общие вопросы конфигурации, например хотите ли Вы в ядре иметь математический эмулятор или нет, и т.д.. Один из этих вопросов -- хотите ли Вы поддержку TCP/IP сети. Вы должны ответить y, чтобы получить ядро способное работать с сетью.

Опции ядра в Linux 1.0 и выше

После того, как основная часть вопросов задана, конфигуратор продолжит спрашивать Вас относительно различных особенностей типа SCSI драйверов, и т.д..

Последующий список вопросов относится к проблемам поддержки сети. Точный набор опций конфигурации постоянно меняется, из-за продолжающейся разработки. Типичный список опций предлагаемых большинством версий ядра (в основном в 1.0 1.1) напоминает этот ( комментарии даются italics шрифтом):

* * Network device support

* Network device support? (CONFIG ETHERCARDS) [y]

Несмотря на макро название указанное в скобках, Вы должны ответить на этот вопрос y, если Вы хотите использовать любой тип сетевых устройств, независимо от того является ли оно Ethernet, SLIP, или PPP. При ответе y, поддержка для устройств Ethernet-типа разрешается автоматически. Поддержку для других типов сетевых драйверов нужно разрешить отдельно:

SLIP (serial line) support? (CONFIG SLIP) [y]

SLIP compressed headers (SL COMPRESSED) [y]

PPP (point-to-point) support (CONFIG PPP) [y]

PLIP (parallel port) support (CONFIG PLIP) [n]

Эти вопросы касаются различных протоколов связи поддерживаемых Linux. SLIP позволяет Вам транспортировать IP дэйтаграмы через последовательные линии. Опция сжатия заголовков обеспечивает поддержку CSLIP, позволяющий сжимать TCP/IP заголовки всего в три байта. Обратите Внимание что эта опция ядра не включает CSLIP автоматически, она просто обеспечивает необходимые функции для него.

PPP - другой протокол для построения сетей на последовательными линиях. Он еще более гибок чем SLIP, и не ограничен только IP, но также поддерживает IPX. Так как поддержка PPP была закончена только недавно, эта опция может быть не представлена в вашем ядре.

PLIP обеспечивает пересылку IP дэйтаграм через параллельный порт. Он главным образом используется для того чтобы связаться с PC под управлением DOS.

Следующие вопросы имеют отношение к Ethernet платами от различных поставщиков. Чем больше становится драйверов, тем больше станет вопросов. Если вы конфигурируете ядро для нескольких различных машин, Вы можете установить больше чем один драйвер.

NE2000/NE1000 support (CONFIG NE2000) [y] WD80*3 support (CONFIG WD80x3) [n]

SMC Ultra support (CONFIG ULTRA) [n]

3c501 support (CONFIG EL1) [n]

3c503 support (CONFIG EL2) [n]

3c509/3c579 support (CONFIG EL3) [n]

HP PCLAN support (CONFIG HPLAN) [n]

AT1500 and NE2100 (LANCE and PCnet-ISA) support (CONFIG LANCE) [n]

AT1700 support (CONFIG AT1700) [n]

DEPCA support (CONFIG DEPCA) [n]

D-Link DE600 pocket adaptor support (CONFIG DE600) [y]

AT-LAN-TEC/RealTek pocket adaptor support (CONFIG ATP) [n]

* * CD-ROM drivers *

... Наконец, в секции файловой системы, скрипт конфигурации спросит Вас хотите ли Вы поддержку NFS. NFS позволяет Вам экспортировать файловые системы с других хостов, так что файлы и директории кажутся находящимися на одной машине.

NFS filesystem support (CONFIG NFS FS) [y]

Опции ядра в Linux 1.1.14 и выше

При запуске Linux 1.1.14, в который добавили поддержку IPX, процедура конфигурации слегка изменена. Общая секция опций теперь спросит хотите ли Вы поддержку сети вообще. Что немедленно сопровождается парой вопросов о разных сетях.

* * Networking options * TCP/IP networking (CONFIG INET) [y]

Чтобы использовать TCP/IP сеть, Вы должны ответить на этот вопрос y.

Если Вы отвечаете n, Вы будете все еще способны собирать ядро с поддержкой IPX. IP forwarding/gatewaying (CONFIG IP FORWARD) [n]

Вы должны здесь ответить Y, если ваша система действует как gateway между двумя Ethernet, или между Ethernet и SLIP, и т.д.. Хотя не причинит вреда установить ее по умолчанию, но чтобы отконфигурировать хост как так называемый firewall, вы должны ответить здесь нет. Firewalls -- хосты которые связаны с двумя или больше сетями, но не позволяют им общаться. Обычно они используются чтобы обеспечить пользователям сетей с доступом к Internet минимальный риск проникновения из вне. Пользователям позволяется входить на firewall и работать с Internet, но машины компании будут защищены от нападений из вне, потому что любые внешние хосты не могут пересечь firewall.

* * (it is safe to leave these untouched)

* PC/TCP compatibility mode (CONFIG INET PCTCP) [n]

Эта опция работает с несовместимостью с некоторыми версиями PC/TCP, коммерческими TCP/IP выполненными для DOS. Если Вы разрешаете эту опцию, Вы все еще будете способны общаться с нормальной Unix машиной, но она вредна для медленных соединений.

Reverse ARP (CONFIG INET RARP) [n]

Эта функция включает RARP. RARP используется бездисковыми клиентами и X-терминалами во время загрузки для запроса своего IP адрес. RARP необходим только для работы с этими клиентами. Самый последний пакет сетевых утилит (net-0.32d) содержит небольшую утилиту rarp которая позволяет Вам добавлять системы в RARP кэш.

Assume subnets are local (CONFIG INET SNARL) [y]

При посылки данных по TCP ядро, перед передачей их IP, должно разбивать поток на несколько пакетов. Большие пакеты используются для работы в локальной сети типа Ethernet, меньшие в случае, когда данные посылаются куда-то далеко. Если Вы запрещаете SNARL, ядро будет работать только с локальными сетями, к которым он непосредственно подключен. Так, если Вы посмотрите на сеть класса B в Groucho Marx Университете, там большинство хостов подключены к только одному или двум подсетям. Если Вы разрешаете SNARL, ядро будет предполагать что все подсети местные и используют большие пакеты при разговоре с всеми хостами в университетском городке. Если Вы хотите использовать меньшие размеры пакетов для данных посланных определенным хостам (потому что, например, данные проходят через SLIP связь), Вы можете cделать это используя mtu опции маршрутизации, которые кратко обсуждены в конце этой главы.

Disable NAGLE algorithm (normally enabled) (CONFIG TCP NAGLE OFF) [n]

Правила Nagle используются чтобы избежать посылки маленьких IP пакетов, также названные tinygrams. Tinygrams обычно создаются диалоговыми сетевыми программами, которые передают отдельные символы, типа telnet или rsh. Tinygrams может стать особенно неудобными при связи по узкополосным линиям. Nagle алгоритм пытается избегать их сдерживая при некоторых обстоятельствах передачу TCP данных. Вам стоит отключить Nalge алгоритм, только если у вас есть серьезные проблемы с получением пакетов.

The IPX protocol (CONFIG IPX) [n]

Это опция включает поддержку IPX, транспортный протокол используемый Novell сетями. Он все еще в разработке и не очень полезен. Единственная польза -- обмен данными с IPX утилитами DOS и передача данных между вашими novell сетями через PPP связь. Поддержка протоколов высокого уровня для Novell сети в обозримом будущем не будет, так как спецификации бесплатно не достать. В ядре 1.1.16, Linux поддерживается еще один тип драйвера, dummy driver (фиктивный драйвер). Следующий вопрос появляется в начале секции драйверов устройств.

Dummy net driver support (CONFIG DUMMY) [y]

Фиктивный драйвер в действительности делает немного, но весьма полезен на автономном или SLIP хосте. Это в основном замаскированный loopback интерфейс. Этот вид интерфейса нужен на хостах, которые имеют SLIP но не имеют Ethernet, но хотят иметь интерфейс, который все время держит ваш IP адрес.