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


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

Что еще ценного мне подсказали в списке рассылки:

1) Драйверы Линуха используются в неизменном в их source форме виде. Но требуется перекомпиляция, так как код драйвера (несмотря на его нейтральность по отношению к платформе) содержит макросы и inline-функции из architecture-specific части ядра. Если требуется бинарная совместимость с обычным Линуксом, то для этого существует некий проект paravirt_ops для Линуха. И в перспективе, все ядра (и драйвера, соответственно) Линуха, согласно этому проекту, будут скомпилированы с учетом возможности паравиртуализации. То есть, это будут делать сборщики ядра. (и возможно, даже в build environment Линухового ядра будет заложена эта возможность -- это как я предполагаю).

2) Насчет вендовых драйверов. Для Afterburner скорее всего, потребуются исходники драйверов. Причем, как говорят разработчики проекта виртуализации L4Ka, они не знают точно, содержат ли виндовые драйвера "virtualization-specific" инструкции (они экспериментируют не с виндовыми, а с линуксовыми драйверами, и про виндовые не все знают). Можно в этом случае пре-виртуализацию поручить производителям виндовых драйверов. Также, были упомянуты некоторые исследования по использованию виндовых драйверов внутри VM компаниями Microsoft и Intel. А также, уже готовые технологии VMWare для их собственного гипервизора. Еще мне сказали вот что: Если мы хотим запускать виндовые драйвера внутри VM, то, скорее всего, нам придется использовать какую-то "более тяжеловесную" VM, чем в случае afterburner. Скорее всего то, что нам потребуется -- это виртуализация флага прерываний. В IA32 есть виртуальный флаг прерываний. (В линухе "virtualization-sensitive" инструкции содержат, в том числе, запрещение/разрешение прерываний, спинлоки и сохранение статуса прерываний. Насчет венды неизвестно, какие именно "virtualization-sensitive" содержат ее драйвера, но скорее всего, придется возиться именно с виртуализацией прерываний.). И еще, для новых процессоров Intel и AMD есть возможность запускать виндовые драйвера внутри VT domains. В общем, это теоретически возможно. И это радует.

3) Насчет поддержки Afterburner'ом 16-битных инструкций и применимости к исходникам OS/2:
-- На данный момент есть поддержка только 32-битного кода. Но afterburner, возможно, может быть адаптирован и для 16-битного кода (так сказал один из разработчиков Afterburner).

4) Что такое "virtualization-sensitive" инструкции■
Это надмножество привилегированных инструкций. Привилегированные инструкции вызывают TRAP в коде ОС, работающей внутри VM. Обработчик этого TRAP'а поправляет результат самОй инструкции, вызвавшей TRAP. Но проблемой является то, что существует много инструкций, которые не являются привилегированными -- их можно выполнить в usermode, но они вызывают не тот результат, что нужно. А поправить это нельзя, так как инструкция не вызывает TRAP'а, который мог бы пофиксить результат этой инструкции. В новых процессорах от Intel и AMD содержатся спец. режимы, которые решают эту проблему. (И, как я догадываюсь (но 100% пока не уверен), эти проблемы также решаемы вызовом функций wedge, вставляемых при загрузке ОС на месте NOP'ов).

5) Содержит ли приложение-mapper внутри DD/OS (Device Driver OS) специфическую поддержку для каждого драйвера в отдельности?
Ответ был следующий: Маппер содержит поддержку не отдельных драйверов устройств, а _классов_ устройств. То есть, есть поддержка для класса SCSI-устройств, класса IDE-устройств, класса LAN-адаптеров и т. д. Для каждого класса содержится поддержка некоторых общих для всего класса функций -- "наименьший общий знаменатель" этих функций. То есть, если добавляем новое устройство, то поддержка дляы него содержится внутри поддержки соответствующего класса устройств. Если устройство содержит возможности, выходящие за рамки функций, поддерживаемых DD/OS или маппером, требуется обновление всех уровней поддержки оборудования, от DD/OS до маппера.

Sat 23 Jun 2007 04:20 Mozilla/5.0 (OS/2; U; Warp 4.5; en-US; rv:1.7.10) 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.