Archive for the ‘Linux’ Category.

Formato de compressão do kernel

Semana passada vi um artigo que falava sobre o formato de compactação do kernel disponível no kernel.org, isto porque com o relativamente novo LZMA pode-se obter uma considerável melhora na compressão do Kernel, em uma comparação dos formatos de compactação, o Kernel 3.6.32 obteve os seguintes tamanhos compactados:
GZ: 79MB
BZ2: 62MB
LZMA: 53MB

Claro que nem tudo é baunilha (estou no shopping e na minha frente tem um monte de televisores a venda, passando uma receita de como fazer um sorvete de baunilha, acho que isto eh uma mensagem subliminar da sorveteria)…

Devido a relativa pequena idade do LZMA, muitas distribuições mais antigas mas ainda utilizadas como o RHEL3 ainda não possuem ferramentas capazes de comprimir/descomprimir arquivos xz (extensão dos arquivos compactados com LZMA)… Para os embarcados: o Busybox já possui a um bom tempo o suporte a descompressão LZMA.

Novo BusyBox

Foi lançado uma nova versão do BusyBox (unstable): BusyBox 1.16.0. Esta nova versão trás um conjunto de novas ferramentas bastante interessantes como:

  • lspci
  • lsusb
  • flashcp
  • mkfs.reiser
  • mkfs_ext2
  • ntpd
  • traceroute6
  • tune2fs
  • wall

Por exemplo, com isto duas das aplicações que compilava externamente caíram fora dos meus embarcados: usbutils (que provia o lsusb) e o ntpd… Boa notícia (-:

TCC

Queridos ouvintes do Eu não sou NERD! FM…

Ontem entreguei a última versão do meu TCC, e com isto, aqui publico o texto do meu trabalho, a apresentação e o artigo científico.

Passei 🙂

Vídeos: Embarcados e Tchê linux e o que ando fazendo

A uma semana ví uma notícia no site free-electrons.com, eles publicaram os vídeos da Embedded Linux Conference que aconteceu em abril desse ano, os vídeos tratam de vários assuntos como avaliação do JFF2 para flash grandes, kprobe e systemtap, threads de interrupção (do RTL), vídeo em embarcados, etc. Todos os vídeos são de alta qualidade e também estão disponíveis as apresentações.

Falando em vídeo, o Tchê Linux também tem uma área de vídeos bem legal, acesse: http://videos.tchelinux.org.

E sobre o que ando fazendo, semana passada visitei a Alcatel-Lucent em São Paulo para homologar um telefone IP Intelbras, gostei bastante da estrutura da empresa… principalmente do Data Center de homologação de produtos (muito organizado) onde passei dois dias e fui muito bem recebido. Esta semana estou terminando de implantar os protocolos de QoS e configurações de rede em uma placa acessório do PABX Impacta da Intelbras, e está ficando muito bom, a placa vai ter suporte a grande maioria dos padrões de QoS e vai possibilitar diversas (e mirabolantes) configurações de rede… eu amo este trabalho 😉

Publiquei o artigo do netem no VivaOLinux, está tento bastante acesso…

E para fechar:

A edição da revista Motociclismo desse mês está ótima, sugiro que comprem (essa foi só pra não dizer que sou totalmente Nerd, afinal, quem é Nerd aqui? em em em hehehe)…

Até na próxima

Simulando links com o netem

Uma das etapas do meu trabalho de conclusão de curso é simular um link de internet em um pc-gateway entre dois hosts como na ilustração abaixo:

Ambiente

Ambiente

Neste ambiente serão executados simulações de tráfego VoIP e colhidas informações estatísticas para análise de desempenho das configurações de QoS em rede do PABX. Para isto irá-se utilizar um Linux configurado como roteador e nele simular um link de internet, adicionando latência, delay, jitter e traffic Shapping ao tráfego roteado por ele.

O pc-gateway possui duas interfaces, eth0 e eth1, onde a interface eth0 está diretamente ligada a um Desktop Linux, que irá executar o cliente da ferramenta de benchmark, e a interface eth1 está diretamente ligada ao PABX que irá executar o servidor da ferramenta de benchmark. Ambos, Desktop e PABX, estão em sub-redes diferentes e possuem como roteador padrão o pc-gateway.

Para simular o Link de internet irá-se configurar o netem, que é uma disciplina de escalonamento de pacotes no kernel do Linux que possibilita simular:

  • delay;

  • perda;

  • jitter;

  • corrupção de pacote;

  • duplicação de pacotes; e

  • reordenação de pacotes.

Continue reading ‘Simulando links com o netem’ »

arm-linux-(ar|objdump), Fedora 12 Alpha and a lot of fun

A semana começou com um problema em uma biblioteca estática que ao cross compilar para o ARM perdia algumas referencias de funções que ela implementava. Resultado final: depois de um chá de arm-linux-objdump, arm-linux-ar e do Eclipse tudo funcionou.

O site linuxfordevices.com entrevistou Jim Ready, fundador da MontaVista Software, sobre os 10 anos da criação da empresa pioneira no desenvolvimento de Linux para sistemas embarcados.

O Fedora 12 ainda está no forno, mas o primeiro aperitivo já está prestes a sair: o f12-Alpha. Isto quer dizer que a maratona de QA vai começar, e com isto a diversão. A data prevista de lançamento do Fedora 12-Alpha é dia 18 de agosto. Se você está interessado em ajudar o Fedora, entre para o time de Garantia de Qualidade! é um dos poucos pontos onde é possível acompanhar o desenvolvimento de todos os sub-sistemas e aprender sobre o desenvolvimeto do Fedora. O calendário  do time de  QA para o f12 está aqui, e a pagina dos dias de testes aqui. Esta semana espero achar um tempo para escrever um post sobre o Fedora 12 e seu processo de Quality Assurance.

Entre para o Fedora

Entre para o Fedora

O fato triste na semana é a discussão na equipe do CentOS, espero que tudo seja superado.

Esta semana saiu o 2.6.30.4, mas apenas para algumas correções de bugs, de especial mesmo só o Bug do BIND 9 e a correria das distribuições para atualiza-lo.

Fechando a semana, quem acordou cedo hoje pode ler uma discussão das boas na linux-arm-kernel sobe um detalhe de Buffer Overflow no ARM… Russell King e Andrew Morton discutindo é algo legal de se ver.

Para esta semana espero reservar um tempo para terminar um artigo sobre o KProbe, escrever sobre a fase de testes do Fedora 12 e fazer alguns testes do RTLinux em processadores ARM…

Ahhh, para não dizer que só falei de nerdice: dia 8 vou completar 23 anos, se quiser me enviar um presente… não ficarei bravo, principalmente se for um kit de desenvolvimento da TI com dois processadores OMAP 😀

uncompressing new week .......................................... done.
...
all bugs addeded by Daniel Bristot de Oliveira.
...
have a lot of fun...
~ #

Jprobe

  1. #include <linux/module.h>
  2. #include <linux/kprobes.h>
  3. #include <linux/fs.h>
  4.  
  5. static void jprobe_do_sys_open(int dfd, const char __user
  6. *filename, int flags, int mode)
  7. {
  8.         printk(KERN_INFO "filename: %s %d\n", filename, mode);
  9.         jprobe_return();
  10. }
  11.  
  12. static struct jprobe my_jprobe = {
  13.         .kp.symbol_name = "do_sys_open",
  14.         .entry = (kprobe_opcode_t *) jprobe_do_sys_open,
  15. };
  16.  
  17. int init_module(void)
  18. {
  19.         register_jprobe(&my_jprobe);
  20.         return 0;
  21. }
  22.  
  23. void cleanup_module(void)
  24. {
  25.   unregister_jprobe(&my_jprobe);
  26. }
  27.  
  28. MODULE_LICENSE("GPL");

ARM, debug, Monitor e Docbook

Esta foi uma ótima semana. Domingo a noite para começar bem, li sobre as versões dos processadores ARM e algumas tecnologias embarcadas nos processadores ARM, como Jazelle, NEON, mas acabei dando maior atenção ao artigo Improving ARM Code Density and Performance, que explica as instruções Thumb2, que possibilitam gerar código com maior densidade e com isto dar maior performance nos processadores por buscar menos informações fora do núcleo, felizmente esta semana consegui um kit de desenvolvimento com um processador Cortex-A8, que possui as instruções thumb2, vamos ver o que sai.

Durante a semana gastei bastante tempo estudando modos de depuração do kernel do Linux e comecei a escrever um artigo sobre depuração do kernel e aplicações no Linux, espero publica-lo em breve.

Sobre artigos, em meus novos desafios estou tendo a oportunidade de aprender várias tecnologias novas, e por que não escrever sobre elas? pensando nisto procurei sobre formatos de edição de livros e artigos, primeiro pensei no Latex, gostei do estilo de edição dele, muito simples, porém pareceu limitado, procurando mais, encontrei no DocBook tudo o que precisava, adicionei alguns links sobre as documentações que li sobre.

Este é o primeiro post no meu novo monitor de 19″, que está facilitando muito e minha vida, com ele é possível para deixar duas janelas visíveis ao mesmo tempo, espero não ficar vesgo…

Quarta feira entreguei a versão final do meu TCC I, o que foi um alívio…

E para não dizer que sou um nerd total, apanhei um monte no jiu jitsu… mas estou melhorando.

Esta é da semana passada mas, eu criei duas novas páginas no meu blog: links e src, nelas irei guardar links sobre coisas que ando lendo/estudado e alguns arquivos fontes, meus e de terceiros, que eu acho úteis e merecem ser compartilhados.

RPMFusion

“O RPMFusion prove softwares que o Fedora e o Red Hat não disponibilizam no sistema operacional, os softwares são pre-compilados em RPMs para todas as versões atuais do Fedora e o Red Hat EL 5.” (RPMFusion).

O RPMFusion mantém dois repositórios:

  • free: para aplicações livres que por algum motivo não estão no Fedora.
  • nonfree: para aplicações que não estão de acordo com o licenciamento do Fedora.

Para Instalar os repositórios:

# rpm -ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
# rpm -ivh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

Agora é só usar com o yum para instalar aquele suporte a vídeos e outras coisa mais que você usa depois de 37 horas na frente do V&C (Vim & Console), ou pra ver com aquela gatiiiinha em? safadinho…

Analista de desenvolvimento: Linux C e redes

A tempos que venho me interessando pelo desenvolvimento de sistemas, principalmente embarcados, e isto me fez, no final do ano passado buscar um tema de TCC que pudesse ser um DEMO de como é esta área… dei sorte; consegui junto a equipe de pesquisa e desenvolvimento de software da empresa qual trabalho o tema: QoS em rede para central VoIP em Linux embarcado, pronto, era o que eu queria, Linux embarcado, C e redes, estou em casa.

No decorrer do primeiro semestre deste ano, grande parte do meu tempo livre, incluso finais de semana, foram dedicados a isto, e não é que peguei gosto pela coisa?

Ao mesmo tempo, via os grandes desafios da administração de sistemas ficarem cada vez menores… Com o tempo, tudo aquilo que era complexo e novo, tornou-se rotina… e o brilho foi diminuindo…

Certo dia, vi um discurso do Steve Jobs, onde ele falou algo como, “se hoje fosse seu ultimo dia, você gostaria de fazer o que está prestes a fazer hoje?”, e então, a cada manhã ao me perguntar, repetidamente, a resposta era: isto não me faz mais feliz… Queria algo novo. queria algo com desenvolvimento de Linux embarcado, C e redes…

Então decidi correr atrás, e felizmente, consegui uma transferência, após alguns namoros, na mesma empresa que trabalhava, para o desenvolvimento de centrais telefónicas, trabalhando com Linux embarcado, redes e C…

Esta foi a primeira semana na nova profissão, e todos os dias dessa semana, ao acordar, a resposta foi, sim, é aqui onde estavam meus ídolos, (Ken Thompson, Denis Ritchie), é aqui que quero estar… Linux embarcado, C e redes…