Век двадцатый, век мобильный - так, перефразируя изречение кого-то из великих, можно сказать об уходящем столетии. За пару десятилетий персональные компьютеры прошли путь от громоздких ящиков до элегантных металлизированных корпусов размером с портсигар, свободно умещающихся в кармане. Однако за красивыми словами об изяществе дизайна или удобстве работы мало кто вспоминает о том, что же обеспечивает функционирование этих устройств и управляет ими. Надеемся, уважаемый читатель, вам понравится сегодняшняя прогулка за кулисами одной из популярнейших операционных систем для карманных компьютеров - PalmOS. Немного истории Многие из вас наверняка слышали о PalmPilot. Первое портативное устройство под этим названием выпустила фирма Palm Computing в 1996 г., и называлось оно Pilot. Однако торговая марка Pilot принадлежала фирме Pilot Pen, в связи с чем было принято решение переименовать устройство сначала в PalmPilot, а потом и в Palm. Так появился органайзер Palm. Но пользователи все равно продолжают называть его Palm Pilot и даже перенесли это название на целую категорию портативных компьютеров. Органайзеры Palm работают под управлением операционной системы PalmOS, специально разработанной для портативных устройств. Однако (думаю, что многие этого не знают) данная ОС (а точнее, ее ядро) не является собственной разработкой Palm Computing, а лишь лицензирована у компании Kadak, производителя внедряемых систем. Вот что по этому поводу говорит официальный Palm's Developer FAQ: "PalmOS строится поверх небольшого ядра, которое Palm Computing лицензировала у компании Kadak. Условия соглашения не позволяют Palm раскрывать API для создания/обработки задач внутри самой OS. Если требуется доступ к вызовам подобных функций, вы должны связаться с компанией Kadak по телефону (604) 734-2796." Чистота - залог здоровья, а простота - залог успеха Если верить рекламным и агитационным материалам компании Palm Computing, то в основе созданной ею операционной системы лежат три основополагающих принципа: простота, портативность и мобильность.
От себя хотелось бы добавить еще один немаловажный пункт - расширяемость. Под расширяемостью здесь подразумевается возможность подключения дополнительных периферийных устройств (внешняя память, диктофоны, цифровые камеры, модемы). Например, компании Handspring и HandEra, лицензировавшие у Palm Computing ее операционную систему, разработали собственные способы расширения функциональности их устройств на базе PalmOS. В случае с Handspring это достигается использованием специальных одулей Springboard, устанавливающихся в слот расширения их КПК Visor. Компания HandEra, в свою очередь, пошла по пути промышленного стандарта и встраивает в свои продукты слоты для CompactFlash-карт. Архитектура PalmOS В мире операционных систем самой популярной для разработчиков на сегодня, пожалуй, является свободно распространяемая UNIX-совместимая ОС Linux, созданная молодым финским программистом Линусом Торвалдсом и поддерживаемая с помощью Internet тысячами энтузиастов. В среде же карманных персональных компьютеров таким фаворитом, безусловно, является операционная система PalmOS. Открыв с момента ее выпуска архитектуру PalmOS для всех желающих, компания Palm Computing обеспечила себе поддержку множества программистов во всем мире. На настоящий момент более 50 тыс. разработчиков создают свои продукты и приложения под PalmOS. Микроядро Тогда как ядро Palm ОС может работать в режиме реального времени и выполнять одновременно несколько задач, сама PalmOS не имеет такой возможности (как уже говорилось выше, условия соглашения не позволяют Palm раскрывать разработчикам приложений API для создания/обработки программ внутри самой OS). В PalmOS может быть запущено только одно приложение пользовательского интерфейса, которое является основным заданием операционной системы. Если говорить простым языком, то на экране системы в один момент времени мы можем видеть интерфейс только одного приложения.
Дополнительно может быть запущена другая задача, например Синхронизация (Sync), которая осуществляет соединение с настольным компьютером. С точки зрения ядра приложение Sync является обращением с более низким уровнем приоритета. Поскольку в большинстве случаев в течение выполнения операции синхронизации пользователь не производит никаких действий, то задача соединения получает все процессорное время. Однако, если пользователь, например, прерывает процесс обмена, то задача пользовательского интерфейса тотчас же получает управление как приложение, имеющее наивысший приоритет. Ядро PalmOS оптимизировано и скомпилировано для очень специфичного типа машины, поэтому ее быстродействие чрезвычайно высоко. Память Первые версии PalmOS функционировали на процессоре Motorola 68000 с тактовой частотой 16 МГц, в их распоряжении находилось 128 Кбайт оперативной памяти и 512 Кбайт ПЗУ. В последующем размер доступного ОЗУ стал расти благодаря применению специальных модулей памяти, которые устанавливались в разъем на материнской плате КПК и достигали 8 Мбайт. Современные модели Palm, использующие PalmOS 3.5 (4.0), содержат одну карту памяти в специальном аппаратном слоте, доступном пользователю. Карта - это простая конструкция, содержащая в себе ROM- и RAM-память, которые организованы на каждой карте в одну или несколько куч (heap) размером не менее 64 Кбайт. Основной комплект приложений, входящих в PalmOS, встроен в ПЗУ. Такая структура позволяет перемещать, обновлять операционную систему, а с ней и полный комплект приложений простой сменой модулей. Дополнительные приложения, а также системные расширения могут быть загружены в RAM-память, откуда они выполняются непосредственно. Память PalmOS построена на 32-битной архитектуре. Система использует 32-битную адресацию, которая обеспечивает программному обеспечению 4 Гбайт адресного пространства для запоминания кода и данных. Это адресное пространство намного больше, чем доступная в настоящий момент физическая память. Например, современные КПК с 8 Мбайт памяти используют лишь 0,2% от возможного. По непроверенным данным, несмотря на то, что для PalmOS нет ограничений на размер файлов, сама она не может адресовать больше 12 Mбайт ОЗУ. Это стало известно во время разработки 16-мегабайтной платы памяти SuperPilot. Управление памятью в PalmOS осуществляет специальное приложение - Мemory Мanager. Графическая подсистема Если в старых версиях операционной системы обеспечивалась поддержка отображения информации лишь в четырех градациях серого (16 градаций серого у устройств Palm V и более новых), то графическая подсистема самой новой версии PalmOS 4.0 поддерживает 1-, 2-, 4- 8 и 16-битовые цвета и оттенки. В работающем под ее управлением КПК Palm m505 используются цветная активная TFT-матрица на 65 тыс. цветов. Операционная система поддерживает разрешение дисплея 160x160 пикселов. Звук Для генерации звука в новых модификациях Palm используется микросхема 68328 PWM. PalmOS, начиная с версии 3.5 поддерживает воспроизведение стандартных MIDI-звуков. Система позволяет API контролировать самые разнообразные звуки: однотоновые системные и SMF-файлы (Standart MIDI Files - стандартные MIDI-файлы). Для хранения таких файлов используются специальные SMF-записи. Управление этой системой осуществляется также при помощи специального менеджера. Файловая система Так как пространство запоминания информации лимитировано динамической RAM-памятью, для того чтобы сделать синхронизацию с персональным компьютером более эффективной, Palm не использует традиционные файловые системы. Данные сохраняются в памяти при помощи записей, которые группируются в базы данных. Определяющие характеристики операционной системы Разобравшись с основными составляющими архитектуры PalmOS, перейдем к обсуждению качественных параметров операционной системы. Наиболее важными являются следующие: Быстродействие. Операционная система может получить доступ к приложению или получить данные практически мгновенно. Дело в том, что используемая вместо традиционной файловой системы базовая модель снижения непроизводительных затрат позволяет менеджеру памяти PalmOS хранить связанные записи прямо в памяти. Что же это значит на практике? Операционная система работает с небольшими порциями данных (chunks), которые в свою очередь объединяются в некое подобие баз данных. База данных - это аналог файла в обычной операционной системе. Главным отличием является то, что база данных всегда расположена в ОЗУ, т. е. все операции с данными производятся непосредственно в памяти. За счет этого существенно экономится память, а кроме того, исчезает необходимость в отдельном носителе для хранения информации или ее буферизации. Соответственно, поскольку любые операции над базами данных производятся непосредственно в памяти, их выполнение существенно ускоряется. Аналогичным образом система запускает (скорее, здесь можно употребить термин выполняет) приложения напрямую из ROM или RAM. Информация о каждой записи хранится в специальном списке и состоит из 3 полей длиной 8 байт. Каждая запись имеет свой идентификатор, который включает 1 байт атрибутов и 3 байта уникального номера (поле атрибутов показано на рис.). Главное диалоговое окно системы мониторинга мобильных пользователей компании Palm (размещается на прокси-сервере). Бит удаления показывает, что данная запись считается удаленной, а бит изменения - вносились ли изменения в запись. Бит занятости установлен как 1 тогда, когда запись заблокирована для чтения или записи. Секретный бит говорит о необходимости ввода пароля перед открыванием записи. Низкое энергопотребление. PalmOS минимизирует потребляемую устройством мощность путем эффективного управления питанием. КПК находится в действии только во время выполнения пользовательского ввода, переходя затем в ждущий режим с пониженным энергопотреблением: Спящий режим. КПК выглядит выключенным: дисплей пуст, процессор неактивен, а главные часы остановлены. Активны только часы реального времени и генератор прерываний. PalmOS включает этот режим, когда нет активных действий пользователя в течение нескольких минут или когда он нажимает кнопку выключения. Вход из спящего режима происходит по прерыванию, например, когда пользователь нажал на любую кнопку или сработали часы реального времени по заданной программе. Когда система получает одно из этих прерываний в спящем режиме, она быстро проверяет зарядку батареи, достаточна ли она для полноценного пробуждения и подключения периферии (LCD, портов и др.), а затем переходит в рабочий режим. Ждущий режим. Работают главные часы, LCD, КПК выглядит включенным, процессорные часы активны, но не выполняют инструкции (аналогом этого режима является Остановка, или Halt). Когда процессор получает прерывание, он выходит из состояния Остановки и начинает выполнение программы прерывания. PalmOS включает этот режим, когда КПК активен, но нет процесса для обработки. Система производит переключение из ждущего режима намного быстрее, нежели из спящего, когда дополнительно требуется подключение периферии. Обычно PalmOS находится в ждущем режиме и переходит в рабочий режим на короткие периоды времени для выполнения процесса прерывания. Иными словами, КПК действует только на время выполнения пользовательского ввода. Рабочий режим. В нем процессор выполняет инструкции. PalmOS входит в этот режим, когда пользователь начинает вводить информацию в ждущем режиме или когда происходит прерывание в спящем или ждущем режимам. КПК остается в рабочем режиме до тех пор, пока происходит обработка процесса, а затем переключается в ждущий. Типичное приложение, переводящее систему в рабочий режим, использует около 5% процессорного времени. Оптимизация под небольшие устройства. PalmOS позволяет вводить информацию ввода со стандартной клавиатуры, экранной клавиатуры, а также с помощью пера. Благодаря использованию технологии Graffiti размер области ввода удалось сократить до 2,5см 2. Система рукописного ввода Graffiti дает пользователю возможность быстро и точно делать записи, вводить различную информацию в Palm с помощью пера. Обучиться вводу символов можно менее чем за 20 мин. Скорость ввода может достигать 30 слов в минуту со 100%-ной точностью. Некоторые буквы алфавита были упрощены, что позволило резко повысить скорость и точность перьевого ввода. Упрощенный набор символов Graffiti делает ввод данных с помощью пера плавным и практически безошибочным. Преимущество рассматриваемой системы в том, что компьютер не будет введен в заблуждение чьим-нибудь индивидуальным стилем письма или похожими буквами. Все, что вводится с помощью пера, мгновенно отображается на экране как текст, давая мгновенную визуальную обратную связь. Сразу же можно исправить текст, просто удалив неправильный и введя необходимый символ. Система позволяет вводить символы, накладывая их один на другой, в специальной области дисплея. Это не только сохраняет место на экране, но и дает возможность писать не глядя на область ввода. Кроме того, область ввода разделена на зоны для ввода букв и цифр. Например, вы не введете IS, если хотели ввести число 15. Кроме того, ярлыки Graffiti (Graffiti ShortCuts) позволяют построить собственную библиотеку сокращений, когда целые словосочетания можно ввести в текст парой росчерков пера. Пользовательский интерфейс PalmOS позволяет увеличить производительность благодаря уменьшению навигации между окнами, открытию новых диалогов. Размещение структур управления приложением (меню, кнопки и т. д.) упрощено настолько, что пользователь может быстро и эффективно управлять ими. Всего UI обеспечивает 10 основных управляющих структур: формы, диалоги, кнопки, триггеры, переключатели, ползунки, поля, меню, списки, линейки прокрутки. Система также дает возможность разработчикам создавать свои собственные компактные пользовательские интерфейсы размером 160x160 пикселов (размер экрана Pilot). Встроенная возможность обмена данными с ПК. Операционная система PalmOS синхронизирует данные с ПК без выполнения обременительной процедуры настройки. Для синхронизации менеджеру, работающему в фоновом режиме на ПК, достаточно нажатия одной кнопки на стыковочной станции КПК Palm или выбора одного пункта меню на ПК. Флаги состояния, а также уникальные идентификаторы записей делают сопоставление записей и их модификацию более эффективной, что в итоге уменьшает необходимое для выполнения этих операций время. Взаимодействие с популярными приложениями. PalmOS обеспечивает открытую архитектуру синхронизации, которая позволяет приложению быстрой синхронизации (HotSync) осуществлять обмен данными между КПК и приложениями сторонних производителей. Для синхронизации данных между КПК Palm и каким-либо приложением операционная система задействует специальный внешний модуль обмена (conduit). В настоящее время такие модули имеются для многих популярных приложений и в случае необходимости могут быть созданы разработчиками для своих приложений. Модули позволяют синхронизировать данные, находящиеся на КПК или ПК, вне зависимости от их типа. Например, можно отчет по потраченным финансам, выданный нам приложением Управления финансами, на Pilot'е вставить в таблицу Excel на настольном ПК. Используя дополнительное программное обеспечение для обмена от разработчиков различного ПО, Palm Pilot может синхронизироваться с большим количеством приложений MS Windows 95/98/ME:
Прозрачность соединения. Разработчики модулей обмена для PalmOS могут не беспокоиться насчет низкоуровневых протоколов обмена, т. к. локальные, последовательные и TCP/IP-соединения поддерживаются непосредственно интерфейсом управления синхронизацией. Удаленная синхронизация Кроме синхронизации с настольным компьютером через последовательный интерфейс (см. врезку Как работает процедура синхронизации карманный компьютер - настольный ПК), к которому подключена специальная синхронизационная подставка (крэдл), существуют также способы обмена данными между устройствами на базе PalmOS и удаленными компьютерами. Например, при сетевой синхронизации вызов, инициированный соответствующей системой компьютера, работающего под управлением PalmOS, должен найти индивидуальный ПК среди тысяч компьютеров в сети. Разработчики компании Palm Computing решили эту проблему, создав протокол PNRP (Palm Pilot Name Resolution Protocol 1). В связи с наибольшей распространенностью протоколов семейства TCP/IP в современных корпоративных сетях простейшим решением для нахождения отдельного компьютера является запоминание его IP-адреса в КПК Palm во время локальной синхронизации с целью последующего его использования для идентификации необходимого ПК. Таким образом, во время сетевой синхронизации протокол PNRP всегда сначала пытается соединиться с этим IP-адресом. Такая техника эффективна до тех пор, пока не используется динамическое присвоение IP-адресов с использованием протокола DHCP (Dynamic Host Control Protocol) или подобного. Тогда IP-адрес ПК может измениться в любой момент времени и более не идентифицирует компьютер-адресат для процесса сетевой синхронизации. В этом случае используется протокол PNRP. Протокол PNRP Если IP-адрес ПК изменился, для сетевой синхронизации используется только одна релевантная информация: имя удаленного компьютера (host name) и адрес той подсети, где находится данный компьютер (маска подсети). В случае удаленного доступа через модем протокол PNRP работает примерно таким образом: 1) Palm устанавливает PPP соединение с сервером удаленного доступа. 2) Palm посылает широковещательный пакет в подсеть, где находится необходимый ПК с запросом Есть ли в этой сети машина с именем 'HomePC'?. 3) Если в этой сети есть компьютер с именем 'HomePC' и запущенной на нем программой cетевой cинхронизации, он ответит: Мое имя 'HomePC' и мой IP-адрес 185.44.131.118. После того как IP-адрес установлен, начинается процесс сетевой синхронизации. По очереди запускаются все модули обмена, и происходит обновление данных в Календаре, Адресной книге, Дневнике, Электронной почте и других приложениях, после чего и TCP/IP-соединение закрывается. Технология Ethernet Cradle Palm Ethernet Cradle предназначен для подключения устройства PalmOS к локальным и корпоративным сетям. Доступ к сети обеспечивается независимо от того, где пользователь располагается территориально. Внешний вид Palm Ethernet Cradle. Вы можете увидеть разъем RJ-45 для сетевого кабеля типа витая пара. Palm Ethernet Cradle похоже на устройство для зарядки сотового телефона. Для создания соединения с любым ПК служит технология Palm HotSync или другое программное обеспечение синхронизации данных. Любой КПК серии Palm может применять Ethernet Cradle для соединения с ПК с целью получения данных и выполнения критичных приложений. Данная технология поддерживается довольно большим количеством продуктов с PalmOS 3.5: Palm III и Palm VII, IBM WorkPad 20X и 30X, SPT 1500. Она обеспечивает Ethernet-соединение со скоростью 10 Мбайт/с и использует протокол Dynamic Host Configuration Protocol (DHCP). Технология Palm Ethernet Cradle предусматривает:
Внешний вид диалоговых окон PalmOS 3.5. В общем, Palm Ethernet Cradle и Palm HotSync представляют собой программно-аппаратный комплекс для эффективного взаимодействия владельцев КПК с операционной системой PalmOS в сетевом пространстве, обеспечивая, таким образом, пользователей, ведущих мобильный образ жизни, необходимой информацией. Компоненты платформы, используемые разработчиками для написания приложений (раздел для тех, кто на ты с компилятором и дебаггером) Приложения для PalmOS главным образом являются однопоточными, управляемыми событиями программы. Только одна программа может быть запущена в единицу времени. Каждое приложение имеет главную функцию (PilotMain()), которая очень напоминает функцию main() в программах, написанных на языке С. Для того чтобы запустить приложение, система вызывает главную функцию и выполняет написанную программу. Исполняемые действия довольно-таки разнообразны, т. к. приложение, становясь активным, может выводить на дисплей пользовательский интерфейс (нормальный запуск) программы или же выполнять простую задачу без использования графического интерфейса. Единственная цель функции PilotMain - получение исполняемого кода и его выполнение. PalmOS - операционная система, которая базируется на происходящих событиях, поэтому приложения содержат обработчики событий, однако они могут применяться лишь при выполнении нормального запуска. Ваше приложение может выполнять действия и без обработчика событий, однако такая программа не может обрабатывать сложные алгоритмы. Многие приложения для PalmOS содержат структуры пользовательского интерфейса, так называемые формы, которые являются аналогами окон приложений для ПК. Пользовательский интерфейс может содержать как уже определенные UI-структуры, так и ссылки на них. Все приложения используют только ту память, которую предоставит PalmOS. Пользователи не могут влиять на процесс распределения системной памяти. Для написания приложений вы можете взять стандартные функции PalmOS. ОС содержит несколько менеджеров, которые управляют группами функций. Как правило, у всех функций, управляемых одним менеджером, один и тот же префикс, и работают они вместе для выполнения определенных действий. Менеджеры могут, например, генерировать звуки, посылать сигналы тревоги, выполнять сетевые соединения и обмениваться информацией через инфракрасный порт. Средства разработки Для разработки и отладки приложений для Palm OS есть несколько программных средств. Наиболее эффективным средством разработки является CodeWarrior Interactive Development Environment (IDE - интерактивное средство разработки) компании 3Com. Все приложения, работающие с пользовательским интерфейсом, сохраняют его структуру в одном или нескольких файлах. Для создания этих ресурсов можно использовать программу Palm OS Constructor. При программировании на любом языке обязательно приходится тестировать и отлаживать приложение (написать сложную программу без ошибок может только профессионал). Для этого существует несколько программных средств:
Устройства, работающие под управлением PalmOS Компания Palm Inc. (так называется Palm Computing после ее выхода в начале года из состава 3Com) активно проводит политику лицензирования своей операционной системы сторонним производителям. В настоящее время одни компании уже занимаются выпуском собственных устройств на базе PalmOS, а другие готовятся к выходу на этот рынок. При этом они практикуют абсолютно независимый подход к функциональным возможностям производимых устройств: как программным, так и аппаратным. Handspring Visor Фирма Handspring, изготовитель КПК Visor, была основана в 1999 г. Донной Дубински (Donna Dubinsky) и Джефом Хокинсом (Jeff Hawkins), которые и изобрели сам Palm. Они создали новый, усовершенствованный Palm, под названием Visor и снабдили его уникальным слотом расширения SpringBoard. Handera TRGPro, 330 Компания HandEra (бывшая TRG Products) стала известной благодаря разработке специальных утилит для Palm, позволяющих использовать его флэш-память для размещения в ней различных приложений PalmOS. Сейчас HandEra имеет уже две собственных разработки - КПК TRGPro, который представляет собой стандартный Palm 3-й серии, снабженный слотом для чтения CompactFlash-карт и HandEra 330, устройство совершенно нового класса, снабженное экраном с разрешением 320х240, цифровым диктофоном и слотами для чтения карт Secure Digital/MultiMediaCard и CompactFlash. Таким образом, функциональность этих устройств можно расширять путем использования карт специального формата, выпускающихся сейчас в большом количестве. Symbol SPT 1500 (1700,1740) Карманное устройство SPT серии 1xxx от компании Symbol это абсолютно новая концепция мобильного компьютера, который предназначается для работы в торговле, здравоохранении, грузоперевозках или в любой другой области деятельности, где требуются сбор и обработка данных непосредственно после их получения. SPT 1500 объединяет в себе новейшую технологию сканирования штрих-кодов для сбора (обработки) данных со всеми стандартными приложениями Palm Computing. Sony CLIE Sony, в настоящий момент сделала самый оснащенный PDA на базе Palm OS - Clie N710C. Продажи компьютеров в Америке начались только около месяца назад. Он оснащен цветным экраном с разрешением 320х320 пикселей, слотом MemoryStick, а также встроенным декодером музыкальных файлов в форматах MP3 и ATRAC и гнездом для подключения наушников. Kyocera QCP Устройство от Kyocera, похоже, будет самым необычным из рассмотренных клонов Palm, поскольку является сотовым телефоном, а точнее - смартфоном. Как правило, вы пользуетесь им как обычным мобильником, а в случае необходимости можете побродить с его помощью по Internet или получить и почитать свежую почту. К сожалению, вопрос об актуальности этого устройства в России остается открытым. Все дело в том, что смартфон PDQ работает только в сетях стандарта CDMA, а они пока чрезвычайно слабо развиты у нас в стране. Заключение Мобильная техника в последнее время развивается весьма динамично и успешно. Благодаря своим уникальным возможностям Palm стала ведущей платформой среди карманных компьютеров. Более 5 млн человек использует ее для работы с различными типами приложений. Не последнюю роль здесь сыграла эффективность управляющей ими операционной системы PalmOS. Сегодня Palm занимает исключительное место на рынке, определяя направление развития в таких стратегически важных областях, как корпоративные решения и услуги доступа к Internet по кабельным и беспроводным сетям. Хочется пожелать разработчикам компании Palm Computing не останавливаться на достигнутых позициях, а активно продвигаться вперед, приближая наше общее цифровое будущее, и оставаться законодателями моды в индустрии карманных компьютеров. http://www.palmq.ru URL этой статьи: http://www.palmq.ru/sections.php?op=viewarticle&artid=42 |