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 outro 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!