Este blog Mudou

Este Blog mudou-se para:

sexta-feira, 23 de setembro de 2005

Squawk

Olá ainda estou pensando com que frequência devo enviar texto para aqui inicialmente minha intenção era de 5 textos semanais mas vejo que tenho muito o que fazer para escrever quase diariamente. Então vou tentar garantir de 1 a 3 textos semanais. Comprei hoje "Eletrônica básica" do Newton C. Braga é o mesmo autor de um livro chamado "Eletrônica para mecatrônica" que comprei um tempo atrás (e como você já deve ter deduzido me faltava conhecimentos básico de Eletrônica para entender) então agora eu tenho um livro de umas 200 páginas sobre Eletrônica básica vamos ver se algo de útil acontece.


Estarei trabalhando em uma apresentação de um IDS (Intrusion Detection System) então aguardem algo sobre segurança em redes e IDS's logo logo.
obs.: só não vou falar sobre o Snort por quê tem que ser um ou
tro qualquer. Restrição do professor (vamos usar o Snort em sala)


Hoje falaremos sobre a Squawk a Squawk é uma micro-máquina virtual Java, a tradução literal de Squawk é Grasnar (é isso mesmo aquela coisa que os patos fazem) e o nome é uma homenagem ao Squeak Smalltalk que sinceramente eu não faço idéia de onde eles tiraram esse Squeak (que significa ranger ou guinchar!), mas voltando, pra quem conhece a KVM (Kilobyte Virtual Machine) a Squawk não é muito novidade a diferença é que ela não é apenas pequena ela é MINÚSCULA implementada no chip sem necessariamente um Sistema Operacional.


O objetivo principal da Squawk é rodar nos smart-cards você já viu um? Dá uma olhada


Aí você me diz sim: “Corta tudo do Java e põe ele num cartão e daí? Que graça tem isso?

A graça é que com a Squawk você vai ter CLDC completo! Ou seja, uma API bem maior do quê a que você tinha no JavaCard além de Garbage Collection, Verificação das Classes e Carregamento Dinâmico de classes, dá uma olhada nos pacotes do JavaCard que é o que se usa hoje em todo tipo de smart-card inclusive os sim-cards (é aquele mesmo do teu celular GSM) e mais o que existe no CLDC.

JavaCard

J2ME/CLDC

java.io

java.lang

java.rmi

javacard.framework

javacard.framework.service

javacard.security

javacardx.crypto

java.io

java.lang

java.util

javax.microedition.io

javax.microedition.lcdui

javax.microedition.lcdui.game

javax.microedition.media

javax.microedition.media.control

javax.microedition.midlet

javax.microedition.pki

javax.microedition.rms


Bom, isso não quer dizer que todos que rodem a Squawk vão ter API completa, por exemplo, para multimídia né? Pra que você vai querer que teu cartão de crédito toque música se o teu celular tem uma caixinha de som e fones muito melhores?


E onde isso vai rodar mesmo?


O objetivo são os smart-cards da próxima geração com processadores de 32 bits que não tem mais do que 8KB de RAM, 32KB de armazenamento e 160 KB de ROM. É claro que um robô usando um microcontrolador poderia rodar a Squawk (olha robôs! Para repetir um slogan que eu vi eu adoro muito tudo isso!).


E cabe? Como eles fizeram esse milagre?


Cara os caras deram nó em pingo d’água

  • Os arquivos de .class são grandes e complexos simplifica tudo corta o que não for estritamente necessário;

  • Enxugaram o que deu no bytecode pra encolher as classes, já que o bytecode padrão não se preocupa muito em relação ao espaço;

  • Uma nova análise do código para gerar classes com mesma semântica, mas que facilitem o Garbage Collector e diminuam o número de instruções.

  • Resolução dos identificadores antes de executar, ao invés de resolver identificadores ao iniciar uma classe ou ao iniciar o programa pode se fazer isso na fase fora do dispositivo quando ainda se tem todo o espaço de memória necessário ou quando se instala o programa no dispositivo (compilação ou instalação demorada para diminuir consumo de memória parece uma boa troca).

  • Mudaram o mecanismo de Construção e Inicialização dos objetos de modo a facilitar a verificação.

  • A alocação de memória é region-aware, a Squawk sabe que tipo de memória está trabalhando e sempre que é possível usa a área de memória não volátil (que tem mais espaço) para armazenar os dados persistentes tipo definições de classes e métodos.


Java feito em Java!


É um dos objetivos dos caras era escrever o Squawk o máximo possível em Java de modo que eles fizeram o seguinte:

As características de nível mais baixo tipo o Interpretador do ByteCode o Garbage Collector e os Métodos Nativos são implementados numa linguagem que é um subconjunto de C e de Java ao mesmo tempo.

As características mais alto nível tipo controle de Threads Carregamento das classes e etc. são implementadas em Java puro.


De modo que uma possível implementação do Squawk pode ser testada como se fosse um programa Java durante sua fase de desenvolvimento.


E Funciona mesmo?


Um comparativo entre a Squawk e a KVM e a Squawk está bem perto até:

Execution times for Squawk and KVM


Squawk

KVM

Squawk/KVM

delta blue

2864

2624

0.92

mpeg

8282

7020

0.84

cubes

4927

4226

0.86

hanoi

3556

3805

1.07

Fonte: A Java Virtual Machine Architecture for Very Small Devices, Nik Shaylor, Douglas N. Simon, William R. Bush Sun Research Center.

Obs.: O tempo está em milissegundos

  • delta-blue é um programa para resolver equações;

  • mpeg é um decodificador de mpeg;

  • cubes é um programa que faz rotação e exibição em 3D;

  • hanoi é o tradicional programa das três torres de Hanói e seus anéis.

Estou postando do Kurumin Linux texto inicialmente produzido utilizando M$Word e migrado para OpenOffice e KEdit Navegador Mozilla 1.6!

2 comentários:

Anônimo disse...

Your blog is interesting - Keep up the great work. I have created a website devoted to golf carts If you get time, look at information on golf carts

Anônimo disse...

Can Sony really take on the iPod?
Time and again, news accounts have noted Sony's loss of the portable music to Apple Computer.
Hi, I'm new at this Blog stuff and found you! Neat Blog. If you are interested, go see my start home based business related site. It isnt anything special and I'm still working on it but you may still find something of interest.