Muita tecnologia para uma pessoa só
A culpa para eu não ter postado mais é uma só: é muita tecnologia para uma pessoa só!
Nessa vida de acadêmico, profissional e hobbista estou tendo que lidar com coisas tanto em baixíssimo quanto altíssimo nível;
A começar pela vida acadêmica, este trimestre a cadeira é de sistemas distribuídos, o contexto é:
- comunicação com utilização de mensagens;
- protocolos e semânticas;
- tratamentos de erros, correções, tolerância a falhas;
- tempo distribuído, ordens causais, exclusão mútua distribuída;
A linguagem de programação definida pelo professor (define:professor – Alguém que não é legal você contrariar) é JAVA. Sabe já fui xiita quanto a isto, mas para algumas coisas o Java realmente é uma mão na roda, por exemplo, faziam 4 anos desde a última vez que eu fiz um programa com janelinhas, e com Java consegui fazer um programa demo em menos de meia hora.
Outro ponto é: Objetos remotos. O Trabalho deste trimestre é fazer uma implementação utilizando Corba, e com Java isto é legal
é muito simples compartilhar um objeto remoto utilizando Java, e eu sinceramente não sei porque este protocolo junto com o RMI (que é mais fácil ainda) não são utilizados em larga escala.
Saindo um pouco da vida acadêmica, caio na minha vida profissional, ai entramos em um outro extremo. Ai o contexto é outro:
- kernel Linux, uCLibc, arm-linux-*
- ARM, Atmel, TI
- C e asm
- NandFlash, Dataflash, EEPROM
- 32MB, 4KB, 99Mhz…
E esta é a minha praia, eu sinceramente, sem brincadeira, fico feliz com os problemas que me aparecem lá, os últimos que me vem a cabeça…
- fazer o suporte da INFERNO PACK para o u-boot mainline;
- um patch com os drivers do INFERNO PACK para o kernel mainline e resolver os pepinos da integração deste com o PREMPT_RT;
- resolver um problema da implementação de mutex na linuxthreads da uCLibc;
- por o 2.6.33.5-rt + buildroot-2010.05 + um monte de aplicação em 3.5MB de dataflash;
- provar para o pessoal do outro lado do barramento que a latência não é no Linux (eu adoro este);
Mas ultimamente um problema legal que tenho trabalhado é o fato do processador Atmel at91sam9g20 não conseguir ler a uma NAND Samsung de 512 mbit, faz mais de um mês que estou discutindo com a Atmel que o problema é a ROMBOOT do processador. O legal disto é que estou tendo bastante contato com o drivers/mtd/ e o código do bootstrap do processador.
Por fim, o lado hobbista… aaa, este é uma coisa só: kernel Linux/Tempo real. Pra quem não sabe, minha proposta de palestra para a LinuxCon foi aceita, em breve publicarei aqui o resumo dela e os slides. Mas bom, voltando ao assunto, ultimamente tenho lido bastante sobre tempo real, tanto teoricamente com o livro Real Time Systems quanto implementações no kernel Linux, como a implementação do HRT, DynTick, a proposta do escalonador EDF, alguns artigos sobre controle de admissão de processos de tempo real.
Enfim, como pode-se ver, meu tempo ultimamente tem passado desde registradores à objetos distribuídos… porém, pelo meu lado hobbista… tudo se resume na frase do Linus…
And yeah, I still think the hard-RT people are mostly crazy. — Linus;