Реально существующие устройства описываются при помощи оператора 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. Мы переходим к тому, как запускать сетевые службы и управлять тем, какие из них запускаются.