Entries Tagged 'OpenSource' ↓

Preview do GNOME 3.0

Em Setembro sai o GNOME 3.0 e sua tentativa de redefinir o Desktop, honestamente eu já vi ao menos umas 3 ou 4 tentativas, todas muito boas mas morriam na praia, vamos ver como será essa. O site Linux.com possui um pre-view do GNOME 3.0, vale a pena dar uma lida para saber o que nos espera.

Desenvolvedores do Solaris debandando a Oracle

Bom, acredito que todos sabem que a Oracle comprou a Sun que havia comprado o Solaris para substituir seu SunOS não? Dois pontos foram críticos quando a Oracle adquiriu a Sun:
1) O que iria acontecer com o MySQL?
2) O que iria acontecer com o Solaris (e o OpenSolaris)?
Parece que para o MySQL as coisas estão indo bem, a Oracle realmente está introduzindo o InnoDB (que ela também comprou) como padrão no MySQL, e está melhorando o mesmo, sempre deixando-o OpenSource.
Porém de acordo com essa notícia do  The Register, a Oracle está ignorando completamente o Solaris e ainda mais o OpenSolaris, tanto que o Lead Developer do Core do Solaris abandonou a Oracle e o “board” do OpenSolaris está sendo mais ignorando ainda, chegando ao ponto de que se até o dia 23 de Agosto continuar isso, o OpenSolaris vai voltar para a comunidade OpenSource e debandar completamente a Oracle.
Agora fica a pergunta, Oracle, o que você está fazendo???

Configurando “aquelas” teclas no Linux

Quem nunca pensou: “Adoro Linux, mas meu teclado tem 20 teclas especiais, das quais o Linux configurou automática apenas 10, como configuro o resto?”. Por incrível que pareça, não é tão complexo fazer isso, o site Linux.com está com projetos todos os finais de semana, e o da semana passada foi justamente esse. Como essa é uma pergunta que vejo se repetir e se repetir, fica aqui o link e a dica ;)

Fim do Apache 1.3

Apesar de eu estar dando um enfoque um pouco mais para programação do que para novidades, essa é importante. De acordo com essa notícia do Slahsdot, a Apache Foundation anunciou o release da versão 1.3.42 do servidor HTTP Apache e falou que será a última release do mesmo, exceto para updates de segurança. Agora vamos todos para o Apache 2, querendo ou não ;)

CUDA: Supercomputadores em seu desktop

Quem já programou em clusters (ou até mesmo utilizando paralelismo) sabe das enormes vantagens que o paralelismo pode trazer. O que poucas pessoas sabem é que você pode ter tudo isso na sua casa, programando em sua placa de vídeo nVidia utilizando CUDA, uma arquitetura de programação paralela genérica, disponibilizada Free pela nVidia.
Diferente de várias formas de programação paralela, as placas da nVidia utilizam muito mais transistores para para processamento de dados no lugar de memória, dessa forma temos o chamado SIMT(Single Instruction Multiple Threads), não vou explicar exatamente como o CUDA faz ou até mesmo como programar para CUDA agora (mais tarde sem dúvida vou colocar algum código bem explicado, mas o tempo está cada vez mais escasso). Basta falar que em uma GeForce 8500GT temos 16 cores separados em 2 processadores, e uma GTX280 conta com 280 cores, o que a nVidia fez que é extremamente elegante, foi separar o número de threads possíves pela quantidade de memória a ser processada, e não pela quantidade de processadores, dessa forma você tem uma escalabilidade praticamente perfeita.
Explicando um pouco melhor isso, para rodar algo em uma GPU utilizando CUDA você precisa criar um Grid de execução, cada Grid possui um conjunto de Blocks (blocos de threads) e cada Block possui um número n de threads que é ditado pela quantidade de dados a ser processado. Mais interessante ainda é que cada bloco de thread possui um espaço de memória do tipo shared (compartilhada) que é extremamente rápida, porém apenas as threads daquele bloco podem acessar esse espaço de memória. Além disso existe a memória do tipo global, que fica toda na GPU e qualquer thread (ou bloco) pode acessar, e outros tipos (constant, register, local e texture).
Bom, esse não é nem o básico sobre CUDA, é apenas um texto para dar um gostinho de quero mais. Um pequeno teste que fiz foi portar o algoritmo de ordenação Bitonic Sort para CUDA (código retirado dessa thread do Forum da nVidia), e comparar a versão sem paralelismo com a versão do CUDA, pois bem, o programa faz isso:

  1. Cria um array de 2^25 números = 33.554.432
  2. Copia a memória para a GPU (apnas na versão CUDA)
  3. Popula o array com o indíce invertido (array[0]=33554432, …, array[33554432]=0)
  4. Ordena utilizando o algoritmo Bitonic Sort
  5. Copia de GPU para a memória local de volta (apenas na versão CUDA)
  6. Valida os dados

na versão simples (sem paralelismo) tudo isso demorou em média 4 minutos e meio para executar, na versão CUDA demorou 0.3 segundos em uma GeForce 8500GT. Isso convence do poder do CUDA?

Para saber mais:

CUDA Zone: Site oficial com uma extensa documentação sobre o CUDA
Dr.Dobbs: Tutorial fantástico sobre CUDA

LVM no Linux, o que é e como utilizar

Caso você já tenha passado por uma situação onde era necessária a repartição do seu HD (ou criação de link simbólico) por que sua partição estava cheia, nunca se perguntou “Poxa, como seria bom se eu pude-se apenas redimensionar as partições…”? Ou você tem um monte de HD sobrando de 80Gb e pensa: “Será que eu consigo juntar todos em um só ou tenho que ter uma partição/diretório para cada um deles e colocar meus dados bem separados?”, ou ainda, comprou aquele super ultra-hd de 320GB e quer trocar seu antigo HD de 80GB, mas pensa a mesma coisa, “Será que eu não consigo apenas juntar os dois?”. Pois bem, com o LVM você pode fazer tudo isso sem ter RAID via hardware (atenção LVM não é uma alternativa ao RAID, ele apenas apresenta algumas características similares), e muito mais (como clonagem de hd para backup, ou stripping por exemplo), vou mostrar em um sistema Slackware recem-instalado (não full-install, porém com as ferramentas necessárias que existem em praticamente todas as distribuições) como fazer um array de dados básico em um HD, e depois adicionar um HD para o mesmo array sem perder os dados.

Continue reading →

Clonezilla e migrando um SO

Recentemente resolvi atualizar minha máquina e sair dos 80GB reservados para o Slackware para um novo HD de 320GB. Uma das formas para fazer isso seria:

  1. Fazer backup do sistema
  2. Instalar o novo sistema
  3. Passar o backup para o novo sistema

No more. Descobri Clonezilla! Apesar de ser “feio”, não deixa nada a dever contra o Norton Ghost e outros do tipo, passar de um HD para outro foi trivial, o único problema que encontrei foi na atualização do /etc/fstab e do LILO, mas, sem problemas, caso você faça isso e tenha problemas, existe uma forma de resolver que não necessita nem de disco live.
Uma das soluções seria simplesmente trocar o endereço físico do HD antigo pelo novo (trocando o cabo ou o jumper dos mesmos), caso isso não seja uma opção, você sempre pode:

  1. Logar normalmente no sistema antigo
  2. Editar o /etc/lilo.conf conforme você quer que ele esteja no novo hd
  3. Instalar o lilo no novo hd via o comando: /sbin/lilo -b /dev/sdb -M /dev/sdb (supondo que /dev/sdb seja seu novo HD)
  4. Voltar a configuração antiga do LILO

Pronto, pode bootar que deve funcionar agora ;) . Porém ainda temos que alterar o /etc/fstab, sem problemas, basta editá-lo e reiniciar a máquina (caso contrário você pode ficar utilizando seu antigo sistema, apenas bootando pelo novo HD :P )

Atenção, sempre que encontrar comandos que devem ser executados como root, por favor, leia a documentação (man lilo nesse caso), você pode não precisar de todos os parâmetros, ou acabar fazendo um belo dano no sistema (nesse caso você pode perder o MBR de algum outro HD e inutilizá-lo até instalar um novo HD).

Fica a dica, vale a pena, o Clonezilla faz MUITO mais do que isso, como por exemplo instalação remota em várias máquinas com PXE ao mesmo tempo. Vale a pena dar uma olhada.

FatELF e binários universais

Uma das vantagens do MacOS (e olha que eu não sou o maior fan da Apple que existe) são os binários universais. Basicamente são programas que rodam tanto em x86 quanto em PowerPC, essa é a vantagem, a desvantagem é o seu tamanho (já que você precisa ter os dois binários em um só). É aquela velha máxima, o que é um trabalho e tanto para o desenvolvedor é uma vantagem e tanta para o usuário final.
Pois bem, pensando nisso, Ryan Gordon começou o projeto FatELF para o Linux, que é extamente isso, trazer os binários universais para o Linux. Ai está uma coisa que eu acredito que valha a pena apostar.
Fonte: Phoronix.

Nova versão do Ogre

E foi lançada a versão 1.6.3 do Ogre, arrumando bugs e melhorando performance. ;)

Para quem não sabe, o Ogre é uma API gráfica, com ela você pode criar jogos, programas, simulações, tudo em 3D, utilizando ou OpenGL, ou DirectX. Muito boa mesmo, eles estão de parabéns.

Microsoft fazendo o que ela faz de melhor…

O inferno continua quente. A um tempo atrás a Microsoft lançou dois códigos GPL, um para o Kernel do Linux (se tornando uma desenvolvedora para o Kernel do Linux) e uma para o Moodle. Pois bem, o primeiro caso (sobre o Kernel), era para os drivers HyperV deles junto com a Novell, porém aparentemente esses drivers utilizavam alguns drivers GPL linkados estáticamente, o que a GPL não permite. Longa história curta, a Microsoft junto com a Novell teve que liberar o código na licença GPL, e eles fizeram o que fazem de melhor, alegaram que era como um “presente” para a comunidade OpenSource, para mostrar que eles estão mudando, que respeitam o movimento OpenSource e Linux, enfim, tudo balela.
E o módulo para o Moodle? É um módulo para conectar o Moodle ao sistema Live da Microsoft, coisa pequena que precisa ser OpenSource e em GPL, já que o Moodle é GPL. Será que mais pra frente saberemos que também foi feito por alguma violação da GPL?