terça-feira, 24 de maio de 2011

IPv6 - Novo protocolo ou implementação???

Acabei de fazer um curso sobre IPv6 e achei importante compartilhar isso aqui no blog.
A internet se baseia no IP (Internet Protocol), esse protocolo define a forma como as informações vão de um ponto ao outro na internet.
Antes de falarmos sobre IPv6 especificamente temos que entender alguns conceitos sobre rede.

REDE = É um grupo de computadores conectados entre si através de um meio físico compartilhando informações
PACOTES = As informações trafegam pela internet em formato de pacotes.
     Podemos comparar esses pacotes a correspondências enviadas pelos Correios. Quando enviamos uma correspondência temos que colocar na embalagem (pacote) os dados referentes a destinatário, remetente, se já foi paga, se será paga no destino e vários outras informações que são escritas na parte externa da correspondência. Imaginemos a seguinte situação: Eu tenho que enviar um manequim de loja mas tenho que usar caixas pequenas para isso já que os correios (hipotéticamente) não permitem caixas grandes então terei que dividir o manequim em pedaços pequenos e enviá-lo parte por parte, mas por exigência do meu cliente eu tenho que enviar as partes seqüencialmente para ser montado na ordem de chegada, em cada pacote terei que colocar todos os dados de envio e ainda terei que usar o serviço de AR (Aviso de Recebimento) dos correios que confirma o recebimento de cada pacote no destino para que só então eu possa enviar o próximo. É exatamente isso que ocorre na transmissão de informações pela internet ou por uma rede qualquer.
PROTOCOLO = É uma ou mais regras que definem como a informação deve ser organizada.
     Em nosso exemplo de correio temos um protocolo que determina que os dados de remetente e destinatário devem estar separados, se possível em lados opostos e a sequência deve ser:
                    Remetente:                                                    Destinatário:
                    Endereço:                                                     Endereço:
                    CEP:                                                            CEP:

     Na internet o protocolo mais usado é o IP (Internet Protocol) que tem seu cabeçalho mostrado abaixo em suas duas versões:

     Cada pacote é enviado pela internet precedido por um cabeçalho nesse formato.
IP (Internet Protocol) = Quando falamos em IP, na maioria dos casos pensamos em um número como 192.168.0.1 ou 200.267.139.25, mas IP é muuuito mais do que isso esse número, voltando ao nosso exemplo dos correios, seria apenas o CEP que guarda muita informação por trás dele e é aí que vem o problemas em mudar esse número.
     No início da internet, por volta de 1969, não se tinha a menor idéia de que ela poderia chegar perto do que é hoje, foi uma rede criada para fins militares nos EUA e a identificação IP era formada por um número de 4 octetos sendo cada um com 3 dígitos que permitiria ao Governo Americano interligar até 4.294.967.296 computadores, isso era um número pensado inalcançável, mas na década de 80 resolveu-se usar essa infraestrutura para interligar outras redes que a princípio foram Universitárias e depois Comerciais.
      Tá, mais detalhes sobre essa história é fácil achar na internet pesquisando sobre "início da internet" ou "arpanet", então vou me ater aqui aos IPv6.

     No início da década de 90 já se percebeu que a internet iria crescer muito e que os números de IP's não seriam suficiente para todos e já que teriam que mexer no protocolo deveriam implementar mais do que somente os números eu que seria um bom momento para reavaliar a estrutura desse protocolo. Então começaram os estudos para essa mudança e foi criado o IPv6.
     Enquanto se desenvolvia o IPv6 foram criadas soluções paliativas que só retardam o esgotamento de números, e cada uma possuía um "porém" que a inviabilizava a longo prazo.
     Então, em 1998, nasceu o IPv6 e sua certidão de nascimento é a norma RFC 2460.
    De lá para cá vem sendo sendo implementadas formas de substituir o IPv4 pelo IPv6 mas isso não é nada fácil já que se tudo fosse parado de uma única vez para isso seria o caos social total. Ou você acha que conseguiria viver um único dia sem o uso da internet? A internet hoje está em nosso dia-a-dia das formas mais imperceptíveis, como aquela maquininha que você passa o cartão para pagar sua conta ou no caixa eletrônico do banco que você saca dinheiro...
     Os Sistemas Operacionais atuais já possuem suporte à esse protocolo mas implementá-lo ainda é um pouco mais complicado do que parece pois dependem de alterações estruturais que tem um custo elevado e a parte mais complicada é que essas redes tem que falar com outras e se essas outras redes não tem suporte ao IPv6 deverá existir um "tradutor" entre elas.
     Existem muitas vantagens em adotar o IPv6 e para isso serão necessários profissionais preparados e capacitados, esses profissionais serão muito mais importante de que os equipamentos e as empresas, pois será a partir deles que as empresas poderão escolher os melhores equipamentos.
     Algumas pessoas acham que para mudar basta trocar o endereço IPv4 pelo endereço IPv6 e a coisa não é nem próximo a isso.
     Esse assunto é conteúdo de vários cursos, então não daria pra eu ir muito profundamente aqui.
     Respondendo a pergunta do título... É uma implementação do IPv4 transformando-o em um novo protocolo.
     A quem interessar, é hora de se atualizar nesse assunto.
     

terça-feira, 17 de maio de 2011

Como salvar um vídeo do Youtube no novo flash plugin:


Não vou reinventar a roda só pra poder assinar como criado por mim.

Eu achei esse conteúdo após pesquisar e perguntar bastante e como foi o conteúdo mais completo que consegui encontrar e não vou plagiá-lo mudando algumas palavras pra dizer que fui eu que criei. Se eu fosse escrever algo assim ficaria muito próximo a isso. Vou só adicionar alguns comentários em vermelho. 
Esse conteúdo vem do link: 

http://linux.liquuid.net/content/como-salvar-um-v%C3%ADdeo-do-youtube-no-novo-flash-plugin


Como salvar um vídeo do Youtube no novo flash plugin ?

Houve um tempo (até poucas semanas atrás), em que para salvar um vídeo FLV qualquer da web, bastava ir no diretório /tmp, e copiar o arquivo FlashFEYHS2W34F para o desktop com outro nome, ou ainda assistir o vídeo usando o mplayer enquanto o mesmo era baixado.
Mas as coisas mudaram, a Adobe, visando proteger o direito autoral da indústria, mudou o comportamento do Flash, agora ao começar o stream de vídeo ele deleta o arquivo do HD, assim ele fica inacessível para o sistema e para os outros programas, mas não para o processo que originou o stream. Ou seja, enquanto esse processo estiver rodando o sistema de arquivos não libera o espaço ocupado pelo arquivo deletado, assim ele continua disponível para o processo pai indefinidamente.
Que tal usar essa característica dos sistemas de arquivos do linux a nosso favor ?
Primeiro passo, escolha um vídeo no youtube e dê play, em seguida abra um terminal e digite:
lsof | grep deleted | grep /tmp/Flash
* Nesse caso podemos perceber que os arquivos em flash ainda são criados na pasta /tmp e com o prefixo "Flash". O comando lsof mostra os arquivos abertos no sistema, com "grep deleted" selecionamos os que possuem o status de "deletados" e com "grep /tmp/Flash" selecionamos aqueles que foram criados no diretório "/tmp/Flash"
Essa etapa pode demorar alguns minutos, dependendo do tamanho do seu sistema e da quantidade de processos rodando, e no fim ele vai te gerar uma saida semelhante a essa:
          chromium- 4103 liquuid 22w REG 8,21 20022146 394236 /tmp/FlashXXfBMa8x (deleted)
Esse comando nos mostra qual o comando e o número do processo que tem um arquivo aberto deletado cujo o nome se inicia com '/tmp/Flash'. Se você pegar o nome do arquivo '/tmp/FlashXXfBMa8x' e der um 'ls', ele não vai estar lá, por outro lado todos os processo do linux tem seus files decriptors muito bem organizados e guardados no diretório '/proc'.
Dessa forma usando o número do processo (segunda coluna) 4103, basta dar o comando:
ls -l /proc/4103/fd/ | grep '/tmp/Flash'
A saída será parecida com essa :
l-wx------ 1 liquuid liquuid 64 2011-03-26 16:31 22 -> /tmp/FlashXXfBMa8x (deleted)
Ou seja, existe um link chamado '22' linkado com o conteúdo do arquivo deletado, então basta copiar '/proc/4103/fd/22' para outro diretório, para ter sua cópia do vídeo. Não é simples, mas é uma forma.


sábado, 7 de maio de 2011

Atualizar o kernel no Debian 64

Durante minha instalação do Debian64 descrita no post Debian 64 - A nova aventura..., eu achei que ainda não havia sofrido o suficiente para um técnico experiente, então resolvi ampliar meu sofrimento compilando a versão mais recente do kernel, eu já havia feito download do novo kernel pra tentar usar os 04 GB de Ram no Debian Lenny 32bits, o que foi um fiasco total, então... "já que está dentro, relaxa e....".

     Primeiramente, a versão usada nesse caso foi a 2.6.38-5, que nesse dia era a stable.
     No Debian nem se sofre tanto no momento de se compilar um novo kernel, fiquei até com saudades do Slack. O Debian faz quase tudo automático pra você, isso me lembra um outro sistema operacional que minhas convicções religiosas não me permitem citar aqui.
     Maaasss, vamos ao que interessa:

     Passos para instalação:

  1. Instalar os pacotes que facilitam necessários a compilação: 
    • aptitude install build-essential kernel-package libncurses5-dev libqt3-mt-dev.
    • Aceite a instalação de todas as dependências
  2. Baixar a versão do kenel em www.kernel.org;
  3. Descompacte o arquivo na pasta /usr/src e crie o link com o nome "linux" para esse novo diretório:
    • tar -xjvf linux-2.6.38.5.tar.bz2 /usr/src;
    • cd /usr/src
    • ln -s linux-2.6.38.5 linux
  4. Entre nesse novo diretório:
    • cd linux
  5. Copie o arquivo de configuração de sua versão atual do kernel, claro que isso será útil se o seu sistema estiver funcionando com todos os seus hardwares e fará com que você tenha que escolher menos opções, maaassss, se você for sadomasoquista pode iniciar do zero, mas prepare-se para ler bastante e compre algumas latinhas de coca-cola e café solúvel.
    • cp ../.config .
  6. Abra o menu de configuração do kernel:
    • make menuconfig
  7. Nesse momento é que você deve definir o que será alterado no kernel para que valha a pena uma recompilação, o item principal a ser alterado, em minha opinião, é em relação à arquitetura do seu processador, já que isso faz com que o kernel utilize funções específicas do seu processador e não as genéricas, aumentando assim o desempenho de seu processador. Abra
    • escolha  Processor type and features  --->
    • escolha  Processor family --->
    • escolha a opção que que se refere ao seu processado especificamente.
  8. Em algumas versões do kernel existe algo estranho, eu não vou dizer que é um bug porque se fosse já estaria resolvido, mas é algo que eu ainda não consegui entender e, na verdade, nem tentei, é o fato de existir uma linha dentro do arquivo /usr/src/linux-xxx/Documentation/lguest/Makefile que provoca um problema na compilação, então edite o arquivo e altere a linha "all: lguest" para "all: ".
  9. Até aqui são os mesmo passos para a maioria das distros, mas nesse ponto vem a mágica do Debian, ele nos permite gerar um pacote que será instalado a partir de seu gerenciador de pacotes padrão. (Tá bom, nesse ponto eu não senti saudades do Slack )
    • make-kpkg --initrd --bzimage modules_image kernel_image kernel_headers
  10. O passo anterior faz com que seja criado um pacote debian no diretórios /usr/src, então é só sair do diretório atual e instalar o pacote criado:
    • cd ..
    • dpkg -i linux-image-2.6.38.5_2.6.38.5-10.00.Custom_amd64.deb
  11. Pronto, o novo kernel já está compilado e instalado.
  12. Nesse momento você pode tentar reiniciar o computador e se tudo funcionar corretamente, meus parabéns você atualizou seu kernel e pode usufruir dos benefícios dele, que com certeza incluirão maior rendimento devido ao fato de ele estar configurado para sua arquitetura de processador.
  13. Massss, nem tudo são louros, e se você se deparar com um belíssimo "kernel Panic" é sinal que as coisas não correram muito bem, normalmente é devido aos sistemas de arquivo que você usava e que, sabe Deus porque, não foram compilado diretamente no kernel e então você deverá usar o sistema genérico initrd.img, para isso continue os passos desse tutorial, sendo que essa parte foi totalmente implementada por mim, os passos anteriores eu consegui juntando alguns artigos na internet e consultando manuais e fazendo pequenas alterações nos arquivos originais, mas os seguintes foram bem mais complicados já que não havia nada especificamente então foram  "pescados" em pequenos pedaços de artigos e manuais.
  14. Consulte seu diretório /lib/modules e veja que lá existe um diretório com a versão dos kernel que você acabou de instalar (/lib/modules/2.6.38.5).
  15. Crie sua imagem initrd:
    • mkinitramfs -o /boot/initrd.img-2.6.38.5    2.6.38.5
  16. Atualize seu arquivo /boot/menu.lst inserindo bem abaixo das linhas referente ao novo kernel as linhas a seguir, claro que colocando a configuração conforme o seu caso, principalmente em relação ao "/dev/sda3" que deve ser a sua partição raiz.
    • kernel /vmlinuz-2.6.38.5 root=/dev/sda3 ro quiet
    • initrd /initrd.img-2.6.38.5
  17. Esse passo só precisei efetuar quando fiz a compilação em um sistema 32 bits, tive que copiar o arquivo /usr/src/linux/arch/i386/boot/bzimage para a pasta /boot.
  • cp /usr/src/linux/arch/i386/boot/bzimage   /boot
Agora é só reiniciar e você já terá seu novo kernel funcionando perfeitamente.
Claro que podem ocorrer erros, então não desinstale seu kernel antigo enquanto você não tiver plena certeza de que tudo está correndo bem, eu não desinstalo nunca.


Se você tiver algum firmware non-free (bnx2 por exemplo), instale-o antes de gerar o pacote.

Boa sorte.

Pacote Util-linux-ng

     Ao tentar usar o comando blkid em meu debian descobri que ele, em alguns casos, não está incluído nos programas básicos das distros, então encontrei o pacote onde ele se inclui e a descrição completa das ferramentas que o acompanham, não vou repetir tudo aqui, como é um site oficial vou apenas deixar o link para que qualquer um possa se informar diretamente:

          http://www.linuxfromscratch.org/lfs/view/6.5/chapter06/util-linux-ng.html

     Em breve irei detalhar alguns comandos desse pacote, mas por momento, nos basta saber que eles existem e possuem um descrição nesse link.
     Pra mais informações, instale o pacote e leia os manpages.

Debian 64 - A nova aventura...

"Comprei mais 2 Giga de Ram para "tunnar" meu Desktop, que felicidade, agora já posso abrir minhas máquinas virtuais com mais tranquilidade sem ter que fechar o montão de janela que costumo manter abertas ao mesmo tempo pois os 2 GB que já existiam estavam se esgotando rapidinho!!!!"

Ehhhhhh, eu queria realmente que as coisas fossem fáceis assim na vida de um técnico em informática. kkkk

     A única verdade no texto acima é o fato de eu ter comprado mais 2 Gigabyte de memória ram, pois do restante... claro que algo daria errado.
     Tive o trabalho de procurar com meu fornecedor de importados a memória exatamente do mesmo modelo da que já estava instalada anteriormente, as vezes memórias de modelos e fabricantes diferentes acabam por não "conversar" bem entre si e não conseguem o melhor desempenho esperado.
     Então a instalei em meu desk, e veio a surpresa... O Debian Lenny 32bits só reconheceu automaticamente 3.2 GB, uma diferença bem grande, 40% de perda do novo módulo, iniciei então minhas pesquisas a respeito do assunto e descobri que isso é um limite do linux 32bits e me parece que de outros sistemas operacionais também, mas como no linux tudo se resolve eu descobri que existe um módulo chamado PAE que pode ser adicionado ao kernel e que resolve esse problemas fazendo com que o linux possa reconhecer até de 64 GB no total, mas cada processo só pode usar até 04GB, o que faz com que ele leia então os 04 GB de forma completa e outra alternativa seria mudar minha plataforma para 64bits.
     Claro que a segunda opção seria, de longe, a mais complicada e então... adivinha qual foi a escolhida!!!!!
      A segunda, claro! rsrsrsrs
     Primeiramente baixei uma imagem de cd-rom mínima, o que no meu caso não é a melhor idéia já que meu link é de 400kbps e instalar os pacotes pela internet é bem demorado, mas por segurança sempre faço isso pois assim vou controlando mais de perto tudo que é instalado. Deixei a imagem baixando durante a noite.
      Peguei um hd novo que eu usava como backup de dados de clientes para não ficar sem poder usar o computador em caso de algo dar errado.
     No momento da instalação resolvi testar o sistema de LVM e permiti uma das opções padrões com LVM e com particionamento pré-definido onde a partição raiz ( / ) tinha apenas 100MB, esse foi meu primeiro arrependimento, não entendo muito sobre esse tal de LVM mas havia entendido que eu poderia mudar o tamanho das partições posteriormente, mas isso não deu muito certo. Logo ao instalar o google-chrome eu precisava de espaço no /opt e não tinha, tentei mudar o tamanho da raíz e foi só dor de cabeça, perdi dados, tive que bootar com live-cd que não possuía suporte a LVM e, por fim, resolvi recomeçar e reinstalei tudo mas agora sem o LVM e com meu particionamento pessoal onde deixo 50GB para a raiz, já que instalo e desinstalo um monte de coisas. Só por curiosidade, vou deixar meu particionamento nesse caso aqui:   swap=4GB, raiz=50GB, boot=4GB, home=50GB, tmp=10GB e /dados="restante do disco", não vou entrar em detalhes sobre os sistemas de arquivos agora, isso é para outra oportunidade.
     No momento da instalação escolhi os perfis "básico" e "Desktop" assim foi instalado o gnome.
   Comecei então copiando Todo o conteúdo de minha pasta home antiga para a nova, inclusive os arquivos ocultos o que trouxe também as configurações de vários aplicativos e até os dados sobre as últimas páginas abertas e históricos dos navegadores, o que no meu caso é muito importante já que mantenho um média de 15 a 20 guias abertas em meus navegadores e utilizo pelo menos 2 navegadores ao mesmo tempo. Claro que tive que fazer essa alteração como usuário root, já que eu uso o mesmo nome de usuário que usava na outra versão do Debian , e tive que mudar o dono para meu usuário, cuidado que se esquecido dá um trabalhão depois.
     A primeira coisa que fiz foi verificar a quantidade de memória reconhecida pelo sistema e .... lá estavam meus R$ 100,00, digo, meus 02 GB a mais de memória recém adquiridos. Até me senti feliz!!! E de quebra, minha placa de rede onboard (nVidia Corporation MCP77) que não funcionava antes, agora já respondia, mesmo que eu não consiga respostas corretas referente ao comando mii-tool sobre ela, mas está funcionando perfeitamente.
     Então comecei a instalação dos programas que uso no dia-a-dia:
        Navegador google-chrome, tudo funcionou direitinho;
        Office, resolvi instalar o LibreOffice, e tudo correu direitinho;
        Thunderbird, descobri que não havia uma versão do thunderbird para 64 bits, ou pelo menos que não era tão comentada, mas tudo bem eu poderia usar o icedove do próprio Debian, então deixei isso de lado e continuei a aventura.
        Mplayer, tive um pouquinho de trabalho para descobrir que no codec w32codecs o número 32 se refere a plataforma 32bits e então descobri que deveria instalar o w64codecs. E depois disso fui rodar um vídeo para testar e...  começaram os problemas, o som não funcionava de jeito algum, nem no navegador, em nada, comecei a pesquisar a respeito, reinstalei o alsa e descobri que ele não tem mais o alsaconf que é uma "mão na roda" na hora de instalar a placa de som, troquei pelo pulseaudio e nada, continuava sem som, disparei e-mail para a lista de usuários Debian e um colega (Eden) respondeu pra eu tentar instalar o pacote firmware-linux-nonfree, e assim o fiz e o som passou a funcionar instantaneamente. Então não se esqueçam de instalar esse pacote para ter seu som funcionando no Debian64.
          Thunderbird, voltei a ele, não estava muito conformado em não ter uma versão 64bits de um software tão popular e passei a pesquisar em todas as linhas possíveis e que eu conseguisse pelo menos pescar uma palavrinha que pudesse ser uma pista. E em algum lugar (não me lembro mais onde) "pesquei" uma palavra: "miramar" e o link http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/3.3a3/linux-x86_64/en-US/ então acessei o link, observando que era um link dentro do domínio mozilla.org e que assim,  teoricamente, seria seguro baisei o programa e era o próprio thunderbird 64bits e, como eu já havia copiado minhas pastas de configuração da pasta home antiga para a atual foi só abrir ele e todas minhas contas e msgs antigas já estavam disponívies. Ainda está em inglês, mas me parece que tem pacotes para passar para português, então ainda tenho que ver isso.
     Até o momento já tenho os programas básicos funcionando, como tenho que assistir aulas do curso que estou fazendo como preparação para a prova LPI e ainda tenho que colocar em dias as aulas da faculdade online, vou deixar assim por enquanto.