:::: MENU ::::

domingo, 15 de abril de 2012


Copiado do blog DeveloperWorks, da IBM https://www.ibm.com/developerworks/mydeveloperworks/blogs/752a690f-8e93-4948-b7a3-c060117e8665/entry/as_novidades_do_linux_3.3?lang=pt_br
No último dia 19 (ainda dia 18 nos EUA), Linus Torvalds apresentou ao mundo a aguardada versão 3.3 de seu kernel livre. O primeiro kernel do ano mantém o codinome que já dura algumas versões, Saber-toothed Squirrel(esquilo dentes-de-sabre) e levou 74 dias para ficar pronto (contados a partir do lançamento da versão 3.2). As alterações nesse tempo foram muitas: os mais de 10.000 commits resultaram, pela primeira vez, num total superior a 15 milhões de linhas de código (viva!) distribuídas em 38.082 arquivos.
 

Principal novidade: Android

imagem O que mais chama a atenção no Linux 3.3, no entanto, está fora das tradicionais arenas de servidores e desktops: a reincorporação de partes do código do Android após alguns anos de separação. Se você tem como objetivo criar um mod para dispositivos equipados com Android, esta nova versão do kernel certamente será de grande ajuda — aguarde também as próximas versões!
 

Demais novidades

No entanto, o Android não é a única novidade significativa. Na área de rede, o Linux 3.3 traz avanços interessantes, como o suporte a teaming de interfaces, o combate ao bufferbloat, limitações de rede pelo subsistema cgroups e a inclusão do projeto Open vSwitch. A área de armazenamento também traz novidades no Btrfs e no Ext4.
 

Teaming de interfaces de rede

Quem necessita de alta disponibilidade ou tolerância a falhas na infraestrutura de rede certamente utiliza o módulo bonding do kernel Linux. No entanto, os desenvolvedores do kernel estavam descontentes com a manipulação, o gerenciamento e o desempenho desse recurso. Por isso, criaram o teaming (algo como "criação de equipes") de interface de redes, já anunciado como "um substituto para o bonding rápido, escalável, limpo e controlado pelo espaço de usuário". Isto significa que a criação e manipulação de agrupamentos (teams) de interfaces de rede passará a ser realizado pelo utilitário ip (do pacote iproute2), da seguinte forma:
  ip link add link [ MAC ] [ NAME ] type team
Além do ip, há uma nova biblioteca chamada libteam para interação com o espaço de usuário.
 

Bufferbloat, a ameaça

O fenômeno conhecido como bufferbloat (que pode ser entendido como "excesso de buffers") vem ganhando atenção da mídia técnica em decorrência de seus efeitos altamente maléficos para todos os sistemas conectados em rede. A principal consequência do fenômeno é a enorme latência no tráfego de pacotes de redes pelos mais diversos tipos de aparelhos, desde sistemas operacionais de desktops até os servidores, passando por todos os roteadores no meio do caminho, estejam eles equipados com Linux ou não.
O renomado programador Jim Gettys chegou a montar um vídeo demonstrativo do bufferbloat para explicar a todos a gravidade do problema.
O Linux 3.3, por sua vez, também entrou de cabeça nessa briga com a inclusão dos byte queue limits (limites de filas de bytes). Com eles, torna-se possível limitar o total de bytes que o sistema inclui nos buffers dos dispositivos de rede, o que, por sua vez, permite que pacotes de maior prioridade "furem a fila" e sejam encaminhados ao dispositivo antes dos demais pacotes. Este é um primeiro passo para alcançar um melhor uso dos buffers de rede sem prejudicar a qualidade (e as diferenças!) dos serviços de rede utilizados.
Outro passo significativo é a definição de prioridades de rede por processo, também incluída no kernel 3.3. O subsistema cgroups passa agora a contar com um novo recurso: prioridade de rede. Desta forma, é possível determinar, para cada processo ou grupo de processos, a prioridade dos pacotes que ele envia pela rede. Da mesma forma, é possível definir um tamanho máximo (em bytes) dos buffers TCP para cada cgroup.
Em conjunto, esses recursos permitem determinar que certos serviços de rede terão acesso preferencial à rede, tanto em termos de throughput quanto de latência.
 

Open vSwitch

Em configurações de rede simples, a atual infraestrutura de bridge do kernel Linux dá conta do recado. No entanto, para configurações mais avançadas ou detalhadas, há um grande espaço que os bridges não cobrem.
É nessas situações, geralmente em grandes ambientes de virtualização, que o projeto Open vSwitch tem muito a acrescentar. Embora já exista há alguns anos, somente agora esse código foi incluído no kernel Linux, o que deve elevar drasticamente seu uso.
É uma boa hora para começar a ler a documentação e descobrir como o Open vSwitch pode melhorar sua vida com sua operação nas camadas 2, 3 e 4.
 

Economia de energia em laptops

O recurso RC6 das GPUs Intel incluídas nos processadores mais recentes do fabricante não vinha sendo usado corretamente pelo kernel, o que resultava em diversos problemas de estabilidade — e consequentemente, na desativação desse recurso no kernel. O Linux 3.3 finalmente tratou as particularidades existentes; no entanto, ainda traz o recurso RC6 desativado por padrão (permanece necessário o uso do parâmetro de kernel i915.i915_enable_rc6=1). O resultado é uma economia de 3 a 5 Watts quando em estado ocioso.
Além disso, o uso correto do ASPM (active state power management) para gerenciar o uso de energia por dispositivos — já portado para os kernels 3.2.5 e 3.0.20 — está incluído também no Linux 3.3.
 

Btrfs e Ext4

A grande novidade no Btrfs, o próximo sistema de arquivos padrão do Linux, é a capacidade de alterar o layout de RAID sem interromper o uso do sistema. Por exemplo, quando se usa o Btrfs em modo RAID 0 (striping), o sistema distribui dados e metadados pelos discos utilizados. Caso seja adicionado um novo disco ao volume Btrfs, o sistema executa uma ação chamada balance para redistribuir dados e metadados levando em conta o novo disco. No Linux 3.3, o Btrfs alterou a forma como o balance é realizado e agora passa a permitir até a alteração do nível de RAID (desde que ambos os níveis utilizem striping, como ocorre nos níveis 0, 5 e 6).
O Ext4 também sofreu uma alteração benéfica em seus algoritmos: o redimensionamento de um sistema de arquivos Ext4 agora está estupidamente mais rápido (num teste simples e realista, foi de 5 minutos para menos de 5 segundos, por exemplo), como mostra Yongqiang Yang num e-mail para a lista de desenvolvedores do Ext4.
 

NVMe: acesso direto a Flash via PCI Express

Se você possui um dispositivo de armazenamento SSD acessível diretamente via PCI Express, você tem — além da minha inveja — um motivo para comemorar a chegada do Linux 3.3: ele traz o driver NVMe para esse novo padrão de acesso. Vale lembrar que esse mesmo protocolo também será usado pela próxima versão do padrão SATA, o SATA Express.
 

Suporte a EFI

Se você precisa carregar o Linux numa máquina com inicialização via EFI, o kernel 3.3 é para você: ele pode ser carregado diretamente pela EFI, pois passa a ser reconhecido como um carregador de EFI como qualquer outro.
 

Futuro: kernel 3.4 e além

A chegada da ABI x32 está cada vez mais próxima e pode ocorrer a tempo para o kernel 3.4. Com essa nova ABI proposta por desenvolvedores do kernel e do GCC, entre outros, programas feitos para a arquitetura x86 de 32 bits poderão ser recompilados de forma "limpa" para a ABI x32 e abandonar completamente o modo de compatibilidade da arquitetura x86-64.
Um novo módulo de segurança chamado Yama, de autoria de um desenvolvedor da Canonical, deve estrear em breve, ajudando o processo de hardening do sistema.
O sistema de arquivos Btrfs caminha inexoravelmente para o uso como padrão no Linux. Um de seus principais patrocinadores, a Oracle, já anunciou a certeza de que o adotará em breve como padrão em seu sistema Linux.
Até a próxima!

terça-feira, 20 de março de 2012

domingo, 18 de março de 2012



 
Repetindo o sucesso da iniciativa criada no fisl6.0, em 2005, e continuamente melhorada nas edições seguintes, nós da organização do FLISOL estamos seguindo essa mesma ideia e assim retribuiremos a divulgação espontânea do banner do FLISOL 2012 através da publicação da logomarca do seu site/blogger na seção Páginas Amigas. Para tanto, apenas solicitamos que notifiquem a Comissão Organizadora do FLISOL pelo e-mail flisolssa [at] gmail.com nos repassando os dados conforme o seguinte regulamento (leiam com merecida atenção)[1].

Ajude-nos a promover amplamente o FLISOL 2012 com nosso material de divulgação[2]! (vários tamanhos e formatos, mas respeite o que diz no item 8 das regras)[1].



A Comissão Organizadora do FLISOL e seus voluntários novamente agradecem aos colaboradores e divulgadores pois são vocês que fazem o evento ter essa grandeza. 
Categorias

  • BLOGS e SITES PESSOAIS
  • COMUNIDADES, TRIBOS e USUÁRIOS (GUs)
  • COOPERATIVAS, EMPRESAS e PROFISSIONAIS
  • DISTROS GNU/LINUX + SOs e PROJETOS LIVRES
  • ENTIDADES e ONGs
  • ESTUDANTES, ESCOLAS e UNIVERSIDADES
Obs: Estamos abertos a sugestões de categoria!

[1] - http://softwarelivre.org/flisol-ssa/regulamento
[2] - http://softwarelivre.org/flisol-ssa/divulgacao

Link da notícia : http://softwarelivre.org/flisol-ssa/paginas-amigas

domingo, 11 de março de 2012



Novamente iremos realizar o FLISOL em Salvador, ou seja, teremos muitas palestras interessantes para nosso público ávido por conhecimento.
Como de costume, teremos duas salas, uma voltada para as pessoas interessadas na área de desenvolvimento e uma especializada em infraestrutura. Tudo com Software Livre, claro!Novamente teremos diversos colaboradores a postos para instalar seu software livre preferido em sua máquina, ou seja, não perca essa oportunidade de ter um especialista no assunto disponível, e sem custo algum, para efetuar essa intervenção.

Entre os palestrantes temos as principais referências nos assuntos tratados:
  • O embaixador do projeto Fedora (Willian Mayan)
  • O criador da distribuição educacional Ekaaty (Cristiano Furtado)
  • O desenvolvedor do software de criação de redes sociais Noosfero (Caio Sba)
  • Membro da equipe responsável por criar o cluster que tem a função de alinhar sequências de DNA/Proteínas (Guilherme Rocha)
E tudo isso com Software Livre :)

Na área de desenvolvimento, também temos personalidades de referência com assuntos bastantes diversificados como:
  • PHP
  • Java
  • Ruby
  • Business Inteligence
  • Android
  • Web Semântica
  • NOSQL
  • MongoDB
  • Ruby
  • Demoiselle

Se deseja ajudar esse evento, que é TOTALMENTE colaborativo, acontecer, entre em contato conosco, pois lembre-se que na comunidade não existe vocês, é somente nós!

Em breve estaremos liberando a programação. Fiquem no aguardo!

sexta-feira, 9 de março de 2012

Dois pequenos detalhes impedem de realizar o login no proftpd com usuários locais:

1. Se o nome da máquina não estiver definido no arquivo /etc/hosts, apontando para o endereço de loopback (claro)
2. Se no arquivo de configuração /etc/proftpd/proftpd.conf,o módulo de autenticação unix estiver desabilitado. Eis como o arquivo geralmente vem:
### order of auth modules
        #AuthOrder               mod_auth_unix.c mod_auth_file.c
        AuthOrder              mod_auth_file.c

E como deve ficar:
### order of auth modules
        AuthOrder               mod_auth_unix.c mod_auth_file.c
        #AuthOrder              mod_auth_file.c

Feito isso, teste o serviço:
ftp endereco.do.servidor.ftp

Coloque o login e senha e seja feliz :)

Add-on:
Use um usuário específico para o ftp, para maior segurança:
useradd CACIC -c "Usuario CACIC"  -d   /srv/ftp/cacic -s /bin/false
 E logue com esse user.

Abraço!

quinta-feira, 8 de março de 2012

O Case

Outro dia o amigo ElCheVive68 me pediu para fazer um script, que o auxiliaria em uma de suas tarefas, já que o equipamento comprado para tal demanda estava se confundindo nos cálculos :)

Nesse post, abordaremos apenas o tratamento do arquivo e como realizar a limpeza + cálculo dos valores.


Os arquivos

Estes continham em média 360 linhas, com valores em V/m (volts/minuto) e mV/m (microvolts/minuto). Era esperado que mostrasse:
  • A média do campo elétrico
  • O campo magnético
  • A potência

Eles são mais ou menos assim:
1sec  Logging at: Feb 04, 2012 Thu 10:32:36 Temp=+29.1 C
7.20V/m
7.23V/m
7.46V/m
[...]
7.46V/m
AUZ V/m
AUZ V/m
2.30V/m
2.18V/m
1.48V/m
 972mV/m
 972mV/m
 755mV/m
[...]
Recorded samples: 00366  Thu 10:38:44 Temp=+29.4 C
Max:14.6V/m   Avg:2.61V/m 

Segue arquivos de exemplo:

Baixe os arquivos e vamos começar a brincadeira :)
Lembrem de deixar esses arquivos no mesmo diretório do script. Eu sei que poderia ter melhorado isso, mas tô com preguiça ( mimimimimimimi )

HANDS ON!


Primeiro, vamos arrumar um lugar pra fazer nossa brincadeira:

[ -d output ] || mkdir output

Depois, vamos criar uma função, para deixar tudo bem organizado:
tratamento(){
LIST=output/$FILE
VERIFIED=output/${FILE}_verificado.txt
cp $FILE $LIST.out
dos2unix $LIST.out 


[ -d output ] || mkdir output irá criar um diretório chamado output, caso ele não exista;
OUTPUT="resultado.csv" é a variável que criará o arquivo com o resultado;
tratamento(){ é como iniciamos uma função em Shellscript;
LIST=output/$FILE é a variável que manterá o nome do arquivo que será tratado pelo script;
VERIFIED=output/${FILE}_verificado.txt gerará a saída dos arquivos já tratados.
 cp $FILE $LIST.out cria uma cópia do arquivo a ser tratado. Sempre trabalharemos com a cópia;
 dos2unix $LIST.out irá converter os arquivos de texto do padrão windows para o Unix - essa parte é MUITO IMPORTANTE.




Se o objetivo é realizar cálculos com os valores, então, temos de analisar o arquivo-fonte e deixar somente o que é necessário, no caso, os números. A melhor ferramenta para realizar essa limpeza é, na minha opinião, o sed:

 sed -i 's/ //g;/AUZ/d;/^$/d;/Recordedsamples/d;/Logging/d;/Max/d;' $LIST.out
Aqui, estamos:
sed -i - altera diretamente o arquivo de entrada;
's/ //g; - remove todos os espaços em branco;
/AUZ/d; - remove as linhas que contém o valor AUZ;
/^$/d; - Nas expressões regulares, '^' significa início de linha e '$' final de linha. Então, se juntarmos os dois, teremos uma linha vazia! Caso haja alguma em nosso arquivo, ela será removida.
/Recordedsamples/d; - Observem que no final do arquivo, temos esse trecho. Como o sed já removeu os espaços em branco, temos de ficar atentos às strings posteriores.
/Logging/d; - É o cabeçalho do arquivo. Inútil.
/Max/d;' - Última linha do arquivo. Inútil.
$LIST.out - O arquivo de entrada.
Com isso, teremos o arquivo apenas com os valores das cargas.

Mas, temos um pequeno problema: Temos valores em mV/m e em V/m!
Esse ponto é fácil de resolver, basta acharmos o valor total em mV/m e dividir por 1000. Com isso teremos o seu valor em V/m.
Apenas como forma de prevenção a outros problemas, devemos prevenir o caso de termos arquivos com apenas mV/m ou V/m. Faremos isso de maneira simples:
Usa-se o grep buscando, por exemplo, por mV/m. Se ele encontrar, o valor de retorno será 0, pois o comando foi executado com sucesso. Caso ele não encontre nenhum valor igual ao padrão especificado, ele retornará 1. Então, de posse dessas informações...


grep 'mV/m' $LIST.out > /dev/null ; [ $? = 0 ] && \
 MVM=$( bc <<< "scale = 3; $( grep 'mV/m' $LIST.out | tr -d 'mV/m' | paste -sd+ | bc ) / 1000 " ) \
 || MVM=0
 grep -E '*[0-9]V/m' $LIST.out > /dev/null ; [ $? = 0 ] && \
        VM=$( egrep '*[0-9]V/m' $LIST.out | tr -d 'V/m' | paste -sd+ | bc ) || VM=0


Então, aqui temos:
grep 'mV/m' $LIST.out > /dev/null ; [ $? = 0 ]: Um grep buscando por 'mV/m' no arquivo presente na variável com seu STDOUT direcionado para o /dev/null, uma maneira de ocultar a saída em tela. Caso o grep tenha sucesso em sua busca, ele retornará 0 na variável $?, e em seguida:
Fará uma nova busca pelo mesmo valor (mV/m), porém, redirecionará a saída para o tr;
O tr irá remover todos os padrões 'mV/m' encontrados no arquivo e jogará a saída para o paste;
O paste irá mudar a posição dos valores. Ao invés de um valor por linha, ele os colocará lado a lado e, utilizando como separador, um sinal de soma ( + ).
O bc, por sua vez, receberá o redirecionamento do paste, obtendo os valores, parecido com essa saída:
972+972+755+435+358+307+704+716+601+371+345+460+499+473+409+320+384+422+473+396
+396+371+371+371+371+358+512+499+486+332+358+371+371+358+371+371+396+384+345+33
2+345+358+384+358+332+345+358+358+332... 

Bom, aí o bc só soma e vai pra galera :)
Se ele não encontrar nenhum valor em mV/m, ele irá atribuir 0 a variável MVM, pois se esta estiver vazia, o bc não irá calcular e apresentará um erro.
Percebam também que existe um / 1000. Com isso, eu consigo igualar o valor dos mV/m aos V/m, facilitando o meu cálculo pela média do arquivo.

No trecho buscando V/m, eu faço algo parecido, exeto pelo fato que, deixo claro, utilizando expressões regulares, que quero apenas valores numéricos imediatamente seguidos por V/m ( *[0-9]V/m ). Do mesmo modo, caso não encontre nada em V/m, atribua 0 a variável VM.

De posse das variáveis MVM e VM com seus devidos valores, vamos ao final:

SUM=$( bc <<< "$MVM + $VM " )
LINHAS=$( wc -l $LIST.out | cut -f1 -d' ' )
MED=$( bc <<< "scale = 3; $SUM / $LINHAS" )
HAV=$( bc <<< "scale = 6; $MED / 377" )
SEQ=$( bc <<< "scale = 6; $MED ^ 2 /377" )

SUM é a soma dos valores de MVM (já convertidos em V/m) e VM;
LINHAS é a quantidade de valores válidos no arquivo;
MED é a média do campo elétrico;
HAV é o campo magnético e;
SEQ é a potência.

Depois disso, é só printar na tela, fechar a função e adicionar um laço para ler os arquivos que serão usados como STDIN :D

echo -e "Total = $SUM
Amostras = $LINHAS
Media = $MED
H = $HAV
Seq = $SEQ" > $VERIFIED

}

for FILE in $( ls *.TXT ); do
   tratamento
done

Prontinho! Seu script para fazer cálculos estranhos (hauhauhauhaa) está pronto! Todos os resultados estarão no diretório output (criado no diretório corrente do script).
Agora é só juntar tudo e... FINISH!


#!/bin/bash
# Rauhmaru, rauhmaru@opensuse.org
# ElCheVive68, elchevive68@opensuse.org
# Calcula valores
#
[ -d output ] || mkdir output
OUTPUT="resultado.csv"
tratamento(){
LIST=output/$FILE
VERIFIED=output/${FILE}_verificado.txt
 cp $FILE $LIST.out
 dos2unix $LIST.out
## LIMPEZA
 sed -i 's/ //g;/AUZ/d;/^$/d;/Recordedsamples/d;/Logging/d;/Max/d;' $LIST.out
## CALCULOS
 grep 'mV/m' $LIST.out > /dev/null ; [ $? = 0 ] && \
 MVM=$( bc <<< "scale = 3; $( grep 'mV/m' $LIST.out | tr -d 'mV/m' | paste -sd+ | bc ) / 1000 " ) \
 || MVM=0
 grep -E '*[0-9]V/m' $LIST.out > /dev/null ; [ $? = 0 ] && \
        VM=$( egrep '*[0-9]V/m' $LIST.out | tr -d 'V/m' | paste -sd+ | bc ) || VM=0
 SUM=$( bc <<< "$MVM + $VM " )
 LINHAS=$( wc -l $LIST.out | cut -f1 -d' ' )
 MED=$( bc <<< "scale = 3; $SUM / $LINHAS" )
 HAV=$( bc <<< "scale = 6; $MED / 377" )
 SEQ=$( bc <<< "scale = 6; $MED ^ 2 /377" )
## PRINTS
 echo -e "Total = $SUM
Amostras = $LINHAS
Media = $MED
H = $HAV
Seq = $SEQ" > $VERIFIED
 rm $LIST.out
}
for FILE in $( ls *.TXT ); do
tratamento
done
echo -e "Arquivo\tTotal\tAmostras\tMedia\tH\tSeq" > $OUTPUT
for i in $( ls output/*_verificado.txt ); do
LINHA=$( awk '{ print $NF}' $i | paste -sd'\t')
echo -e "$(basename $i | awk -F'.' '{ print $1}' )\t$LINHA" >> $OUTPUT
done

Pra dar mais uma incrementada, no final eu coloco os arquivos em um .csv, para que sejam visualizados no Calc ou Excel. Cada arquivo estará em uma linha, e os seus valores agrupados em coluna. :)

Um abraço!





quarta-feira, 7 de março de 2012

Essa é uma das principais queixas dos novos usuários do openSUSE: Atualização automática cada vez que o gerenciador de pacotes / zypper é invocado. Realmente, isso estressa.

Porém, esse é um problema que tem solução, e das fáceis. Basta apenas desabilitar o auto-update do repositório que o inconveniente será resolvido :)

Mostrarei de duas maneiras: Warrior's Mode e o Newbie Mode.


WARRIOR MODE

Linha de comando é o que há! Shellscript é seu melhor amigo! Interface gráfica é para os frascos e comprimidos!
for REPO in $( seq $( zypper ls | grep -c ^[0-9] ) ); do zypper mr -R $REPO; done

Não entendeu? Eu explico:
Faremos um laço ( for, do, done ). Esse laço irá contar quantos repositórios existem ( $( zypper ls | grep -c ^[0-9] ) e dará quantidade de voltas igual a quantidade de repositórios. A cada volta, um repositório é desabilitado ( zypper mr -R $REPO ).


Newbie orea-seca

Mole mole... Acesse:
Yast > Categoria Software > Repositórios de Software.
Depois é só desmarcar o campo Atualizar Automaticamente e clicar em OK.


Entenderam? Abraço!

Posts populares