RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Ответить на сообщение
Имя:
e-mail:
FIDO:
Home page:
сохранить данные о вас
Тема:
> >> Унифицированного интерфейса драйверов в 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-системы".
__, _,_ __, _,_ _,
|_) | | | \ | / /_\
| \ | | |_/ |/ | |
~ ~ `~' ~ ~ ~ ~
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.