|
Обновите ArcaOS до уровня NeoWPS
- Установите набор PNG иконок, нарисованных дизайнером, специализирующемся на оформлении OS/2
- Установите eSchemes 2018, чтобы менять цвета и кнопки на рабочем столе
|
Перспективы eCo Software -- Valery Gaynullin |
TITLE: Перспективы eCo Software -- Valery Gaynullin
DATE: 2010-11-16 14:30:31
AUTHOR: Valery Gaynullin
Валерий Гайнуллин разработал несколько драйверов для eComStation:
WarpOverlay!, Panorama R200 и Panorama VESA.
Сегодня мы решили задать разработчику несколько "горячих" вопросов.
В-1: Как получилось, что ты занялся видеодрайверами?
Встал на грабли с отсутствием полнофункционального драйвера для своей видеокарты. Хотелось смотреть кино, а в SNAP-е тогда еще не было оверлея.
В-2: Что происходит с PC сегодня? Куда всё развивается?
Производительность современных компьютеров превысила необходимый уровень. Даже компьютер 4-летней давности вполне справляется с 99% пользовательских задач. Отсюда нежелание пользователей покупать новое железо (зачем? и так все работает прекрасно) и соответственно стремление производителей осваивать новые ниши. Нетбуки предоставили обычным небогатым пользователям мобильность, ранее доступную только весьма состоятельным господам (сравните ASUS EeePC за $300 и SONY VAIO TX/TZ за $2000). Да, SONY круче по всем параметрам, например имеет привод DVD. Но с нынешней ценой на флеш-карты DVD быстро перестает быть необходимостью.
SONY имеет более быстрый процессор - но часто ли он нужен в такой маленькой игрушке? Низкая цена нетбуков дает возможность приобретать его вторым-третьим компьютером. Можно купить нетбук ребенку и не сильно переживать, если ребенок его разобьет/сломает/потеряет. Можно таскать его с собой куда угодно (на пляж например) и не сильно переживать за сохранность.
В-3: Когда SSD-накопители заменят механические жесткие диски?
Никогда.
В-4: А хороший вопрос: мониторы бывают по 30" и выше. Пробовал ли ты сидеть за большими? Какой макс.размер пригоден для работы?
не знаю. Мне важно разрешение, а не размер - зрение еще хорошее ;)
Большие мониторы обычно имеют весьма посредственное разрешение.
В-5: Какие подсистемы имеет смысл реализовать для ОС?
Загрузка драйверов в режиме Plug and Play. Полная замена звуковой и видео подсистем.
В-6: В какую сторону развивать API операционной системы?
Загрузка драйверов на ходу. Устранение из подсистемы DASD всей 16-битности.
И как следствие - полный отказ от HPFS.
В-7: Какие драйверы могут быть созданы?
Не знаю. Зависит от того, на что есть платежеспособный спрос. Сейчас сделать (портировать с Линукса) видеодрайвера для свежих Intel, ATI и NVidia - вполне реально. Но трудоемко.
Многие WiFi карты можно нативно поддержать. Всякие там 3G наверно будут иметь смысл. В отношении звука - нормальная поддержка HDA (если ее еще нет) плюс значительное перетряхивание MMPM.
В-8: Что нужно изменить в операционной системе,
чтобы упростить создание видеодрайверов?
Bus mastering подразумевает:
- интенсивную работу с физической памятью (выделение/освобождение/маппинги всякие), реакцию на прерывания. Среди нормальных OS не принято, чтобы такие действия выполнялись в ring3, поскольку это прямая дыра в системе безопасности
- в GRADD-е видеодрайвера загружаются динамически и состоят только из ring3 DLL.
Возникает вопрос, как совместить предыдущие два пункта?
В Windows задача решена так: видеодрайвер состоит из двух частей. Минипорт (ring0 драйвер, с расширением sys) и графический драйвер (dll). Разделение разумное и правильное. Но у винды есть нормальный PnP, позволяющий для любой видеокарты загрузить правильный минипорт и правильную DLL. В полуосе мы можем загружать только правильную DLL, а ring0 драйвер у нас жестко прописывается в config.sys.
То есть я либо вынужден делать универсальный минипорт, который знает все видюхи (что нереально), либо
тащить все в ring3 (что чревато трапами), либо забить на всякие фичи (что не всегда возможно, например на интеле), либо забить на PnP (что люди избалованные снапом не поймут)
В-9: Можно ли сделать wrapper Windows -> eComStation драйвера?
Строение виндового драйвера принципиально
отличается от строения полуосного. Виндовый драйвер сидит в r0 весь.
Требуется уточнение. Ответы на вопросы В-8 и В-9
выглядят противоречащими друг другу.
Но только выглядят. В NT (2000, XP) схема такая: есть минипорт
(файл с расширением sys), который с точки зрения системы есть
драйвер физического устройства. Он занят обработкой прерываний
видеокарты, организует bus mastering, распределяет видеопамять
между подсистемами (GDI, DirectX, OpenGL), выставляет видеорежимы
и управляет курсором. И есть native NT DLL, которая загружена опять-таки
в ring0 сервером графической подсистемы (win32k.sys). То есть задача
DLL - преобразовать GDI примитивы в последовательность аппаратных
команд видеочипа и эту последовательность команд передать минипорту.
Задача минипорта - "скормить" эти команды чипу, выполнив при
необходимости всякие дополнительные действия по синхронизации между
разными процессами и подсистемами. До NT4 графическая подсистема и DLL
работали как обычный процесс в ring3, начиная с NT4 - как специальный
процесс в ring0.
В-10: Можно ли портировать драйверы из Linux?
Сейчас реально сделать нормальные драйвера для интелов и радеонов.
Но делать их в той архитектуре, что осталась от IBM, не очень осмысленно.
Уже даже линуксоиды поняли, что негоже из ring3 лазить в видюху.
Соответственно надо изрядно модифицировать кучу компонент
(те же pmdd.sys и прочее безобразие, чтобы наконец перестать
дергать DLL из прерываний). В общем надо многое продумать и
еще больше - переписать. Это долго, трудно и хлопотно.
В-11: Можно ли сделать оверлей для ATI ATOM?
Нелегко, ибо его тама нетути.
В-12: Всем нужна 3D, в каком объеме ее имеет смысл реализовать?
А в каком объеме ее будут использовать? Вообще ключевую сложность в реализации
HW OpenGL в OS/2 можно описать как проблему "курица и яйцо". Нет драйверов - нет приложений.
Нет приложений - никому не нужны драйвера.
Развитие драйверов OpenGL в Линуксе имело два источника -
студии компьютерной анимации, переползающие с закрытых юниксов (Irix, Solaris, etc) и компания ID Software
со своими 3D играми. Как известно одним из первых 3D акселерированных драйверов в линуксе был драйвер Matrox G400,
в значительной мере написанный лично Джоном Кармаком.
В-13: Можно-ли выбрать одного производителя видеокарт и сделать для него поддержку - пусть не полную, но более быструю чем Panorama?
Intel или ATI?
Можно и интел и ATI. И Нвидию наверно тоже можно. Но это фуллтайм на достаточно длительный срок. И куча железок для тестирования.
В-14: Какие учебники/справочники посоветуешь для тех, кто хочет начать писать драйверы и утилиты для eComStation?
DDK, архивы группы os2ddprog, hobbes. Нормальной документации, а тем
более книг просто нет.
Дополнительная информация:
Попробуй программу:
|
Lucide - просмотр документов PDF/DjVu в eComStation.
|
Комментарии: dixie 2010-11-19 09:31:03 | Чем говорить - портанули бы RadeonHD - хоть один набор карт был бы с акселерацией и рефрешем.
Кучу железок для тестирования можно найти у юзеров - x1270, x1600, 2400, 4850 готов потестить ;)) 3750(?), использующий PC память, ещё валяется...
Понятно, что в идеале надо ring 0 dll делать - но это вопросы к переписыванию ядра :) И это (ring 0 dll) - несложно, тут больше идеологические споры на тему перацтва ;)
А хочется-то банального рефреша (CRTшчки, таки, да ;)) и аппартного блита с курсором...
Вот чесслово, обратно на подписку подпишусь, если сделаете ;) | SERG 2010-11-21 17:17:28 | "плюс значительное перетряхивание MMPM"
Согласен на 100 процентов. Тут две звуковухи хотел использовать так только ручками это можно сделать переписав ini фаил - прошлый век.
Про PNP что и говорить тоже самое.
Вообщем под отстала OS/2. Нужно многое переписывать эконками дело не спасешь. | Николай Колесников 2010-12-14 01:17:57 | молодец! я видел живого разработчика драйверов в .... 1997 году. редкая профессия. |
Прокомментируйте эту статью (напоминаем, автор работал над текстом несколько недель, уважайте мнение других).
|
Если в компьютере eComStation что-то не работает (USB глючит / сеть медленно / только 1 процессор / программы часто падают) - это не повод удалять ОС. Надо ее настроить. Вопросы и ответы eCSFAQ |
|
|