LINUX.ORG.RU

доступна реализация UDI для [86 linux


0

0

STG предоставила (пока в бинарной форме, исходники обещаны) реализацию Uniform Driver Interface - единого API для драйверов для различных устройств и протоколов (то есть драйвер пишется один раз и работает на всех ОС, которые поддерживают UDI). Reference implementations технологии UDI уже существуют для HPUX, AIX, Solaris, SCO, Tru64 (пример драйвера для adaptec SCSI contoller и сетевой карты Interphase тоже доступны).

>>> Анонс



Проверено:

Мультиплатформный Драйвер (уловите иронию). А прослойку нижнего уровня писать и переписывать придется все-равно. а написать
class network_adapter
{
virtual send() = 0;
virtual recv() = 0;
}

это большой шаг в написании т.н. кроссплатформенного API.

anonymous
()

Да-да, больше тормознутых бинарных интерфейсов с кучей layer'ов друг над другом. И чтоб разные!

green ★★★★★
()

Насчет бинарных: скоро будут сырцы. Зато доки на UDI очень полные и спецификация не меняется каждые 12 часов как disk subsystem в линухе. И все-таки иметь уж лучше какие-нить драйвера чем вообще никаких. И вендорам тоже намного проще - не надо 4 драйвера писать для PCI-железок (для sco, solaris, linux, tru64).

hvv
() автор топика

Кому дать "Руководство по написанию драйверов устройств" от SCO Xenix? Ну любо дорого же! Я за полдня написал драйвер мультипортовки. А потом через полгода тоже самое сел делать для FreeBSD и Linux ... :( Не, если подойти к драйверам методологически верно, мизерные тормоза по "лишнего" "layer"-а будет компенсированно безглючностью, ясного кода да и всего что составляет качество собсвенно драйвера.

vodz ★★★★★
()
Ответ на: комментарий от RSI

1) Одно маленькое но - наличие новых уровней абстракции + инкапсуляция, делает оптимизацию маловозможной. 2) в SCO пакет == linked list of buffers, in Linux - it's always single data chunk, so here is home exersice - make SINGLE code that will arrange Rx/Tx packet to be cache aligned. Or even simpler - write single code that will take advantage that linux packet always come in one chunk :-) 3) возьми 4 гига-адаптера, запусти tcp stress и убедись что UDI overhead is more then 15% compared to non-UDI driver !!!! (beg pardon for eng-rus mix)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.