EKA2 (EPOC Kernel Architecture 2) es el kernel de la plataforma Symbian de segunda generación . [1]
Desarrollador (es) | Fundación Symbian |
---|---|
Tipo | Kernel ( microkernel ) |
Licencia | Licencia pública de Eclipse |
Sitio web | desarrollador |
Al igual que su predecesor, EKA1 , tiene protección de memoria completa y multiproceso preventivo. Las principales diferencias son:
- Garantías en tiempo real (cada llamada a la API es rápida, pero lo que es más importante, tiene un límite de tiempo)
- Múltiples subprocesos dentro y fuera del kernel
- Modelos de memoria conectables , lo que permite un mejor soporte para las generaciones posteriores de conjuntos de instrucciones ARM .
- Un "nanokernel" que proporciona las instalaciones de sistema operativo más básicas sobre las que se pueden construir otras "capas de personalidad"
La interfaz del lado del usuario de EKA2 es casi completamente compatible con EKA1 , aunque EKA1 no se ha utilizado desde Symbian OS v8.1 (que fue reemplazado en 2005).
La principal ventaja de EKA2 fue su capacidad para ejecutar pilas de señalización telefónica completas . Anteriormente, en los teléfonos Symbian, estos tenían que ejecutarse en una CPU separada. Tales pilas de señalización son extremadamente complejas y reescribirlas para que funcionen de forma nativa en Symbian OS normalmente no es una opción [ cita requerida ] . Por lo tanto, EKA2 permite que las "capas de personalidad" emulen las primitivas básicas de otros sistemas operativos, lo que permite que las pilas de señalización existentes se ejecuten prácticamente sin cambios.
Las garantías en tiempo real son un requisito previo para las pilas de señalización y también ayudan con las tareas multimedia. Sin embargo, al igual que con cualquier sistema operativo en tiempo real, se requiere un análisis completo de todos los subprocesos antes de poder ofrecer garantías en tiempo real para cualquier cosa, excepto el subproceso de mayor prioridad. (Los subprocesos de mayor prioridad pueden evitar que se ejecuten los subprocesos de menor prioridad). Es probable que cualquier tarea multimedia involucre gráficos, almacenamiento y / o actividad de red, todos los cuales tienen más probabilidades de interrumpir la transmisión que el kernel.
Dentro del kernel, EKA1 solo permitía un único hilo (más un hilo inactivo 'nulo' ). EKA2 permite muchos subprocesos. Esto hace que sea mucho más fácil escribir controladores de dispositivos que involucren máquinas de estado complejas, como las de memorias USB o USB . Las interrupciones se manejan con una rutina de servicio de interrupciones , que puede solicitar una llamada de función diferida inmediata (llamada tan pronto como se procesan las interrupciones), o una llamada de función diferida , que se pone en cola para ejecutarse en un hilo del kernel. Cualquiera puede, a su vez, comunicarse con los hilos del lado del usuario.
La gestión de energía en EKA2 se mantuvo prácticamente sin cambios desde EKA1. El esquema exacto varía entre teléfonos, pero generalmente el hilo nulo pone a la CPU y los periféricos a dormir, después de haber solicitado un despertador cada vez que vence el próximo temporizador.
EKA2 se ejecuta en CPU ARM y el emulador "WINS". (Existen puertos no oficiales para otras CPU). En el emulador, EKA2 proporciona una emulación algo mejor que EKA1, en particular para las API de RProcess que utiliza Symbian OS para representar procesos . En EKA1 no funcionaron en absoluto en el emulador, que se ejecuta como un único proceso de Windows.
Gran parte del mérito de EKA2 es para un solo ingeniero del kernel de Symbian, que comenzó el proyecto como un experimento muchos años antes de que se convirtiera en una parte oficial del sistema operativo Symbian. [2]
Ver también
Referencias
- ^ "Internos del sistema operativo Symbian" . Archivado desde el original el 21 de enero de 2011 . Consultado el 4 de mayo de 2011 .
- ^ Dennis May - Reino Unido | LinkedIn . Uk.linkedin.com. Consultado el 9 de diciembre de 2013.
enlaces externos
- https://web.archive.org/web/20091025051019/http://developer.symbian.org/wiki/index.php/Category%3AKernel_%26_Hardware_Services
- http://www.allaboutsymbian.com/news/item/10641_Symbian_Foundation_opensources.php
- 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