|
Обновите ArcaOS до уровня NeoWPS
- Установите набор PNG иконок, нарисованных дизайнером, специализирующемся на оформлении OS/2
- Установите eSchemes 2018, чтобы менять цвета и кнопки на рабочем столе
|
TITLE: Репортаж с DWS2007
DATE: 2007-07-07 12:20:34
AUTHOR: eCo Software
(Репортаж будет дополнен комментариями и фотографиями в течение июля)
В этом году конференция Developers Workshop проходит
в Амстердаме (столица Голландии). В первый день конференцию
посетило около 30 разработчиков (в основном это голландские и немецкие
разработчики программ для eComStation)
Utilizing Multi-Core processors -- Keith Merrington
Напоминает об истории процессора. Intel 8086 в 1978..
- 1987 - OS/2 родилась и preemtive multi-tasking support
- 1993 - SMP (symmetric multiprocessing), 16 процессоров
- 1996 - 64 процессора в WSeB
- 2007 - eCS 2.0 с поддержкой мультиядерных процессоров
Зачем треды нужны?
для повышения производительности,
если нужно ..
Раз мультиядерные процессоры, значит
Все программы сегодня должны быть мультипроцессорными.
В PM программах, чтобы посылать сообщения из второго треда -
WinPostMessage.
Показывает пример мультитредовой PM-программы, где второй тред
пишет на экран.
Во втором цикле создает Object window. HWND_OBJECT.
Оно невидимое, не принимает нажатия кнопок, ..
Дальше рассказывает о проблемах синхронизации и какие средства для
этого существуют. (Event, Mutex (mutual exclusion), MuxWait)
- Операции с Event - отправка, ожидание, сброс
- и так далее
Показаны схемы, как в главном процессе ожидать событие от треда.
Дальше Mutex-семафоры.
Когда они нужны. Как защитить данные.
Symmetrical Multiprocessing SMP
Несколько фактов о том, как взаимодействуют два процессора в eComStation.
Дальше примеры кода,
- как узнать количество процессоров в системе.
- DosGetProcessorStatus - проверка, включен ли он
Также напоминает об утилите MARKEXE
(позволяет пометить программу, чтобы она работала только на одном
процессоре);
При сборке программы указывайте, что она мультитредовая.
Подведение итогов
Нужно писать программы, которые выжимают максимум из SMP.
Нужен zip мультитредовый и т.п.
Наша ОС поддерживает до 64 процессоров, в магазинах
только мультиядерные компьтеры, конкуренты этого не могут.
Мы самые крутые, нужно брать быка за рога.
Reading XML files with REXX -- Christian Langanke
Предлагается обсудить вопросы:
Нахрена это нужно, какие наработки уже есть, REXXXML - за и против,
stem, пример парсинга, текущие ограничения, что планируется сделать.
Чтение из XML файлов нужно нужно чтобы:
- для загрузки сложных конфигов в REXX-программу
- позволит обмениваться сложными структурами данных между скриптами
- можно будет загружать данные из файлов в формате OpenOffice.org
Уже доступны средства:
- Код для парсинга XML
- REXXXML - libxml API
В REXXXML очень качественно сделан REXX API,
полностью реализован libxml API (все фичи),
очень хорошая документация
(в том числе основы REXX, XML, DTD, XML Schema)
Но есть и проблемы:
libxml API нестандартный для REXX.
XML-данные загружаются в бинарное дерево DOM
и там есть несколько проблем.
Кристиан думает о том, что нужно сделать по-другому.
Все должно быть сделано так, как это принято для REXX-либ.
Главное, чтобы пользоваться либой было просто.
Теперь напоминает о том, что такое stem'ы и как ими пользоваться.
Напоминает, как выглядет XML-файл
(данные уложены в иерархические пространства имен).
И теперь идет пример, как можно засунуть этот XML в stem.
Дальше примеры парсинга XML-файлов.
Чтобы парсить, вызываем одну функцию на рексе,
результат на фото:
Конечно, есть ограничения в самом рексе..
Планы на будущее: Должна быть и запись XML,
должна быть возможность пополнять стем.
Обед
Столы с едой быстро опустели. В принципе, работать уже не хочется,
можно идти спать..
Managing Sets of Program Resources -- Christian Langanke
Это всего лишь предложение и нужно продолжать обсуждение этой темы.
Сегодня ресурсы для PM-программ хранятся в DLL'ках.
Отдельно может лежать графика, хелп.
Либо можно использовать механизм TMF (Text Message File) из
Workplace Shell Toolkit. Существуют и другие способы хранения ресурсов.
И главное, каждая программа пользуется разными средствами.
Вопросы, которые интересуют Christian - как выбирать нужные ресурсы?
Обычно программа при старте выбирает язык для пользователя,
какие графические ресурсы загрузить, проверяет регистрационный ключ
(и в зависимости от этого загружает легкую демо или полную версию)
Предлагается обратить внимание на Apache MultiViews
для автоматического выбора между вариантами ресурсов.
Термины: Resource Variant, Resourсe Dimension, Preferences List.
Примеры Preferences List - смотри хидеры в HTTP-страничках.
Дальше показан пример, как веб-браузер автоматически получает
html на языке, которые понимает пользователь.
Детально рассказывает о том, что такое набор ресурсов (Resource set).
Файлы могут быть в любом формате и декодируются
Resource Set Decoder.
Также даются примеры прототипов функция для определения
Resource dimension (т.е. языковой измерение, лицензионное измерение,
хелповая измерение). Дальше программа укажет x,y,z и получит
нужные ресурсы по этой координате.
Что даст новая система?
Исчезнет необходимость в ресурсных файлах.
Система будет легко расширяться для поддержки новых форматов файлов.
Планируется, что при изменении языка в ОС, все приложения будут
получать уведомление.
Introduction to NOM -- Chris Wohlgemuth
Разрабатывается уже 2 года для OS/2.
Главные требования: release-to-release binary совместимость.
Расширение без перекомпиляции. При расширении другому разработчику не нужны
сорцы исходного класса, он получает описание интерфейса. Это хорошо для
коммерции. Возможность заменять классы.
Предлагает также несколько манипуляций с классами, которых нет в
С++, ObjectiveC.
Все это даст портабельность и расширяемость.
Текущее состояние:
компилятор, сборщик мусора, библиотеки классов в стадии разработки.
Как писать классы?
Создайте IDL-файл, скомпилируйте, добавьте C-код.
Также рассказывает о возможности выбрать в программе версию класса.
Дальше показывает сорцы и детально описывает, что происходит
и как оно все устроено.
Коллектор мусора
вся память, на которую нет ссылок - освобождается. и т.д.
Самая вкусная фича NOM - возможность проверки указателя на объект.
Как известно, разработка WPS программ очень сложна в отладке.
Разработчик сможет передавать функциям не указатель на объект,
а GetClass(указатель на объект), который позаботиться о корректных
указателях.
Будущие планы.
Интерфейс пользователя в eComStation -- Eugene Gorbunoff
описание отсутствует.
A freely programmable USB-interface for eCS -- Uwe Hinz
На примере девайса: DLP-USB245M (термометр?!)
Рассказал о том, как перехватывать USB-трафик, USBECD.SYS драйвер.
Какие инструменты Windows помогают разобраться с программированием
USB в eComStation.
Удобно, что есть REXX-интерфейс и можно писать программу управления USB
на REXX.
Как создать популярную программу -- Eugene Gorbunoff
описание отсутствует.
VirtualBox -- Adrian Gschwend
Есть версии для eComStation, Windows, MacOSX, Linux.
Производительность везде примерно одинаковая.
Фронтд-энд написан на Qt-тулките (dmiq).
Понятно, что VirtualBox самый-самый крутой, самый гибкий,..
Ядро машины платформо-независимое, область применения
VirtualBox умеет snapshot (запись/сохранение сеанса), шаред фолдерс.
Сеть: NAT или TUN/TAP, поддержка PXE, поддержка VDI, VMDK,
В машину встроен RDP-сервер. Можно пользоваться USB через RDP.
Innotek сделала машину для
Федеральной
разведывательной службы Германии Bundesnachrichtendienst,
есть две версии VirtualBox: коммерческая (бесплатна для персонального
использования) и бесплатная опенсорсная.
слева направо: Knut, Adrian Gschwend, Dmitry Kuminov
Машина рекламируется, как сверхустойчивая, если происходит трап гостевой
системы, то хост продолжает работать.
Дальше подключился Dmitry Kuminov и продемонстрировал работу гостевой Windows XP.
Управление машиной можно выполнять через командную строку,
Скрипты для создания и управления - все объектный код (COM/XPCOM).
Можно сохранять snapshot с помощью скрипта.
Qt toolkit -- Dmitry Kuminov
Дмитрий показал примеры программ, созданных на базе
Qt и работающих в среде eComStation (PIS/2, SIM, ..)
Cornelis сделал внешний нативный вид для Qt программ.
Qt 3 поддерживается в eCS, а Qt4 нету. Это не проблема,
т.к. программ на базе Qt3 намного больше.
Конечно, Qt тулкит очень удобный и мощный. Он коммерческий,
мультиплатформенный и развивающийся.
Очень легко написать первую программу. 5 строчек кода,
и окно с кнопкой готово.
Подробно описал, как установить Qt среду на свой компьютер.
При запуске утилит вызывайте через скрипт qt.cmd,
который устанавливает переменные окружения.
(хмм, может быть имеет смысл переименовать в qt-set-var.cmd, а то
новички не поймут)
Будущая ОС -- Yuri Proniakin
Показал схему микроядерных ОСов K42 и L4,
какая схема у OS/2 сегодня. И какая может быть
(везде драйверы).
Напомнил, что 16-битные программы идут лесом, 16-битные
драйверы и компоненты не оторвать. Предлагает взять IBM K42 ядро
и реализовать "драйверы" для совместимости с OS/2.
Voyager -- Adrian Gschwend
Напомнил историю Voyager.
Chris работает над NOM, думают портировать GTK+.
Планируют выполнять разработку вояджера в eComStation,
но поддерживаться будут разные платформы
(Win, Lin), потому что это важно.
Для вояджера ищут новое ядро. Некоторые участники проекта не
хотят связываться с Linux.
Сегодня есть
NOM (SOM), Voyager Desktop (WPS), Cairo (GPI/GDI), GTK+, Triton (хмм)
Конечно, система должна быть безопасной,
на базе OpenGL, бла-бла-бла..
Команда Voyager накопила документы от IBM
(из журнала ACM), разные документы от IBM'еров.
Т.е. уже можно создавать новый рабочий стол.
Показывают старые картинки.. старые схемы классов вояджера.
NOM очень крутой, удобно отлаживать программы, есть сборщик мусора.
В настоящее время разрабатывают новые WPS-классы.
Предупреждают, что это не vaporware, а все реально.
Дальше нужно определить дату выпуска первой версии Voyager 1.0.
Дальше рассказывает про подсистемы.
Cairo - PDF, мощный, современный.
Текущая версия Cairo существует, но медленная.
Теперь о текущем состоянии GTK+ Toolkit.
Лицензия LGPL позволяет его прилинковыват, поэтому это интересно
для коммерческих продуктов.
Triton - мультимедия-подсистема, аналог IO-Procs. Цели проекта,
текущий статус.
Обещают бинарную совместимость с OS/2.
Пока что предлагают VirtualBox, где будут аддишенсы для гостевой OS/2.
(Замечание: Mensys финансово не поддерживает проект Voyager,
но предоставит своим клиентам образ виртуального диска с eComStation)
Что нужно пользователям, чтобы они перешли на Voyager?
DOS*, Mou*, KBD*, VIO API, LX Loader уже есть,
GRADD driver для OpenGL бэк-энда. И т.д.
По поводу лицензий - GPL идет лесом. Как говорилось в докладе про NOM,
программы могут расширяться без необходимости смотреть исходные коды.
Решили, что лицензия на Voyager будет LGPL/CDDL.
Что дальше? Первые сорцы доступны для eComStation..
В WinXP и Lin никого..
Adrian обещает обновить сайт www.netlabs.org,
работает ftp, SVN, ..
Рынок для Voyager - Азия и Восточная Европа.
(хмм, каждые пять минут призывы: нам нужны деньги на реализацию этого проекта,
нам нужна ваша помощь)
Дополнительная информация:
Попробуй программу:
|
USB Dock - утилита показывает USB устройства, подключенные к компьютеру.
|
Комментарии: Прокомментируйте эту статью (напоминаем, автор работал над текстом несколько недель, уважайте мнение других).
|