Реально существующие устройства описываются при помощи оператора de- vice. Каждый узел, подключенный к сети TCP/IP, должен иметь физическое аппаратное обеспечение, реализующее подключение. Это аппаратное обеспе- чение объявляется оператором device в файле настройки ядра.
Существует большое число сетевых интерфейсов для работы с TCP/IP, но самое широкое распространение получили интерфейсы Ethernet. Вот операторы device ин- терфейсов Ethernet, определенные для ядра GENERIC:
device de # DEC/Intel DC21x4x ("Tulip") device fxp # Intel EtherExpress PR0/100B (82557, 82558) device tx # SMC 9432TX (83c170 "EPIC") device vx # 3Com 3c590, 3c595 ("Vortex") device wx # Intel Gigabit Ethernet Card ("Wiseman") device dc # DEC/Intel 21143 and various workalikes device rl # RealTek 8129/8139 device sf # Adaptec AIC-6915 ("Starfire") device sis # Silicon Integrated Systems SiS 900/SiS 7016 device ste # Sundance ST201 (D-Link DFE-550TX) device tl # Texas Instruments ThunderLAN device vr # VIA Rhine, Rhine II device wb # Winbond W89C840F device xl # 3Com 3c90x ("Boomerang", "Cyclone") device edO at isa? port 0x280 irq 10 iomem 0xd8000 device ex device ep device wi # WaveLAN/IEEE 802.11 wireless NIC device an # Aironet 4500/4800 802.11 wireless NICs device ieO at isa? port 0x300 irq 10 iomem 0xd0000 device feO at isa? port 0x300 device IeO at isa? port 0x300 irq 5 iomem 0xd0000 device IncO at isa? port 0x280 irq 10 drq 0 device csO at isa? port 0x300 device snO at isa? port 0x300 irq 10
Оператор device, позволяющий выполнять настройку интерфейса Ethernet в ядре FreeBSD, существует в двух основных формах:
device ed0 at isa? port 0x280 net irq 10 iomem 0xd8000 device de0
Формат варьируется в зависимости от типа устройства - ISA или PCI. Оператор device для устройства edO определяет тип шины (isa), базовый адрес ввода-вывода (port 0x280), номер прерывания (irq 10) и адрес в памяти (iomem 0xd8000). Эти значения должны соответствовать установленным на карте интерфейса и являются стандартными для настройки ISA-устройств. С другой стороны, оператор device для устройства deO практически не требует настройки, поскольку речь идет о карте, подключенной через шину PCI. Шина PCI достаточно разумна и позволяет получать настройки непосредственно от установленных устройств.
Ethernet - не единственный сетевой интерфейс TCP/IP, с которым способна работать система FreeBSD. Поддерживается и ряд других интерфейсов. Интерфейсы последовательных линий необходимы для работы SLIP и РРР:
device sioO at isa? port I0_C0M1 flags 0x10 irq 4 device siol at isa? port I0_C0M2 irq 3 device sio2 at isa? disable port I0_C0M3 irq 5 device sio3 at isa? disable port I0_C0M4 irq 9
Четыре последовательных интерфейса, от sioO до sio3, соответствуют интерфейсам MS-DOS от СОМ1 до COM4. Они нужны для работы по протоколам SLIP и РРР. В главе 6 рассмотрены прочие аспекты настройки РРР.
Оператор device изменяется от интерфейса к интерфейсу. Но как определить, какие аппаратные интерфейсы установлены в системе? Вспомните, что ядро GENERIC, поставляемое в составе системы FreeBSD, настроено на поддержку широкого спектра устройств. Простейший способ определить, какие аппаратные интерфейсы установлены в системе, - взглянуть на сообщения, отображаемые в процессе загрузки на консоли. Эти сообщения перечисляют все устройства, включая и сетевые, обнаруженные ядром при инициализации. Взгляните на вывод команды dmesg, которая повторяет сообщения, созданные в процессе последней загрузки. Чаще всего оказывается, что редактирование настроек ядра сводится к удалению поддержки ненужных и несуществующих устройств.
Операторы файла настройки options, pseudo-device и device предписывают системе включить в ядро поддержку определенных устройств и программ TCP/IP. Операторы вашего файла могут отличаться от тех, что мы видели в примерах, но основной их набор будет таким же. Этот базовый набор позволяет подготовить FreeBSD Unix к работе с TCP/IP.
Возможно, вам никогда не придется изменять переменные, о которых шла речь в этом разделе. Как и все прочие элементы файла настройки ядра, эти переменные по умолчанию имеют разумные значения, позволяющие корректно работать с TCP/IP. Однако вам часто придется принимать участие в управлении сетевыми службами, которые реализуются посредством TCP/IP. Мы переходим к тому, как запускать сетевые службы и управлять тем, какие из них запускаются.