Как взаимодействовать с сетевым драйвером?

Взгляд изнутри

Модератор: Модераторы разделов

Ответить
menzoda
Сообщения: 4

Как взаимодействовать с сетевым драйвером?

Сообщение menzoda »

Необходимо написать модуль, который будет с одной стороны взаимодействовать с сетевым драйвером, а с другой предоставлять пользователю некий интерфейс. Ну допустим как стек протоколов - с одной стороны драйвер , а с другой всякие сокеты (это я для примера привел, не придирайтесь).

Искал-искал я информацию по этому поводу и нашел, что сетевой драйвер реализует некий набор функций для отправки/приема пакетов (hard_start_xmit и т.д.). Но наверно не все так просто, и в тупую вызывать их из моего модуля не есть хорошо (да и даже если в тупую я не особо представляю как это работает). Поэтому хотелось бы посмотреть действующий примерчик, или почитать хорошую статью по этому поводу. Сам я конечно искал и ищу информацию, но пока мои поиски не увенчались успехом. Может кто писал сетевые модули? Или натыкался на информацию?

Еще меня интересует взаимодействие модуля с пользователем. Если не через /proc то что? Системные вызовы?

Вот, в принципе все. Я в этих делах можно сказать новичок и жажду знаний. Но у меня складывается впечатление что в этой области просто какой-то информационный пробел.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: Как взаимодействовать с сетевым драйвером?

Сообщение serzh-z »

menzoda писал(а):
08.08.2009 23:17
Но у меня складывается впечатление что в этой области просто какой-то информационный пробел.
Отнюдь, рекомендую найти книгу "Linux: сетевая архитектура. Структура и реализация сетевых протоколов в ядре", КУДИЦ-ОБРАЗ, ISBN 5-9579-0094-X. перевод с огромным количеством ляпов, что неудивительно для всех книг "КУДИЦ", но материал достаточно объёмный.
Спасибо сказали:
menzoda
Сообщения: 4

Re: Как взаимодействовать с сетевым драйвером?

Сообщение menzoda »

найти книгу "Linux: сетевая архитектура. Структура и реализация сетевых протоколов в ядре", КУДИЦ-ОБРАЗ, ISBN 5-9579-0094-X

Спасибо большое. Сколько искал - а на эту книгу не натыкался.
Спасибо сказали:
Аватара пользователя
кодировщик
Сообщения: 974
Статус: зарёган в пятницу 13
ОС: Linux

Re: Как взаимодействовать с сетевым драйвером?

Сообщение кодировщик »

menzoda писал(а):
10.08.2009 12:44
найти книгу "Linux: сетевая архитектура. Структура и реализация сетевых протоколов в ядре", КУДИЦ-ОБРАЗ, ISBN 5-9579-0094-X

Спасибо большое. Сколько искал - а на эту книгу не натыкался.

Просто она на русском. Есть ещё книги по данной теме в которых всё лучше описано, но они на английском.
Спасибо сказали:
menzoda
Сообщения: 4

Re: Как взаимодействовать с сетевым драйвером?

Сообщение menzoda »

Просто она на русском. Есть ещё книги по данной теме в которых всё лучше описано, но они на английском.

Не могли бы вы назвать те книги о которых говорили? Я не против иностранных книг, даже наоборот. В некоторых переведенных на русский язык книгах и вправду куча ошибок.
Спасибо сказали:
sovereign
Сообщения: 39
ОС: Suse Linux

Re: Как взаимодействовать с сетевым драйвером?

Сообщение sovereign »

Для взаемодействия с драйвером нужен интерфейс у userspace.
Ты не можеш работать непосредственно с драйвером,тоесть с девайсом.
Вот ссылка http://www.freesoftwaremagazine.com/articles/drivers_linux
Там описан самый простой драйвер и интерфейс.
Спасибо сказали:
menzoda
Сообщения: 4

Re: Как взаимодействовать с сетевым драйвером?

Сообщение menzoda »

sovereign писал(а):
14.08.2009 14:10
Ты не можеш работать непосредственно с драйвером,тоесть с девайсом.

Это я знал. Я имел ввиду взаимодействие модуля (kernelspace) <-> драйвера (kernelspace) и модуля (kernelspace) <-> userspace, а не userspace <-> driver, или userspace <-> hardware.

sovereign писал(а):
14.08.2009 14:10
Вот ссылка http://www.freesoftwaremagazine.com/articles/drivers_linux
Там описан самый простой драйвер и интерфейс.

А вот за статью спасибо. Лично для меня пригодилась.
Спасибо сказали:
Ответить