terça-feira, 18 de outubro de 2011

Black Berry OS - RIM

O Black Berry OS é um sistema operacional proprietário móvel, desenvolvido pela Research In Motion (RIM) para sua linha de smartphones Black Berry. A plataforma é bastante conhecida por oferecer suporte para o e-mail corporativo, por meio de MIDP 1.0 e, mais recentemente, um subconjunto do MIDP 2.0, que permite a ativação sem fio completo e sincronização com Microsoft Exchange, Lotus Domino ou Novell GroupWise e-mail, calendário, tarefas, notas e contatos, quando utilizado em conjunto com o BlackBerry Enterprise Server. O sistema operacional também suporta WAP 1.2.

WebOS


  •          Usa o kernel do Linux;
  •          Multitarefa;
  •          Aplicações podem ser escritas em C++ e em tecnologias web (AJAX, Java script, etc.);
  •          Conceitos de interface, usabilidade herdados do Palm OS.

Artigo sobre especificações técnicas do WebOs: Especificações Técnicas

IOS


IOS é o sistema operacional móvel da Apple. Desenvolvido originalmente para o iPhone, também é usado em iPod Touch, iPad e Apple TV. A Apple não permite o sistema operacional rodar em hardware de terceiros. A interface do usuário do iOS é baseado no conceito de manipulação direta, utilizando gestos em multi-toque. A interação com o sistema operacional inclui gestos como apenas tocar na tela, deslizar o dedo, e o movimento de "pinça" utilizado para se ampliar ou reduzir a imagem. Os elementos de controle de Interface consistem de barras, chaves e botões. A resposta à entrada do usuário é imediata, oferecendo uma interface fluida. Acelerômetros internos são usados por alguns aplicativos para responder à agitação do aparelho (um resultado comum é o comando de desfazer) ou rodá-la em três dimensões (um resultado comum é a mudança do modo retrato para modo paisagem).
O sistema operacional usa aproximadamente 500 megabytes de armazenamento do dispositivo, que varia para cada modelo.
O sistema operacional foi lançado com o iPhone na "Macworld Conference & Expo" em 9 de janeiro de 2007, e lançado em junho daquele ano. No início, a Apple não mostrava o nome do sistema operacional, afirmando apenas que "o iPhone roda o OS X".
Inicialmente, as aplicações de terceiros não eram permitidas. Steve Jobs argumentou que os desenvolvedores poderiam criar aplicativos web que "se comportam como aplicações nativas no iPhone". Em 17 de outubro de 2007, a Apple anunciou que a SDK nativa estava desenvolvimento e que eles esperassem para colocá-la nas 'mãos dos desenvolvedores' em fevereiro. Em 6 de março de 2008, a Apple lançou o primeiro beta, juntamente com um novo nome para o sistema operacional: o "iPhone OS". A rápida venda de dispositivos móveis da Apple acendeu interesse no SDK. A Apple também vendeu mais de um milhão de iPhones durante uma temporada de feriados de 2007. Em 27 de janeiro de 2010, a Apple anunciou o iPad, com uma tela bem maior do que o iPhone e iPod touch, e projetado para navegar na web, o consumo de mídia, e da leitura iBooks. O nome "iOS" foi usado pela Cisco. Para evitar qualquer ação judicial em potencial, a Apple licenciou o "IOS" uma marca registrada da Cisco.

Características
  •             Kernel baseado no Mac OSX;
  •             Permite o uso "kernel extention" para acesso a hardware;
  •             Kernel é carregado na RAM de forma criptografada;
  •      Somente aplicações "assinadas" podem acessar o kernel;
  •           O SO permite ter vários usuários cadastrados, mas somente dois são utilizados: root e um user convencional;
  •            SO dividido em 3 domínios: machine, system, user.


Estrutura iOS
A estrutura do IOS é dividida nessas 4 camadas segundo a própria Apple, segundo a imagem mostrada abaixo, Cocoa Touch seria a camada de mais alto nível e Core OS seria a camada de mais baixo nível, ou seja conforme a figura quanto mais abaixo na camada, maior deve ser a dificuldade em desenvolver e de se compreender.


Core OS (Núcleo do sistema operacional)
         OS X Kernel, Sockets, Segurança, Gerenciamento de Energia , Certificados, Sistema de Arquivos.

Core Services (Serviços oferecidos pelo sistema)
SQLite, Acesso a Arquivos, Preferências, Livro de Endereços, Rede.
Media
(serviços de mídia IOS)
         OpenAL, Gravação e Mixagem de Audio, Núcleo de Animação, Leitor de PDF, OpenGL ES e Quartz.

Cocoa Touch
         Multi-touch eventos e controle, Acelerômetro, Câmera, Alertas, Pickers, Sistema de Localização. A arquitetura desta API do iOS é dividida no Foundation Framework e no UIKit. Segue o famoso padrão MVC.
Foundation oferece classes utilitárias (como XMLParser), coleções (Arrays e Dicionários), serviços (como o controlador do “Desfazer” e de Erros), entre vários outros. As classes oferecidas por ele começam por NS (de NextStep, empresa que o Jobs criou quando foi demitido da Apple e mais tarde comprada pela própria Apple que levou o Jobs de volta para lá), tipo NSXMLParser, NSString, NSMutableArray…
O UIKit controla as interações do usuário (UI = User Interface) em tempo de execução, é com ele que colocam botões, labels, campos de texto e tudo mais que o usuário interage. UIButton, UIColor, UILabel, UIOutlet, UITextFieldDelegate e outros.

Desenvolvimento
A linguagem para desenvolvimento dos aplicativos para IOS é Objetive C, que foi uma linguagem derivada das linguagens Smalltalk e C.
Ainda não existem plataformas seguras e gratuitas para desenvolvimento nos sistemas operacionais Windows então quem deseja desenvolver para iOS deve possuir um Macintosh (ou por meio de máquinas virtuais), para poder programar você deve se associar a apple pagando uma anuidade, ou desenvolver somente para aparelhos já desbloqueados através do jailbrake.
A IDE mais utilizada é Xcode, as ferramentas Xcode fornecem o básico de edição, compilação e ambiente de depuração de seu código.
Xcode prevê também o ponto de lançamento para testar seus aplicativos em um dispositivo IOS, e no IOS Simulator, uma plataforma que imita o ambiente do IOS de base, que é executado no seu computador Macintosh local.


Symbian OS

O Symbian OS é um sistema operativo criado para rodar nos celulares "multimídia" com suporte para câmeras fotográficas, MMS, wireless, Bluetooth, entre outras funções.
Este sistema operativo é principalmente baseado em um ambiente gráfico bastante simples. Atualmente é utilizado na maioria dos recentes modelos de aparelhos móveis dos grandes fabricantes. Sua versão mais nova, a 9.5, foi reduzido o consumo de memória em 30% em relação à versão anterior.
O Symbian é um conjunto de  de várias empresas, fundado em 1998 e que está atuando até os dias de hoje. Já foi formado pelas empresas Nokia, Siemens, Samsung, Ericsson, Sony Ericsson e Panasonic, atualmente pertence à Nokia, que adquiriu a quase totalidade de suas ações em dezembro de 2008.
Empresas não-pertencentes ao conjunto podem licenciar o Sistema Operacional para utilização em seus produtos.
Com a explosão de consumo dos telefones celulares, a Symbian começou a desenvolver sistemas para as grandes empresas do ramo, principalmente Nokia, Ericsson e Motorola. A grande maioria dos celulares modernos de hoje são operados pelo sistema operacional Android. Ele é um sistema totalmente modular, e permite que cada empresa crie sua própria interface. Portanto este sistema não tem uma cara definida. Pode ser um simples sistema de textos em telas monocromáticas, ou um completo sistema operacional tão potente como o PalmOS ou PocketPC que já pode ser encontrado nos SmartPhones da Nokia, SonyEricsson, Foma, Siemens, Motorola, dentre outras.
Symbian é um sistema operacional feito para dar mais agilidade, segurança, conforto e comodidade no uso de recursos do seu dispositivo.

Vantagens
  • ·         É um sistema aberto e de baixo custo (Em torno de $4 por aparelho)
  • ·         Possui recursos para gerenciar e utilizar pouca bateria e memória
  • ·         Permite a instalação de softwares de terceiros
  • ·         Baseado em padrões de comunicação e dados.
  • ·         Mecanismos que asseguram a transferência e armazenamento de dados
  • ·         Desfruta muito bem de todas as áreas do aparelho. Memória RAM, Processador, Processador Gráfico, etc.
  • ·         É um sistema operativo mais estável e seguro com relação aos seus concorrentes

Formatos de arquivos Symbian
  • ·         .sis
  • ·         .sisx

Plataforma para desenvolvimento
SymbianOS é um sistema operacional muito versátil, permite o desenvolvimento de aplicativos em diversas linguagens como:

  • ·         Symbian C/C++
  • ·         JavaME
  • ·         FlashLite
  • ·         HTML5
  • ·         Perl
  • ·         Python
  • ·         Ruby
  • ·         Lua
  • ·         Acelerômetro
  • ·         QT

Symbian C/C++
É uma variação do padrão C++ feita para Symbian, o contexto da linguagem é muito parecido mudando apenas algumas funções e tipos, com um forte uso de convenção de nomes.

Mudanças do padrão C/C++
Os tipos de variáveis foram alterados, apesar de ser possível o uso de variáveis padrões C/C++ é aconselhável o uso desses novos tipos:
TInt = Integer 32 bits TBool = Booleano TReal = Floating Point (float), entre outros.
Houve algumas mudanças também na forma que o Symbian trata exceções, estas mesmas são chamadas de Leaves, foi uma forma de simplificar as exceções padrões de C++, para reduzir o código e o uso de memória.

Desenvolvimento
Carbide C++ - IDE gratuita baseada no Eclipse oferecida pela Nokia. Nas versões comerciais contamos com recursos extras como debug-on-device, editor de UI, entre outros.

Características
  • ·      Suporte a aplicações escritas em C++ (até a versão 3, posteriormente será utilizando uma versão do Qt);
  • ·         Multitarefa;
  • ·         Suporte a aplicações Real-time;
  • ·         Usa um "nanokernel" para garantir desempenho;
  • ·         Arquitetura ARM;
  • ·         Faz uso de APIs para acesso a hardware.

Series 60
Séries 60 é uma plataforma desenvolvida pela Nokia e utilizada também pela Ericsson. Atualmente é a maior plataforma para smartphones, utiliza o Symbian como sistema operacional.

Android

É um sistema operacional móvel que roda sobre o núcleo Linux, embora seja ainda desenvolvido em uma estrutura externa ao núcleo Linux. Foi inicialmente desenvolvido pela Google e posteriormente pela Open Handset Alliance, mas a gigante Google é responsável pela gerência do produto e engenharia dos processos. O Android permite aos desenvolvedores escreverem software na linguagem de programação Java controlando o dispositivo via bibliotecas desenvolvidas pela Google. O sistema operativo Android consiste em torno de 12 milhões de linhas de código, incluindo aproximadamente 3 milhões em XML, por volta de 2,8 milhões de linhas de C, cerca de 2,1 milhões de linhas de código Java e algo entre 1,75 e 2 milhões de código em C++.
A Android Inc. foi adquirida em 2005 pela Google, uma pequena empresa da Califórnia, na época foi desenvolvida uma plataforma de telefone móvel baseado em Linux, com o objetivo de ser uma plataforma flexível, aberta e de fácil migração para os fabricantes.
O primeiro telefone comercialmente disponível a rodar o Android foi o HTC Dream, lançado no dia 22 de outubro de 2008.
Com o lançamento do SDK (Software Development Kit), características e especificações para o Android são facilmente distribuídas.

Handset Layouts
A plataforma é adaptada tanto para dispositivos VGA (Video Graphics Array) maiores, gráficos 2D, bibliotecas gráficas 3D baseadas em OpenGL ES especificação 2.0 e os layouts mais tradicionais de smartphones.

Armazenamento de dados
No android é possível se criar e usar um banco de dados utilizando SQLite. Um recurso bem interessante e muito avançado do android. 

Máquina Virtual Dalvik
Aplicações escritas em Java são compiladas em bytecodes Dalvik e executadas usando a Máquina virtual Dalvik, que é uma máquina virtual especializada desenvolvida para uso em dispositivos móveis, o que permite que programas sejam distribuídos em formato binário (bytecode) e possam ser executados em qualquer dispositivo Android, independentemente do processador utilizado. Apesar das aplicações Android serem escritas na linguagem Java, ela não é uma máquina virtual Java, já que não executa bytecode JVM.

Multimídia
O sistema irá suportar formatos de áudio e vídeo como: MPEG-4, H.264, MP3, e AAC.

Suporte Adicional de Hardware
O Android é totalmente capaz de fazer uso de câmeras de vídeo, tela sensível ao toque, GPS, acelerômetros, e aceleração de gráficos 3D.

Características
  • ·         Baseado no GNU/Linux;
  • ·         Dalvik virtual machine;
  • ·         Não usa o X11, mas um framebuffer simples;
  • ·         Apache license;
  • ·         3 million lines of XML, 2.8 million lines of C, and 2.1 million lines of Java;
  • ·         LK: Little Kernel Boot loader.

Ambiente de desenvolvimento (SDK)
Incluem um emulador, ferramentas para debugging, memória e análise de desempenho. O IDE Eclipse (atualmente 3.4 ou 3.5) poderá ser utilizado através do plugin Android Develpment Tools (ADT). 

Versões
As diferentes versões de Android têm desde a versão 1.5, nomes de sobremesas ou bolos (em inglês) e seguem uma lógica alfabética:

  • 1.5: Cupcake (Abril de 2009, com a última revisão oficial a maio de 2010);
  • 1.6: Donut (Setembro de 2009, com a ultima revisão oficial a maio de 2010);
  • 2.1: Eclair (Janeiro de 2010, com a última revisão oficial a maio de 2010);
  •  2.2: FroYo (Frozen Yogourt - Maio de 2010, com a última revisão oficial a julho de 2010);
  • 2.3: Gingerbread (versão atual lançada a 6 de dezembro de 2010);
  • 3.0-3.2: Honeycomb (Lançada especialmente para tablets em Janeiro de 2011);
  •  X.X Ice Cream Sandwich - Lançamento previsto para o quarto trimestre de 2011, o número da versão ainda não foi oficialmente revelado. (A versão que promete acabar com a fragmentação, ou seja, será para smartphones e tablets de todos os tipos).




Microprocessadores ARM

Microprocessadores da XScale, que têm por principal característica o baixo consumo de energia elétrica. O maior avanço da ARM foi a família StrongARM, que é constituída de versões rápidas dos existentes processadores ARM com um conjunto de instruções ligeiramente diferente. Com clock de 206MHZ eles podem processar até 235 MIPS (1,14 MIPS/MHz).

API’s

API, de Application Programming Interface (ou Interface de Programação de Aplicativos) é um conjunto de rotinas e padrões estabelecidos por um software para utilização de suas funcionalidades por programas aplicativos isto é: programas que não querem envolver-se em detalhes da implementação do software, mas apenas usar seus serviços. De modo geral, a API é composta por uma série de funções que permitem utilizar características do software menos evidentes ao usuário tradicional. Kernel System Calls Aplicativos Servidores IPCN o caso de sistemas operacionais, a API costuma ser dissociada de tarefas mais essenciais, como manipulação de blocos de memória e acesso a dispositivos. Estas tarefas são atributos do Kernel ou núcleo do sistema, e raramente são programáveis.