eCo Software
не получает вознаграждение
из США

 
Обновление

 
Программы

 
(Санкт-Петербург)

 
Преимущества (1)

 
Разработчику (1)

 
(Пайпы программ)

 
Компании: (1)

 
История (1):

 
(Бонусы)

 
Советы:

 
(Барьеры и решения)

 
Технологии: (1)

 
(Применение в науке, лаборатории, ..)

 

 
Готовые решения:

 
Новая eComStation:

 
Будущее: (1)

 
(Ссылки на другие сайты)

 
(Картинка дня)

 
Артефакты OS/2

 
Гаджеты

РЕКЛАМА: ArcaOS 5.1 Русская версия
Пакет русификации ArcaOS 5.1 OS/2 давно доступен. Поддерживается любая версия: 5.1, 5.1.1.

eCo Software может выпустить и другие пакеты (Немецкий, Голландский, Бразильский Португальский, Испанский, Шведский и т.д.)

Перспективы 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 подразумевает:

  1. интенсивную работу с физической памятью (выделение/освобождение/маппинги всякие), реакцию на прерывания. Среди нормальных OS не принято, чтобы такие действия выполнялись в ring3, поскольку это прямая дыра в системе безопасности
  2. в 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 году. редкая профессия.

Прокомментируйте эту статью (напоминаем, автор работал над текстом несколько недель, уважайте мнение других).


Ваше имя:

Ваш E-Mail:

CODE:
221265......

  

Ваш комментарий:


Писать программы для eComStation - это выгодно: a) система имеет более компактный API, который хорошо продуман и эффективен, b) Рынок не такой бесконечный, как у Windows. Все пользователи eComStation узнают про ваш продукт, c) Один разработчик значительно влияет на всю ОС.

Статьи

Операционная система
Программное обеспечение
Оборудование
Для разработчика
Разное
Колонка редактора


Готовая eComStation на SSD диске

 





Последний активный опрос: Какая высота барьера RPM?

[Google]

IBM OS/2 Warp

 
Обучение новичков

Отчет: OS/2 совместимое оборудование

 
Статьи


   
  Почему eComStation?
Возможности
Особенности
Применение
Ролики и скриншоты
   eComStation для
для бизнесменов
для студентов и инженеров
для продавцов компьютеров
сообщество пользователей
   Разработчик
Распространить программу
Описание API, библиотеки
Начать новый проект
Конкурсы
   Программы
Он-лайн каталог
Выбрать через eCo Market
   Служба поддержки
Отправить вопрос
Купить eComStation
Вопросы и ответы
Обучение новичков
 
 
© 2001 - 2025 eCo Software, All rights reserved
Сибирский Медведь **********
eComStation Serenity Systems International • OS/2 Warp IBM Corporation • ArcaOS Arca Noae