[[ header START ]]
telegram

Форум обсуждение

telegram

Send message

telegram

[ +7-981-8529467 (Санкт-Петербург)

telegram

t.me/os2_guru

OS/2 GURU


ru · en · de · es · it · pt · cz · pl · fr
OS/2 - это совершенно другая операционная система для PC (ArcaOS, eComStation, IBM OS/2 Warp)
Программы, новости, статьи, поддержка пользователей, оборудование, вопросы и ответы.
 
[Что такое OS/2?  Новости  Установка  Обновление  
 
 
Применение  Будущее  Сообщество  Проекты  

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

[Как заработать в OS/2?

Как купить OS/2 дискету?

Идеи для фанатов OS/2

*

 
Обновление

 
Программы

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

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

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

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

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

 
История (1):

 
(Бонусы)

 
Советы:

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

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

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

 

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

 
Новая eComStation:

 
Будущее: (1)

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

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

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

 
Гаджеты

Обновите 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 подразумевает:

  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:
......

  

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


Если в компьютере eComStation что-то не работает (USB глючит / сеть медленно / только 1 процессор / программы часто падают) - это не повод удалять ОС. Надо ее настроить. Вопросы и ответы eCSFAQ

Статьи

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


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

 





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

[Google]

IBM OS/2 Warp

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

Списки протестированного OS/2 оборудования

 
Статьи


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