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.

MicroKernel

O microkernel consiste em definir uma abstração muito simples do hardware, contendo apenas os elementos mais importantes como escalonadores, gerenciamento de memória e comunicação entre processos. Todos os outros serviços, como arquivos e redes são implementados por programas chamados de servidores. Servidores são programas como qualquer outro, permitindo que o sistema operacional seja estendido apenas iniciando ou parando esses programas. Por exemplo, se for necessário usar a rede basta iniciar o serviço de rede. Em teoria esse tipo de sistema é mais estável, pois se um servidor vir a falhar apenas o seu serviço será interrompido permitindo que todo o resto do sistema continue em execução. Porém serviços essenciais como o serviço de arquivo, precisam usar técnicas de banco de dados como transação e replicação para garantir que uma falha nesse serviço não comprometa o sistema. O Microkernel costuma ser mais lento que os kernel monolíticos, pois necessitam mover muitos dados entre o kernel e os serviços, já que os serviços são independentes entre si. A estrutura de um microkernel.

Exemplo de Arquiteturas para Celulares

Cada vez mais os dispositivos necessitam ter funcionalidades adicionais, porém isto tem aumentado muito a complexidade dos sistemas embarcados, pois eles continuam com a premissa de que eles têm uma funcionalidade específica; por exemplo, em um aparelho celular moderno é possível utilizar ele como videogame ou tocador de MP3, mesmo assim o motivo da sua existência é permitir telefonia móvel e essa funcionalidade nunca deve falhar.
O RTOS (real-time operating system) fica responsável pelo gerenciamento dos recursos de hardware além de oferecer serviços para os demais aplicativos, porém, apenas alguns aplicativos têm acesso a ele, os aplicativos responsáveis pelo serviço de telefonia e um framework é responsável pelos demais aplicativos, para esses aplicativos o framework funciona verdadeiramente como um sistema operacional. É interessante notar também que na ponta dos aplicativos, existem aplicativos de terceiros na maioria das vezes eles não são embarcados ao sistema e são instalados pelo usuário a de acordo com suas necessidades. Para esses aplicativos, por virem de uma fonte não conhecida, é usada mais uma camada de abstração que no caso é uma máquina virtual. Uma das características mais importantes do framework é apresentar uma API que seja funcional, a ponto de ser possível implementar uma máquina virtual Java sobre ela, e ao mesmo tempo abstrair a existência de um RTOS e evitar que algum erro nas aplicações mais complexas comprometa a funcionalidade do sistema.

Sistemas Operacionais de Celulares

Como já dito anteriormente, o sistema operacional para celulares pode ser chamado de intérprete do usuário para o aparelho móvel, ele quem faz todas as requisições, de gerenciamento de aplicativos, memória, processos, dispositivos físicos externos, dentre outras funções que ele exerce, ou seja, é um programa que gerencia e controla as funções do aparelho. Também são usadas algumas estratégias como as múltiplas funções, a proteção de memória e a multitarefa, assim ele mantém os processos funcionando ao mesmo tempo sem a necessidade de um espaço de memória maior ou sem afetar um ou outro recurso.
Existem diversos tipos de sistemas operacionais para celulares, com isso a concorrência é grande, mas o mercado e as empresas do mundo mobile, tem suas preferências, como menciona uma pesquisa realizada em agosto/2011, veja abaixo:


"Dentre os mais de 107 milhões de smartphones comercializados no segundo trimestre de 2011, o Google viu sua fatia disparar de 17,2% para 43,4% em apenas um ano, com o Symbian despencando de 40,9% para 22,1%. O iOS também foi bem, pulando de 14,1% para 18,2%, enquanto a Research In Motion (BlackBerry OS) caiu de 18,7% para 11,7%. Fechando aparecem Bada (de 0,9% para 1,9%) e Microsoft (de 4,9% para 1,6%).
Na tabela geral de OEMs de celulares a Nokia ainda lidera, mas está mergulhando forte: de 30,3% para 22,8%. Em segundo lugar vem a Samsung, que teve uma ligeira perda de 17,8% para 16,3%, acompanhada pela LG, de 8% para 5,7%. A Apple quase dobrou sua participação, pulando de 2,4% para 4,6%, acompanhada pela bela performance da ZTE, que foi de 1,8% para 3%, superando inclusive a RIM, que caiu de 3,2% para 3%. Atrás ainda vêm HTC (de 1,6% para 2,6%), Motorola (de 2,5% para 2,4%), Huawei Device (de 1,4% para 2,1%) e Sony Ericsson (de 3% para 1,7%).“O total global de celulares comercializados no Q2 2011, segundo a Gartner, foi de 428,7 milhões.”


História

Contando um pouco sobre a história dos celulares, em 1947 engenheiros tinham um pensamento nada comum para a época, queriam uma maneira de tornar a comunicação mais fácil e eficiente, tiveram a brilhante idéia de criar um sistema capaz de efetuar a comunicação entre telefones sem fio, a idéia era boa, porém a tecnologia não ajudava muito naqueles tempos, contudo as idéias não foram muito além da teoria e de pouca prática. A real história do telefone móvel (celular) começou em 1973, quando foi efetuada a primeira chamada de um telefone móvel para um telefone fixo, mostrando que a teoria projetada em 1947 foi projetada de forma correta. Várias empresas fizeram testes entre 1947 e 1973, contudo a primeira empresa que mostrou um aparelho funcionando foi a Motorola, com o aparelho chamado DYNATAC 8000x que foi liberado comercialmente nos EUA, isso ocorreu no ano de 1983, ou seja, dez anos após o primeiro teste realizado.
A maioria dos celulares pesava cerca de 1 kg e tinha dimensão aproximadamente de 30 centímetros de altura, mas isso era apenas o começo, pois a tendência era a redução do tamanho e o aumento das funções. Os preços eram astronômicos, até porque nem todo mundo tinha um carro para poder carregar aparelhos desse tamanho e peso.


Para os celulares e seus sistemas operacionais estarem no quadro atual, tivemos algumas etapas, classificadas em gerações, são elas:

·         Primeira geração: Baseada em protocolos de comunicação que permitiam somente a comunicação por voz através de celulares analógicos.
·         Segunda geração: Muito utilizado no país, os celulares (2G) permitem, além da comunicação por voz, transmissão de dados digitais a baixa velocidade (14,4 Kbps), acesso a internet (WAP) e envio de mensagens SMS.
·         Geração 2,5: É representada pelas novas tecnologias de transmissão por pacotes, como GPRS e CDMA 1x e, principalmente, pelos serviços diferenciados, como o acesso permanente à web, possíveis pelo aumento das velocidades (50kbps) e tarifação por volume de dados. A cada ligação de voz há um canal de dados à disposição do usuário, basta acessá-lo.

·         Terceira geração ou 3G: Com taxas de transmissão ainda maiores (ordem de centenas de kbps) podemos destacar a tecnologia EDGE (GSM), FOMA (NTT DOCOMO), W-CDMA3 (Wideband-CodeDivision Multiple Access). Esse novo serviço oferece qualidade na transmissão de voz, com mínima interferência e 
barulho e suporte a diversos conteúdos de multimídia, como transmissão de vídeos, imagens, música e jogos, além de grande capacidade de comunicação de dados.

4G o futuro já está pré-estabelecido: Assim como demorou certo tempo para que o 3G fosse estabelecido, a quarta geração de telefonia celular (4G) não chegará tão rápida, mas já há algumas idéias de como ela será. Assim como o 3G já fez, a 4G deve continuar investindo no avanço da transmissão de dados. É muito provável que os novos aparelhos celulares já trabalhem com o protocolo IP e sejam compatíveis com as redes de computador, ou seja, a tendência é uma só: os celulares estão prestes a virar computadores minúsculos.

Introdução

Todo computador precisa, além das partes físicas, de programas que façam essas partes físicas funcionarem corretamente. Existem vários programas para várias funções, como digitar textos, desenhar, calcular, fazer planilhas, e muitas outras. Para poder utilizar os programas que têm função definida (como os citados a cima), é necessário que o computador tenha um programa chamado Sistema Operacional (SO).
Os sistemas operacionais de celulares funcionam da mesma forma, precisam de um programa para realizar algumas funções tais como: o reconhecimento dos comandos do usuário, o controle do processamento do computador, o gerenciamento da memória. Resumindo, quem controla todos os processos do celular é o sistema operacional, sem ele o celular não funcionaria.
O trabalho visa mostrar informações sobre os sistemas operacionais para celulares, que hoje em dia com a chegada da internet móvel e os smartphones em crescimento considerável, está presente em grande parte no Brasil.