RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : А вот вопрос, однако...


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : Юрий Пронякин
To : valerius
Subj : А вот вопрос, однако...

>> Унифицированного интерфейса драйверов в OS/2 нет
>
> Разве?

А что, драйверы мыши, файловой системы (IFS) и NETBEUI имеют одинаковый интерфейс (API)? Нет, конечно. У каждого класса драйверов свой уникальный интерфейс. В пределах этого интерфейса имеется куча разных функций (с разными параметрами и разным способом возвращения результата). И маппер должен знать все эти функции всех интерфейсов. И ещё про каждый драйвер он должен знать, к какому классу он относится. Это и есть индивидуальная поддержка каждого драйвера.

>>- значит, в этот маппер придётся закладывать поддержку только избранных драйверов, и каждого из них - персонально.
>
> А по-моемому, достаточно реализовать запросы некоторого "абстрактного" интерфейса к драйверам через стандартные функции DosOpen(), DosClose(), DosWrite(), DosRead() и DosDevIOCtl(). Конечно, разных функций DosDevIOCtl() много, и как их все "отобразить" на "абстрактный" интерфейс драйверов -- мне пока тоже непонятно.

Вот-вот. Кстати, к драйверу файловой системы, например, обращение происходит через несколько иные функции.

>> Но тогда размер этого маппера гросит стать сопоставимым с размером самого ядра. Мило, ничего не скажешь.
>
> ну, если даже так, то можно это сделать более гибко. В конкретные детали реализации этого с L4Linux я пока не сильно вдавался, но можно например, сделать так (как я это себе представляю): ioctl-интерфейсы каждого драйвера не "хардкодятся" в маппере, а описываются в отдельном конфиге: Какие ioctl-функции поддерживает данный драйвер и их соответствие "абстрактным" функциям.

Я вот ещё чего боюсь. Из описания технологии Afterburning складывается впечатление, что она ориентирована на линуксную архитектуру, в которой драйверы вкомпилированы в ядро и, следовательно, патчатся вместе с ним (потому что я не представляю, как запущенный в r3 немодифицированный драйвер сможет достучаться до портов). Если это так, то против OS/2 оно бессильно, и вся затея рушится.

>> и б) поднимает вопрос: зачем тогда виртуальная OS/2 - ведь драйверы уже можно использовать и напрямую?
>
> напрямую? где? поддержку "напрямую" надо еще и реализовать, а в старом ядре она уже готовая. Задача -- только реализовать этот "маппер".

Вверху я описал, какой объём работы предстоит при создании маппера - из-за большого количества функций, которые должны быть поддержаны. Но это функции, через которые драйверы взаимодействуют с приложениями. В то же время набор функций, который нужен драйверам от ядра, куда как более скромный.

>> Как следует относиться к следующему их утверждению: "Our prototype's network performance is within 3--8% of a native Linux system"? "Типа шутка юмора"?
>
> Да, прототип -- изолированные друг от друга драйверы диска и сетевой карты, согласно бенчмарку, дает производительность сети, на 3-8% ниже, чем в родной Linux-cсистеме, за счет виртуализации и изоляции виртуальных машин. А что смущает?

То, что у них написано не "на 3-8% ниже, чем в родной Linux-системе", а "3-8% от родной Linux-системы".

Tue 19 Jun 2007 14:11 Mozilla/5.0 (OS/2; U; Warp 4.5; ru-RU; rv:1.7.12) Gecko/2005




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.