Портирование свободного программного
обеспечения
на платформу Windows CE

Вадим Житников

Почему Windows CE ?

Широко распространённая и доступная платформа КПК

Пока Linux КПК дороги и мало распространены

Будущее PalmPC не вполне ясно

Свободное программное обеспечение способно добавить новые грани к использованию КПК на платформе Windows CE

Версии Windows CE/Mobile

Microsoft Development Tools

eMbedded Visual C++

Windows Mobile 2003 SDK

Эмуляторы

Распространяются свободно

Но! Windows Mobile 2005 SDK зависит от Visual Studio 2005

eMbedded Visual C++ 4.0

Особенности платформы Windows CE

Программирование похоже на Windows

API сходное с Win32

Подмножество MFC

Сквозной UNICODE

Недостатки (недостачи :-)

Далеко не полная стандартная C библиотека

Отсутствует понятие текущей директории, переменных окружения, нет консоли и терминального ввода-вывода с перенаправлением

Для успешного порта требуются

gcc + binutils

дополнительные библиотеки

1. Rainer Keuchel (http://www.wince-devel.org)

Библиотека celib.dll и консольная программа w32console

Эмуляция переменных окружения с помощью реестра

Gcc 3.0.3 и binutils 2.11.2 (исходные коды)

Большое число портов программ в исходных кодах и двоичных сборках для архитектур arm, mips и ыр3 для Windows CE 2.11 и 3.0 (2002 г.):

Vim, Emacs, Perl, Tcl/Tk, rsync, Apache, GCL, Maxima, gnuplot, Xfree86, ssh, Gphoto, Ispell,

большинство программ вполне работоспособны в среде Windows Mobile 2003 SE

Существует “живой” Yahoo форум wince-devel, но автор больше данной проблематикой не занимается

2. Библиотека newlib (http://sourceware.org/newlib/)

3. PocketConsole (API) и PocketCMD – командная оболочка

(http://www.symbolictools.de/public/pocketconsole/)

4. Проект Voxware GNUWINCE 1.0

(http://win-ce.voxware.com:28575/Development%20Tools/gnuwince.html)

Linux cross-compiler gcc 3.3, bunutils 2.13.91

Newlib 1.11

Bash-подобная оболочка ush с набором утилит

ps, kill, mkdir, cp, mv и т.п.

Сервер rlogind для удалённого использования ush

Последняя активность проекта – октябрь 2003 г.

5. Виталий Пронкин (МГУ)

PocketGCC – native-компилятор gcc 3.2 и binutils 2.13 (11.2003)

Проект зарегистрирован на SourceForge, но далее не развивается – автор переключился на развитие Pocket C#

Имеются 2 Yahoo форума

Статус неясен, исходные коды недоступны

6. Mamaich (http://mamaich.kasone.com/fr_pocket.htm)

Cygwin-based кросс-компилятор gcc 3.3.3 и binutils 2.13.2.1

Использует PocketConsole и newlib 1.9

Имеется native-компилятор

Pthreads, SDL

Последняя активность – ноябрь 2004 г.

7. Проект GNUDE
(GNU Development Environment, http://gnude.sourceforge.net/)

Ставит целью создание полного набора GCC/binutils, включая C, C++, FORTRAN, Java cross-компиляторов, отладчиков GDB/Insight и сопутствующих утилит для разработки приложений для архитектуры ARM

Пока доступны Windows (cygwin) и Mac OS X кросс-сомпиляторы gcc 3.3.2, binutils 2.14 (Сентябрь 2003 г.)

8. Проекты, поддерживающие свои собственные порты программного обеспечения на Windows CE

PerlCE

Tcl/Tk

wxWidgets (wxEmbedded)

Проектов и разработчиков немного

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

А оно нам надо?

2005-07-23T14:10:20