EKA2
Deweloper |
Psion Symbian Ltd. Symbian Foundation Nokia Accenture |
---|---|
Napisane w | Język asemblera , C , a następnie C++ |
Rodzina OS | EPOC ( Symbian ) |
Stan roboczy | Przerwane |
Model źródłowy | Własne i otwarte oprogramowanie |
Pierwsze wydanie | 2005 |
Ostateczne wydanie | 10.1 / 2 października 2012 |
Cel marketingowy | Telefony komórkowe |
Dostępne w | język angielski |
Platformy | RAMIĘ |
Typ jądra | Mikrojądro w czasie rzeczywistym |
Licencja | Publiczne zaćmienie |
Poprzedzony | EKA1 |
Oficjalna strona internetowa |
EKA2 ( EPOC Kernel Architecture 2 ) to jądro systemu operacyjnego czasu rzeczywistego platformy Symbian drugiej generacji , wywodzące się z wcześniejszego systemu operacyjnego EPOC .
EKA2 zaczęło się od własnościowej licencji na oprogramowanie. W październiku 2009 został wydany jako darmowe oprogramowanie typu open source na licencji Eclipse Public License . W kwietniu 2011 roku przywrócono licencję zastrzeżoną.
Podobnie jak jego poprzednik, EKA1 , ma wielowątkowość z wywłaszczaniem i pełną ochronę pamięci. Główne różnice to:
- czasu rzeczywistego : każde wywołanie interfejsu programowania aplikacji ( API ) jest szybkie, ale co ważniejsze, ograniczone czasowo
- Wiele wątków wewnątrz jądra i na zewnątrz
- Modele pamięci z możliwością podłączenia , umożliwiające lepszą obsługę późniejszych generacji architektury zestawu instrukcji ARM .
- Nanojądro , które zapewnia najbardziej podstawowe funkcje systemu operacyjnego, na których można budować inne warstwy osobowości
Interfejs użytkownika EKA2 jest prawie w pełni kompatybilny z EKA1. EKA1 nie był używany po Symbian OS w wersji 8.1 i został zastąpiony w 2005 roku.
Główną zaletą EKA2 była możliwość obsługi pełnych stosów protokołów sygnalizacji telefonicznej . Wcześniej w telefonach z systemem Symbian musiały one działać na oddzielnej jednostce centralnej (CPU). Takie stosy sygnalizacyjne są bardzo złożone i przepisanie ich tak, aby działały natywnie w systemie operacyjnym Symbian, zwykle nie wchodzi w grę. [ Potrzebne źródło ] EKA2 umożliwia zatem warstwom osobowości naśladowanie podstawowych prymitywów innych systemów operacyjnych, umożliwiając w ten sposób działanie istniejących stosów sygnalizacyjnych w dużej mierze bez zmian.
Gwarancje czasu rzeczywistego są warunkiem stosów sygnalizacyjnych, a także pomagają w zadaniach multimedialnych. Jednak, podobnie jak w przypadku każdego RTOS, konieczna jest pełna analiza wszystkich wątków, zanim będzie można zaoferować jakiekolwiek gwarancje czasu rzeczywistego dla czegokolwiek poza wątkiem o najwyższym priorytecie; ponieważ wątki o wyższym priorytecie mogą uniemożliwić uruchomienie wątków o niższym priorytecie. Każde zadanie multimedialne może obejmować grafikę, przechowywanie i/lub pracę w sieci, z których wszystkie częściej zakłócają strumień niż jądro.
Wewnątrz jądra EKA1 zezwalał tylko na jeden wątek (plus pusty bezczynny wątek). EKA2 pozwala na wiele wątków. To znacznie ułatwia pisanie sterowników urządzeń , które obejmują złożone maszyny o skończonych stanach , takie jak karty pamięci SD lub dyski flash USB . Przerwania są obsługiwane za pomocą procedury obsługi przerwań , która może żądać natychmiastowego odroczonego wywołania funkcji (wywoływanego natychmiast po przetworzeniu przerwań) lub odroczonego wywołania funkcji , które jest ustawiane w kolejce do wykonania w wątku jądra. Każdy z nich może z kolei komunikować się z wątkami po stronie użytkownika.
Zarządzanie energią w EKA2 pozostało w dużej mierze niezmienione od EKA1. Dokładny schemat różni się w zależności od telefonu, ale ogólnie wątek zerowy powoduje uśpienie procesora i urządzeń peryferyjnych po zażądaniu wybudzenia, gdy zbliża się wygaśnięcie następnego licznika czasu.
EKA2 działa na procesorach o architekturze ARM i emulatorze WINS . Istnieją nieoficjalne porty dla innych procesorów. W emulatorze EKA2 zapewnia nieco lepszą emulację niż EKA1, bardziej w przypadku RProcess
, których Symbian OS używa do reprezentowania procesów . W EKA1 w ogóle nie działały na emulatorze, który działa jako pojedynczy proces Windows.
EKA2 jest w dużej mierze zasługą jednego inżyniera jądra Symbiana, który rozpoczął projekt jako eksperyment na wiele lat przed tym, zanim stał się on oficjalną częścią systemu operacyjnego Symbian.
Zobacz też
Linki zewnętrzne
- https://web.archive.org/web/20091025051019/http://developer.symbian.org/wiki/index.php/Category%3AKernel_%26_Hardware_Services
- https://web.archive.org/web/20090717151501/http://wiki.forum.nokia.com/index.php/EPOC_Kernel_Architecture_2
- http://media.wiley.com/product_data/excerpt/47/04700252/0470025247.pdf