Open Source и OS/2. Часть 2

DATE: 2004-03-03 11:19:34

AUTHOR: Yuri Prokushev (prokushev@freemail.ru)

Введение

Первая статья по Open Source OS/2 вызвала довольно активную реакцию. В связи с этим на ваше внимание выносится следующая статья по той же теме. В отличии от первой, она носит менее обзорный характер и содержит больше практической информации. В данной статье рассматриваются вопросы замены частей OS/2 их Open Source аналогами.

Не смотря на то, что целенаправленной разработки Open Source OS/2 до сих пор не велось (кроме проекта osFree), существует достаточно большое количество Open Source аналогов тех или иных частей OS/2. Здесь я приведу известные мне программы.

Базовые утилиты командной строки

На данный момент утилитами командной строки занимается проект osFree. Сейчас это:

ANSI

ATTRIB

CHKDSK

FORMAT

RECOVER

TREE

VOL

Прежде всего, необходимо получить исходный текст данных утилит с CVS. Скачать архив с последними исходными текстами можно с Hobbes.

Для компиляции исходного кода вам понадобятся следующие программы и библиотеки:

Open Watcom

OS/2 Warp Toolkit

Doxygen (Только для документации)

Результат работы программ представлен на скриншотах:

ANSI
ATTRIB
CHKDSK
FORMAT
RECOVER
TREE
VOL

К сожалению, в проекте osFree участвует достаточно мало народа. Со времени написания первой статьи доступ к CVS прекратился. Спустя какое-то время исходные тексты были перенесены в CVS Netlabs, где они сейчас и находятся.

В большинстве случаев утилиты узкофункциональны и не требуют глубоких знаний операционной системы. Т.е. могут быть легко и с малыми затратами написаны любым желающим.

Командный процессор

Довольно приятным известием явилось сообщение о бесплатном распространении (а позднее и с исходными текстами) фирмой JP Software программного продукта 4OS2, широко известного общественности. Являясь практически полным аналогом штатному CMD.EXE, 4OS2 значительно расширяет возможности работы с командной строкой, делая ее более эффективной и удобной. При этом 4OS2 является 32-битным приложением, в отличии от оригинального CMD.EXE.

4OS2

На данный момент 4OS2 развивается в 3-х проектах различными командами: osFree, Netlabs и SciTech (в репозитории OpenWatcom).

Служба справки

Разработкой замены IPF занимается Aaron Lawrence. Последняя версия его программы NewView доступна с Hobbes. Кроме замены veiw.exe, он пишет замену библиотеке helpmgr.dll. После чего подсистема IPF OS/2 будет полностью завершена (при наличии еще компилятора ipf и документации).

NEWVIEW

Rexx

Regina Rexx разрабатывается Mark Hessling, а до этого Anders Christensen. Regina REXX реализована как библиотека, предназначенная для использования с различными приложениями. Интерфейс Regina совместим с интерфейсом REXX SAA фирмы IBM.

Пример использования библиотеки:

REGINA REXX

Для полной замены интерпретатора REXX требуется ряд доработок библитеки, в частности, указание тех же ординалов, что и в родной библиотеке от IBM. На данный момент есть некоторые проблемы с поддержкой 16-битных функций (используются, например, интерпретатором командных файлов CMD.EXE).

OpenGL

OpenGL для OS/2 уже давно не развивается и поэтому появился ряд аналогов. Это Mesa3D от Evgeny Kotsuba и MesaGL от SciTech Software. Причем первая выглядит наиболее перспективной.

JFS

С драйвером JFS есть ряд проблем. Несмотря на ряд упоминаний и наличии ссылок работоспособной версии мне найти не удалось. Приведенные ссылки зачастую ведут в никуда или на сильно устаревшие версии. Исходные тексты до сих пор недоступны.

MMOS/2

К сожалению, Multimedia для OS/2 остается одной из малоразвитых областей. При наличии довольно большого количества проигрывателей, конвертерев и просмотрщиков, используется метод разработки “в лоб”. В результате этого теряется возможность повторного использования данных декодеров для остальных программ.

На данный момент существует ряд приложений, которые используют MMOS/2. В их числе JPEGIO Chris'а Wohlgemuth'а. Пример работы декодера представлен ниже (естественно, с сильным ухудшением качества ради уменьшения времени загрузки).

JPEGIO

Здесь же можно видеть стандартный просмотрщик picview, который довольно легко поддается клонированию.

До недавнего времени Chris также разрабатывал CW MM Classes, которые представляли из себя замену IBM MM Classes. Проект начал даже переезжать на Netlabs, но “доброжелатели” (явные примеры зачастую видны на данном сайте) угробили данный проект и теперь рассчитывать на новые версии не приходится. Chris продолжает выпускать классы только для узкого круга друзей.

Presentation Manager

Разработка Open Source Presentation Manager начата проектом FreePM. На данный момент он на стадии планирования. На CVS вы сможете найти исходные тексты данной разработки. Основным разработчиком является Evgeny Kotsuba (он же поддерживает Mesa3D).

Проект FreePM базируется на следующих основных принципах и идеях:

Клиент-серверная модель

Минимум промежуточных слоев от приложения до оборудования

Target “devices”: memory, gengradd, Scitech nucleus, PM window, (?) printer driver

Support for alfa-channel, anti-aliasing, shadows, OpenGL on window/window class level

Поддержа (возможно) userid на уровне окон

Robust message subsystem

Поддержка нескольких и удаленных рабочих столов

Поддержка непрямоугольных окон (?)

Лучшая поддержка ОО для окон, скажем, стандартное системное меню with current window properties and window class properties

Лучшее API, использование слассов C++ в API

Поддержка “скинов”

Robust ini usage, support for ini clearing and backup, (?) text ini

Совместимость со старыми программами PM как минимум на уровне исходных текстов

Однако, уже существует одна из частей. Это FreeType/2. FreeType/2 является заменой драйвера TRUETYPE.DLL.

Приведенный пример актуален для Warp 4. В eComStation TrueType драйвер лучше, чем в Warp 4, но здесь разговор не об этом. FreeType/2 доступен на hobbes благодаря Andrew Zabolotny, Michal Necasek и многим другим.

FREETYPE

Здесь же виден редактор e.exe, который также не представляет трудностей для клонирования.

На данный момент новостей по проекту нет и cvs давно не обновляется.

Интернет-утилиты командной строки

Стандартные интернет-утилиты зачастую не переносятся в OS/2 по причине отсутствия такой необходимости. Однако существует ряд утилит, которые в той или иной мере совместимы с утилитами OS/2.

FINGER

Зачастую это утилиты перенесенные с *nix. В той или иной степени благодаря проекту UnixOS/2.

Netscape/IBM WEB Browser/IBM WEB Explorer

Здесь мало что можно добавить, так как проект Mozilla довольно широко известен. Единственное, это создание ассоциаций и врапероа, которые вызывают Mozilla, вместо Netscape и Web Explorer. Также необходима библиотека webex.dll, которая использовалась для Embeded Explorer.

MOZILLA

Здесь не предвидится большых трудностей, кроме как с созданием библиотеки webex.dll, так как Embeded Gecko еще не доступен, а реализовывать библиотеку необходимо именно через него.

Выводы

Приведенные в данной статье программы довольно широко известны и некоторые из них используются повседневно. Другие менее используемы. Однако факт остается фактом: части OS/2 заменяются сторонними разработчиками по мере их большего устаревания. Остается одна проблема: собрать все в одном месте, с едиными инструментами разработки, с единой технологией. Это может дать дальнейший толчек к развитию Open Source проектов и уменьшению дублирования работы.

Написание многих частей OS/2 не требует больших временных затрат или особых знаний. В частности, написание многих утилит командной строки, приложений PM типа e.exe, picveiw.exe, ecscalc.exe, ee.exe, epm.exe, find.exe, helpmsg.exe и многих других довольно тривиально и необходимая информация широко доступна.

Читайте также:

Open Source и OS/2

Внутри ядра OS/2

Формат файла KEYBOARD.DCP

Дисплейные драйверы технологии GRADD

OS/2 Presentation Drivers in a Nutshell

A Note on the OS/2 Warp Boot Sequence

Inside the OS/2 Kernel

Adventures in Kernel Debugging

OS/2 Installable File Systems

OS2LDR and OS2KRNL The Secret Handshake

Multimedia I/O Procedures

Inside INF

KEYBOARD.DCP File Format

Замечание: Данная статья была впервые опубликована здесь: Open source и OS/2, часть 2

Комментарии к статье:

часть 1

часть 2

часть 3