===== Open Source и OS/2. Часть 2 ===== **DATE**: 2004-03-03 11:19:34 **AUTHOR**: Yuri Prokushev () ==== Введение ==== [[oss1-os2|Первая статья]] по Open Source OS/2 вызвала довольно активную реакцию. В связи с этим на ваше внимание выносится следующая статья по той же теме. В отличии от первой, она носит менее обзорный характер и содержит больше практической информации. В данной статье рассматриваются вопросы замены частей OS/2 их Open Source аналогами. Не смотря на то, что целенаправленной разработки Open Source OS/2 до сих пор не велось (кроме проекта [[http://www.osfree.org/|osFree]]), существует достаточно большое количество Open Source аналогов тех или иных частей OS/2. Здесь я приведу известные мне программы. ==== Базовые утилиты командной строки ==== На данный момент утилитами командной строки занимается проект [[http://www.osfree.org/|osFree]]. Сейчас это: * ANSI * ATTRIB * CHKDSK * FORMAT * RECOVER * TREE * VOL Прежде всего, необходимо получить исходный текст данных утилит с CVS. Скачать архив с последними исходными текстами можно с [[http://hobbes.nmsu.edu/|Hobbes]]. Для компиляции исходного кода вам понадобятся следующие программы и библиотеки: * Open Watcom * OS/2 Warp Toolkit * Doxygen (Только для документации) Результат работы программ представлен на скриншотах: | {{ss_ansi.gif}} | | ANSI | | {{ss_attrib.gif}} | | ATTRIB | | {{ss_chkdsk.gif}} | | CHKDSK | | {{ss_format.gif}} | | FORMAT | | {{ss_recover.gif}} | | RECOVER | | {{ss_tree.gif}} | | TREE | | {{ss_vol.gif}} | | VOL | К сожалению, в проекте osFree участвует достаточно мало народа. Со времени написания первой статьи доступ к CVS прекратился. Спустя какое-то время исходные тексты были перенесены в CVS Netlabs, где они сейчас и находятся. В большинстве случаев утилиты узкофункциональны и не требуют глубоких знаний операционной системы. Т.е. могут быть легко и с малыми затратами написаны любым желающим. ==== Командный процессор ==== Довольно приятным известием явилось сообщение о бесплатном распространении (а позднее и с исходными текстами) фирмой [[http://jpsoft.com/|JP Software]] программного продукта 4OS2, широко известного общественности. Являясь практически полным аналогом штатному CMD.EXE, 4OS2 значительно расширяет возможности работы с командной строкой, делая ее более эффективной и удобной. При этом 4OS2 является 32-битным приложением, в отличии от оригинального CMD.EXE. | {{ss_4os2.gif}} | | 4OS2 | На данный момент 4OS2 развивается в 3-х проектах различными командами: osFree, Netlabs и SciTech (в репозитории OpenWatcom). ==== Служба справки ==== Разработкой замены IPF занимается Aaron Lawrence. Последняя версия его программы NewView доступна с [[http://hobbes.nmsu.edu/|Hobbes]]. Кроме замены veiw.exe, он пишет замену библиотеке helpmgr.dll. После чего подсистема IPF OS/2 будет полностью завершена (при наличии еще компилятора ipf и документации). | {{ss_newview.gif}} | | NEWVIEW | ==== Rexx ==== Regina Rexx разрабатывается Mark Hessling, а до этого Anders Christensen. Regina REXX реализована как библиотека, предназначенная для использования с различными приложениями. Интерфейс Regina совместим с интерфейсом REXX SAA фирмы IBM. Пример использования библиотеки: | {{ss_reginarexx.gif}} | | 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. В их числе [[http://www.os2world.com/cdwriting/jpgio/jpgio.htm|JPEGIO]] Chris'а Wohlgemuth'а. Пример работы декодера представлен ниже (естественно, с сильным ухудшением качества ради уменьшения времени загрузки). | {{ss_jpegio.jpg}} | | JPEGIO | Здесь же можно видеть стандартный просмотрщик picview, который довольно легко поддается клонированию. До недавнего времени Chris также разрабатывал CW MM Classes, которые представляли из себя замену IBM MM Classes. Проект начал даже переезжать на [[http://netlabs.org|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 доступен на [[http://hobbes.nmsu.edu/|hobbes]] благодаря Andrew Zabolotny, Michal Necasek и многим другим. | {{ss_freetype.gif}} | | FREETYPE | Здесь же виден редактор e.exe, который также не представляет трудностей для клонирования. На данный момент новостей по проекту нет и cvs давно не обновляется. ==== Интернет-утилиты командной строки ==== Стандартные интернет-утилиты зачастую не переносятся в OS/2 по причине отсутствия такой необходимости. Однако существует ряд утилит, которые в той или иной мере совместимы с утилитами OS/2. | {{ss_finger.gif}} | | FINGER | Зачастую это утилиты перенесенные с *nix. В той или иной степени благодаря проекту UnixOS/2. ==== Netscape/IBM WEB Browser/IBM WEB Explorer ==== Здесь мало что можно добавить, так как проект Mozilla довольно широко известен. Единственное, это создание ассоциаций и врапероа, которые вызывают Mozilla, вместо Netscape и Web Explorer. Также необходима библиотека webex.dll, которая использовалась для Embeded Explorer. | {{ss_mozilla.gif}} | | 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 и многих других довольно тривиально и необходимая информация широко доступна. Читайте также: * [[http://ru.ecomstation.ru/showarticle.php?id=63|Open Source и OS/2]] * [[http://ru2.halfos.ru/rdm2/articles/kernelr.html|Внутри ядра OS/2]] * [[http://ru2.halfos.ru/rdm2/articles/keyboard.html|Формат файла KEYBOARD.DCP]] * [[http://ru2.halfos.ru/rdm2/articles/gradd.html|Дисплейные драйверы технологии GRADD]] * [[http://www.edm2.com/0102/pmdrivers.html|OS/2 Presentation Drivers in a Nutshell]] * [[http://www.edm2.com/0701/warpboot.html|A Note on the OS/2 Warp Boot Sequence]] * [[http://www.edm2.com/0607/kernel.html|Inside the OS/2 Kernel]] * [[http://www.edm2.com/0607/0410/kdb.html|Adventures in Kernel Debugging]] * [[http://www.edm2.com/0103/os2ifs1.html|OS/2 Installable File Systems]] * [[http://www.edm2.com/0703/hshk.html|OS2LDR and OS2KRNL The Secret Handshake]] * [[http://www.edm2.com/0403/mmio.html|Multimedia I/O Procedures]] * [[http://www.edm2.com/0308/inf.html|Inside INF]] * [[http://www.edm2.com/0303/keyboard.html|KEYBOARD.DCP File Format]] * **Замечание**: Данная статья была впервые опубликована здесь: [[http://ru.ecomstation.ru/showarticle.php?id=102|Open source и OS/2, часть 2]] * Комментарии к статье: - [[ru:articles:oss2-os2:c1|часть 1]] - [[ru:articles:oss2-os2:c2|часть 2]] - [[ru:articles:oss2-os2:c3|часть 3]] ~~DISCUSSION~~