The website "dmilvdv.narod.ru." is not registered with uCoz.
If you are absolutely sure your website must be here,
please contact our Support Team.
If you were searching for something on the Internet and ended up here, try again:

About uCoz web-service

Community

Legal information

5.2 Сетевой драйвер

5.2 Сетевой драйвер

Предыдущая  Содержание  Следующая V*D*V

В Linux драйвер сетевого устройства рассматривается как отдельный класс драйверов. Сетевые драйверы не привязаны к файловой системе, а скорее связаны с интерфейсом подсистемы (таким, как интерфейс Ethernet). Прикладная программа не общается с драйвером сетевого устройства напрямую, а использует сокеты и IP адреса. Сетевой уровень направляет сделанные  поверх сокета запросы в сетевой драйвер. В этом разделе описывается процесс написания сетевого драйвера для ядра Linux версии 2.4.

Чтобы объяснить архитектуру сетевого драйвера, этот раздел предполагает использование выдуманного сетевого оборудования. Сетевая карта подключена непосредственно к адресному пространству процессора и, следовательно, её регистры и внутренняя память отображаются в адресное пространство процессора непосредственно. Мы предполагаем два банка памяти: один для передачи, другой для приёма. Для простоты мы предполагаем отсутствие DMA; для передачи данных из системной оперативной памяти в сетевую карту и наоборот драйвер должен вызывать процедуру memcpy.

Снова мы предполагаем, что доступны следующие функции/макросы:

 

NW_IOADDR: это базовый адрес для доступа к вводу-выводу на карте. Мы предполагаем, что инициализация система предоставила достоверный базовый адрес.

NW_IRQ: линия прерывания, используемая для сетевой карты.

FILL_ETHER_ADDRESS: макрос, который программирует оборудование сетевым адресом.

INIT_NW: процедура, которая инициализирует сетевую карту.

RESET_NW: процедура, которая выполняет сброс сетевой карты.

READ_INTERRUPT_CONDITION: этот макрос указывает, что вызвало прерывание. В нашем случае есть две причины: одна это получение входящих данных, а другая - конец передачи.

FILL_TX_NW: процедура для копирования данных из сетевых буферов в память оборудования. Она используется в передающем тракте.

READ_RX_NW: процедура, которая копирует данные из памяти оборудования в сетевые буферы. Она используется в тракте приёма.

 

Предыдущая  Содержание  Следующая