Показать сообщение отдельно
Старый 13.01.2008, 16:17 Вверх   #1
Профессиональный DJ
 
Аватар для SETRA
SETRA вне форума
Доп. информация
По умолчанию Пишем под Symbian OS

Операционная система Symbian — одно из наиболее интересных явлений в мире ОС за последние годы. Успешно противостоя натиску Microsoft на мобильном рынке, эта система сегодня стала едва ли не самой распространенной в смартфонах и коммуникаторах.

Symbian — далекий потомок операционной системы EPOC, изначально создававшейся для карманных компьютеров Psion. Компактная, быстрая и надежная ОС пережила несколько инкарнаций, в конце концов превратившись в современную Symbian. Платформа Symbian — уникальный пример системы, совместившей в себе как академические традиции с их тщательностью проработки базовых концепций, так и прагматичность, свойственную коммерческим проектам.

Работа над Symbian OS началась в октябре 1994 г., в то время в команде специалистов, работавшей над проектом Psion, окончательно сформировалось решение использовать Си++ как основу для ОС. К этому времени был накоплен достаточный опыт в области объектного программирования (в процессе разработки ПО и ГИП для EPOC16), и, по воспоминаниям авторов, первые два года ушли на тщательную проработку концепции. Во многом благодаря этому удалось создать действительно эффективную ОС, адаптированную к ограниченным ресурсам мобильных устройств. Первая версия ОС (тогда еще под названием EPOC) появилась на рынке в 1996 г., когда был выпущен КПК Psion Series 5. Версия EPOC Release 5, представленная в марте 1999 г., — это переработанная редакция со множеством дополнительных функций (преимущественно прикладных). В 2002 г. появился первый смартфон на базе этой ОС (Nokia 7650), затем — первый коммуникатор (Sony Ericsson P800), и, что называется, «процесс пошел». Впрочем, история развития Symbian — предмет отдельного разговора, здесь же ограничимся лишь упоминанием актуальных на момент написания этой статьи версий. Прежде всего это Symbian OS v7.0s (в вариантах Series 60 2nd Edition Feature Pack 1, 2 и 3; Nokia N70, N90), Symbian OS v9.1 (Series 60 3rd Edition; Nokia 3250, N71, N80, N91, N92, E60, E61, E70), а также редакции, используемые компанией Sony Ericsson: UIQ 1.1 (Symbian OS v6.1), UIQ 2.1 (Symbian OS v7.0), UIQ 3 (Symbian OS v9).

Ядро
Symbian OS — едва ли не единственный пример распространенной и отработанной микроядерной (если говорить о версии ядра EKA2, то и наноядерной) операционной системы. Получается, что в реальной жизни ОС, основанные на прогрессивной концепции микроядра, с неизбежностью «обрастают костылями», нарушающими идеологическую стройность, но способствующими решению прикладных задач (например, перенос графической подсистемы в ядро при разработке Windows NT 4.0). Но создателям Symbian OS удалось совместить эффективность и концептуальную стройность, несмотря на то что современные версии этой системы предоставляют исключительно обширные возможности, в том числе средства для работы с потоковыми данными, стеками протоколов, критичными к латентности ядра, графикой и видео высокого разрешения). Более того, если говорить о ядре, то одной из основных особенностей версии Symbian 9.0 стал переход на технологию «наноядра» (ЕКА 2, EPOC Kernel Architecture 2). EKA2 — многопоточное ядро с высоким уровнем реентерабельности и атомарности операций (например, допускается вызов обработчика прерывания даже во время процедуры переключения контекста). Оно также обеспечивает возможность работы в режиме реального времени (изначально это делалось, чтобы разработчики аппаратных средств могли отказаться от GSM-модулей, функционирующих под управлением специализированных ОС, переложив эту задачу на центральный процессор).

Будучи микроядерной операционной системой, Symbian «выносит» практически все прикладные (т. е. выходящие за пределы компетенции ядра) задачи в модули-серверы, функционирующие в пользовательском адресном пространстве. Это, правда, не избавляет от регулярных сбоев в смартфонах с этой ОС, но позволяет предотвратить потерю пользовательских данных.

Основные API
Возможности Symbian OS весьма обширны — это вам не виртуальная машина J2ME с многочисленными ограничениями и не Palm OS, а действительно современная, мощная и функциональная операционная система. К ним относятся стандартные средства (планирование процессов и управление ресурсами, запуск программ и связывание динамических библиотек, вывод графики и работа с сетью), а также инструментарий для трехмерной графики (даже акселерированной посредством Open GS ES), работы с мультимедийными потоками в реальном времени (это не только музыка, но и VoIP), Location API (для подключения источников географической информации) и пр.

Все возможности Symbian OS распределены по компонентам, независимым от остальной системы (при этом допускается удаление одного из них без ущерба для всего комплекса). Назначение базового API (модуль Base) очевидно, стоит только отметить, что вместо многих стандартных решений, таких, как, скажем, стандартная библиотека Си++, используются собственные решения, более эффективные в рамках идеологии этой ОС. Подсистема безопасности отвечает за реализацию криптографических алгоритмов, управление сертификатами, инсталляцию ПО и пр. Графический модуль содержит API для отрисовки графики и текста, управления шрифтами, вставки картинок и др. В него также входит клиентский API Window Server и подсистема анимации.

Подсистема «прикладных каркасов» (application framework) — решение, специфичное для Symbian OS. Идеология Symbian OS предполагает разнесение прикладной логики программы и пользовательского интерфейса. Базовые структуры и принципы работы (например, предположение о том, что у всякой программы-редактора есть документ, с которым она работает) или средства обработки клавиатурного ввода заложены и частично реализованы в «каркасе». Фактически именно эта подсистема предоставляет реальным прикладным программам универсальный механизм для решения типовых задач. ГИП может отличаться от устройства к устройству, но принципы его работы неизменны.

Программные «движки» (engines) инкапсулируют логику прикладных программ. Они независимы от ГИП и при необходимости их можно использовать напрямую (скажем, при доступе к данным календаря для его «движка» не важно, чей вызов обслуживается: собственного пользовательского интерфейса или сторонней программы). На этом же уровне функционируют подсистемы обработки мультимедиа и сервисные библиотеки. Наконец, стек протоколов содержит сетевые и коммуникационные компоненты, а также средства синхронизации и телефонии (подсистема расширяема, процесс подключения модулей, реализующих новые стандарты, прост).

Подсистема безопасности (начиная с Symbian v9.x) предполагает предотвращение доступа к структуре каталогов (для «неподписанных» программ, например, запрещен доступ к каталогам других утилит, системному каталогу), доступ к некоторым данным возможен в режиме «только чтение». Самое же неприятное — так называемая «модель возможностей» (capabilities), определяющая доступность тех или иных API. Открытые API составляют около 60% от всех функций ОС, «базовые» включают в себя коммуникационные подсистемы (Интернет, Bluetooth, сотовая связь и др.) и PIM. Они тоже доступны, но попытка вызвать, скажем, функцию отсылки SMS со стороны несертифицированной программы приводит к появлению запроса на разрешение этого действия, тогда как сертифицированная сможет сделать это прозрачно и незаметно для пользователя. В «расширенные» API входят функции, позволяющие манипулировать системной информацией, а «права изготовителя» — предоставляют самый полный контроль над устройством.
  Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
 
Время генерации страницы 0.06686 секунды с 10 запросами