Разработчик | Psion Symbian Ltd. Symbian Foundation Nokia Accenture |
---|---|
Написано в | Язык ассемблера , C , затем C++ |
Семейство ОС | EPOC ( Symbian ) |
Рабочее состояние | Прекращено |
Исходная модель | Запатентованное и с открытым исходным кодом |
Первоначальный выпуск | 2005 ( 2005 ) |
Окончательный релиз | 10.1 / 2 октября 2012 г. ( 2012-10-02 ) |
Маркетинговая цель | Мобильные телефоны |
Доступно в | Английский |
Платформы | РУКА |
Тип ядра | Микроядро в реальном времени |
Лицензия | Затмение Публичное |
Предшествовал | ЕКА1 |
Официальный сайт | Developer.symbian.org/wiki/index.php/Category:Kernel_&_Hardware_Services |
EKA2 ( EPOC Kernel Architecture 2 ) — это ядро операционной системы реального времени второго поколения для платформы Symbian , [1] которое возникло в более ранней операционной системе EPOC .
EKA2 начинался с проприетарной лицензии программного обеспечения. В октябре 2009 года он был выпущен как бесплатное и открытое программное обеспечение под лицензией Eclipse Public License . [2] В апреле 2011 года он был возвращен к проприетарной лицензии.
Как и его предшественник EKA1 , он имеет вытесняющую многопоточность и полную защиту памяти. Основные отличия:
Пользовательский интерфейс EKA2 почти полностью совместим с EKA1. EKA1 не использовался после версии Symbian OS 8.1 и был заменен в 2005 году.
Главным преимуществом EKA2 была его способность запускать полные стеки протоколов телефонной сигнализации . Ранее, на телефонах Symbian, они должны были работать на отдельном центральном процессоре (ЦП). Такие стеки сигнализации очень сложны, и переписать их для работы в исходном режиме на Symbian OS обычно не представляется возможным. [ необходима цитата ] Таким образом, EKA2 позволяет слоям личности эмулировать базовые примитивы других операционных систем, тем самым позволяя существующим стекам сигнализации работать в основном без изменений.
Гарантии реального времени являются предпосылкой сигнальных стеков, а также помогают в задачах мультимедиа. Однако, как и в любой RTOS, необходим полный анализ всех потоков, прежде чем какие-либо гарантии реального времени могут быть предложены чему-либо, кроме потока с наивысшим приоритетом; поскольку потоки с более высоким приоритетом могут помешать выполнению потоков с более низким приоритетом. Любая задача мультимедиа, скорее всего, будет включать в себя графическую, сетевую активность и/или активность хранения, которые с большей вероятностью нарушат поток, чем ядро.
Внутри ядра EKA1 допускает только один поток (плюс нулевой холостой поток). EKA2 допускает много потоков. Это значительно упрощает написание драйверов устройств , включающих сложные конечные автоматы , например, для карт памяти SD или USB-флешек . Прерывания обрабатываются с помощью процедуры обслуживания прерываний , которая может запросить немедленный отложенный вызов функции (вызывается сразу после обработки прерываний) или отложенный вызов функции , который ставится в очередь для выполнения в потоке ядра. Любой из них может, в свою очередь, взаимодействовать с пользовательскими потоками.
Управление питанием в EKA2 в значительной степени не изменилось по сравнению с EKA1. Точная схема различается в зависимости от телефона, но обычно нулевой поток переводит ЦП и периферийные устройства в спящий режим, после запроса пробуждения всякий раз, когда должен истечь следующий таймер.
EKA2 работает на процессорах архитектуры ARM и эмуляторе WINS . Существуют неофициальные порты для других процессоров. На эмуляторе EKA2 обеспечивает несколько лучшую эмуляцию, чем EKA1, в особенности для RProcess
API, которые Symbian OS использует для представления процессов . В EKA1 они вообще не работали на эмуляторе, который работает как один процесс Windows.
Большая часть заслуги в создании EKA2 принадлежит одному инженеру ядра Symbian, который начал проект как эксперимент за много лет до того, как он стал официальной частью Symbian OS. [3]