1 / 20

Symbian OS

Symbian OS. CMP 167 – Prof. Cláudio R. Geyer Elton N. Mathias Marcelo V. Neves Ricardo M. Redin. Roteiro. Introdução Arquitetura Funcionalidades APIs Segurança Interface Gráfica Desenvolvimento para Symbian IDEs. Introdução. Histórico: Deriva do EPOC (Electronic Piece Of Cheese)

penn
Télécharger la présentation

Symbian OS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Symbian OS CMP 167 – Prof. Cláudio R. Geyer Elton N. Mathias Marcelo V. Neves Ricardo M. Redin

  2. Roteiro • Introdução • Arquitetura • Funcionalidades • APIs • Segurança • Interface Gráfica • Desenvolvimento para Symbian • IDEs

  3. Introdução • Histórico: • Deriva do EPOC (Electronic Piece Of Cheese) • O EPOC foi desenvolvido pela Psion Software e o primeiro dispositivo com ele foi lançado em 1989 • Em 1998 a Psion Software tornou-se Symbian (joint venture entre a Psion,Ericsson, Nokia, Motorola, etc) • Em 2004 o EPOC ainda era embarcado em alguns dispositivos • É licenciado por: Nokia, Siemens, Lenovo, Samsung, Motorola, Sony Ericsson, BenQ, Sharp, etc... • O primeiro worm para celulares (Cabir/Symbian) foi desenvolvido em 2004

  4. Introdução • Características (v. 9.2): • Arquitetura de Microkernel de 32 bits • Preemptivo Multitarefa e Multithread • Proteção de memória, modular • Ênfase em conservação de memória, bateria e confiabilidade • Suporte a aplicações de Tempo-Real • Baseado na arquitetura de hardware SoC (System on-Chip) • Desenvolvido em C++ e completamente OO • Sistema baseado em eventos com o uso de Objetos Ativos • Modelo de segurança baseado em capabilities • Grande suporte à protocolos de comunicação e linguagens de programação (OPL, Python, Visual Basic, Simkin, Perl e Java)

  5. Arquitetura

  6. , • Em 2 níveis: • Interna (parte do symbian) • Symbian Security Framework • Sistema Operacional protegido • Externos • Nokia patches • Discretix, ...

  7. Segurança Interna • Criptografia: • Certificate framework • Protocolos: HTTPS, WTLS, … • Sistema de assinaturas: • Sistema de chaves publicas a aplicações • Sistema de chaves para acesso à ROM • Controle de Acesso • SIM PIN, device security code • ARM TrustZone

  8. Segurança Interna • Separação • Kernel vs. Espaço do usuário (capabilities) • Processos • Secured ‘wallet’ storage

  9. Discretix

  10. UIQ • SDK para desenvolvimento de interfaces • APIs em C++ e Java • Suporte a múltiplos dispositivos • Configuração “Over The Air” • Código Aberto (grande comunidade de desenvolvedores) • Características: • Orientado a eventos • Modelo de programação MVC • Desenvolvimento baseado em herança de classes básicas

  11. Model Controller View Estrutura de uma Aplicação

  12. Exemplo de uma Aplicação #include "HelloWorld.h" // Esse é o ponto de entrada do código da aplicação. // Ele cria uma instância de CApaApplication. // EXPORT_C CApaApplication* NewApplication() { return new CExampleApplication; } // Esta função é requerida por todas as DLLs do EPOC32 // Nesse exemplo, ela não faz nada. // GLDEF_C TInt E32Dll(TDllReason) { return KErrNone; }

  13. Application Class .h CExampleApplication : public CQikApplication { private: // cria um document CApaDocument* CreateDocumentL(); // retorna o Uid da aplicação TUid AppDllUid() const; };

  14. Application Class .cpp // Retorna o UID da aplicação TUid CExampleApplication::AppDllUid() const { return KUidViewApp; } // Cria o objeto document CApaDocument* CExampleApplication::CreateDocumentL() { // passa o objeto desta app. return CExampleDocument::NewL(*this) }

  15. Document Class .h CExampleDocument : public CQikDocument { public: // Construtor CExampleDocument(CEikApplication& aApp); static CExampleDocument* NewL(CEikApplication& aApp); // Retorna o modelo. TQExampleAppModel& Model(); private: // Cria a user interface CEikAppUi* CreateAppUiL(); void ConstructL(); private: // CQikDocument SaveL e RestoreL } ;

  16. User Interface Class .h CExampleAppUi : public CQikAppUi { public: // Construtor CExampleAppUi(); void ConstructL(); ~CExampleAppUi(); private: // Command handler para interagir com o usuário. void HandleCommandL(TInt aCommand); private: // Uma visão CExampleAppView* iAppView; };

  17. View Class .h class CExampleView : public CCoeControl { public: // Construtor CExampleAppView(); ~CExampleAppView(); static CExampleAppView* NewL(const TRect& aRect); void ConstructL(const TRect& aRect); private: // Inherited from CCoeControl void Draw(const TRect& /*aRect*/) const; private: // Data internal to View. HBufC* iExampleText; };

  18. Ferramentas de Desenvolvimentos (IDEs) • Metrowerks CodeWarrior • Linguagem C++ • Suporte aos SDKs mais recentes da Nokia • Microsoft Visual C++ • Linguagem C++ • Sem suporte real para desenvolvimento de código Symbian OS • Borland C++BuilderX Mobile Edition • Linguagem C++ • Suporte a design visual • Eclipse • Linguagem Java (J2ME) • EclipseME Plugin • Free

  19. Conclusão • Projetado diretamente para dispositivos móveis • Muito utilizado: • Modular e Extensível • Baseado em padrões • “Aberto” • Primeiras vulnerabilidades exploradas

  20. Referências • www.symbian.com - Site oficial da joint-venture que desenvolve o SO Symbian e fonte principal de pesquisa • Symbian OS Version 9.2, funcional description: http://www.symbian.com/technology/symbos-v92-det.html – Características e funcionalidades do SO • Wikipedia: http://en.wikipedia.org/wiki/Symbian_OS - Informações históricas e sobre a arquitetura • Wikipedia: http://en.wikipedia.org/wiki/EPOC_%28computing%29 - Informações históricas e sobre a arquitetura • Wikipedia: http://en.wikipedia.org/wiki/Symbian_(company) - Histórico da empresa • Chen and D. Kotz. A Survey of Context-Aware Mobile Computing Research. Technical Report TR (http://citeseer.csail.mit.edu/chen00survey.html) - Relatório tecnico que fala sobre computação context-aware (que tomavantagem de informações como localização do usuário, horario,proximidade de dispositivos e atividade do usuário) • www.discretix.com - Site Oficial e fonte principal de pesquisa a respeito do pacoteDiscretix que oferece APIs e especificações relacionadas à segurançapara Symbian OS (criptografia, autenticação, secure storage,  DataRights Management) • UIQ: www.uiq.com - Site Oficial e fonte principal de pesquisa a respeito do suite UIQ para desenvolvimento de interfaces para Symbian OS • http://www.metrowerks.com/pdf/IntroSymbianOSforPalmDevelopers.pdf – Introdução para desenvolvedores Symbian OS/Palm

More Related