<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Geek Vault &#187; OpenSource</title>
	<atom:link href="http://www.geekvault.org/category/news/opensource/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.geekvault.org</link>
	<description>Because geeks, like to talk.</description>
	<lastBuildDate>Fri, 16 Jul 2010 12:47:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Preview do GNOME 3.0</title>
		<link>http://www.geekvault.org/2010/07/preview-do-gnome-3-0/</link>
		<comments>http://www.geekvault.org/2010/07/preview-do-gnome-3-0/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 12:47:14 +0000</pubDate>
		<dc:creator>Zarnick</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[GNOME 3.0]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Novidades]]></category>
		<category><![CDATA[Pre-view]]></category>

		<guid isPermaLink="false">http://www.geekvault.org/?p=542</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.geekvault.org%2F2010%2F07%2Fpreview-do-gnome-3-0%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.geekvault.org%2F2010%2F07%2Fpreview-do-gnome-3-0%2F&amp;source=zarnick&amp;style=compact&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>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 <a href="http://www.linux.com" target="_blank">Linux.com</a> possui um <a href="http://www.linux.com/news/software/applications/326989-gnome-3-the-future-of-the-desktop" target="_blank">pre-view</a> do GNOME 3.0, vale a pena dar uma lida para saber o que nos espera.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geekvault.org/2010/07/preview-do-gnome-3-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Desenvolvedores do Solaris debandando a Oracle</title>
		<link>http://www.geekvault.org/2010/07/desenvolvedores-do-solaris-debandando-a-oracle/</link>
		<comments>http://www.geekvault.org/2010/07/desenvolvedores-do-solaris-debandando-a-oracle/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 12:39:45 +0000</pubDate>
		<dc:creator>Zarnick</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Novidades]]></category>
		<category><![CDATA[OpenSolaris]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Solaris]]></category>

		<guid isPermaLink="false">http://www.geekvault.org/?p=539</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.geekvault.org%2F2010%2F07%2Fdesenvolvedores-do-solaris-debandando-a-oracle%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.geekvault.org%2F2010%2F07%2Fdesenvolvedores-do-solaris-debandando-a-oracle%2F&amp;source=zarnick&amp;style=compact&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>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:<br />
1) O que iria acontecer com o MySQL?<br />
2) O que iria acontecer com o Solaris (e o OpenSolaris)?<br />
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.<br />
Porém de acordo com <a href="http://www.theregister.co.uk/2010/07/14/oracle_lavender_opensolaris/" target="_blank">essa</a> notícia do  <a href="http://www.theregister.co.uk/" target="_blank">The Register</a>, 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 &#8220;board&#8221; 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.<br />
Agora fica a pergunta, Oracle, o que você está fazendo???</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geekvault.org/2010/07/desenvolvedores-do-solaris-debandando-a-oracle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurando &#8220;aquelas&#8221; teclas no Linux</title>
		<link>http://www.geekvault.org/2010/06/configurando-aquelas-teclas-no-linux/</link>
		<comments>http://www.geekvault.org/2010/06/configurando-aquelas-teclas-no-linux/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 13:10:37 +0000</pubDate>
		<dc:creator>Zarnick</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[teclado]]></category>

		<guid isPermaLink="false">http://www.geekvault.org/?p=528</guid>
		<description><![CDATA[Quem nunca pensou: &#8220;Adoro Linux, mas meu teclado tem 20 teclas especiais, das quais o Linux configurou automática apenas 10, como configuro o resto?&#8221;. 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 [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.geekvault.org%2F2010%2F06%2Fconfigurando-aquelas-teclas-no-linux%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.geekvault.org%2F2010%2F06%2Fconfigurando-aquelas-teclas-no-linux%2F&amp;source=zarnick&amp;style=compact&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Quem nunca pensou: &#8220;Adoro Linux, mas meu teclado tem 20 teclas especiais, das quais o Linux configurou automática apenas 10, como configuro o resto?&#8221;. Por incrível que pareça, não é tão complexo fazer isso, o site <a href="http://www.linux.com" target="_blank">Linux.com</a> está com projetos todos os finais de semana, e o da semana passada foi justamente <a href="http://www.linux.com/learn/tutorials/320420-weekend-project-configure-your-keyboard-into-submission" target="_blank">esse</a>. Como essa é uma pergunta que vejo se repetir e se repetir, fica aqui o link e a dica <img src='http://www.geekvault.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.geekvault.org/2010/06/configurando-aquelas-teclas-no-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fim do Apache 1.3</title>
		<link>http://www.geekvault.org/2010/02/fim-do-apache-1-3/</link>
		<comments>http://www.geekvault.org/2010/02/fim-do-apache-1-3/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 23:34:00 +0000</pubDate>
		<dc:creator>Zarnick</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Stuffs]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Noticias]]></category>

		<guid isPermaLink="false">http://www.geekvault.org/?p=484</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.geekvault.org%2F2010%2F02%2Ffim-do-apache-1-3%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.geekvault.org%2F2010%2F02%2Ffim-do-apache-1-3%2F&amp;source=zarnick&amp;style=compact&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Apesar de eu estar dando um enfoque um pouco mais para programação do que para novidades, essa é importante. De acordo com <a href="http://apache.slashdot.org/story/10/02/03/2052211/The-Final-Release-of-Apache-HTTP-Server-13" target="_blank">essa notícia do Slahsdot</a>, 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 <img src='http://www.geekvault.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.geekvault.org/2010/02/fim-do-apache-1-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CUDA: Supercomputadores em seu desktop</title>
		<link>http://www.geekvault.org/2010/01/cuda-supercomputadores-em-seu-desktop/</link>
		<comments>http://www.geekvault.org/2010/01/cuda-supercomputadores-em-seu-desktop/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 14:12:15 +0000</pubDate>
		<dc:creator>Zarnick</dc:creator>
				<category><![CDATA[ANSI C]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Stuffs]]></category>
		<category><![CDATA[CUDA]]></category>
		<category><![CDATA[introdução]]></category>
		<category><![CDATA[paralelismo]]></category>

		<guid isPermaLink="false">http://www.geekvault.org/?p=481</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.geekvault.org%2F2010%2F01%2Fcuda-supercomputadores-em-seu-desktop%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.geekvault.org%2F2010%2F01%2Fcuda-supercomputadores-em-seu-desktop%2F&amp;source=zarnick&amp;style=compact&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>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.<br />
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.<br />
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 <em>n</em> 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 <em>shared </em>(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).<br />
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 <a href="http://en.wikipedia.org/wiki/Bitonic_sorter" target="_blank">Bitonic Sort</a> para CUDA (código retirado dessa <a href="http://forums.nvidia.com/index.php?showtopic=84651&amp;hl=Bitonic" target="_blank">thread</a> do <a href="http://forums.nvidia.com/index.php?showforum=62" target="_blank">Forum da nVidia</a>), e comparar a versão sem paralelismo com a versão do CUDA, pois bem, o programa faz isso:</p>
<ol>
<li>Cria um array de 2^25 números = 33.554.432</li>
<li>Copia a memória para a GPU (apnas na versão CUDA)</li>
<li>Popula o array com o indíce invertido (array[0]=33554432, &#8230;, array[33554432]=0)</li>
<li>Ordena utilizando o algoritmo Bitonic Sort</li>
<li>Copia de GPU para a memória local de volta (apenas na versão CUDA)</li>
<li>Valida os dados</li>
</ol>
<p>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?</p>
<p>Para saber mais:</p>
<p><a href="http://www.google.com.br/url?sa=t&amp;source=web&amp;ct=res&amp;cd=1&amp;ved=0CAkQFjAA&amp;url=http%3A%2F%2Fwww.nvidia.com%2Fobject%2Fcuda_home.html&amp;ei=CTFLS97iLcjRlAefwKGKDQ&amp;usg=AFQjCNG1zNZv61fSdyiINfawS6rkA6z5xw&amp;sig2=3de3ZGegXoVKeF9Zq3Rpag" target="_blank">CUDA Zone</a>: Site oficial com uma extensa documentação sobre o CUDA<br />
<a href="http://www.ddj.com/architect/207200659" target="_blank">Dr.Dobbs</a>: Tutorial fantástico sobre CUDA</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geekvault.org/2010/01/cuda-supercomputadores-em-seu-desktop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LVM no Linux, o que é e como utilizar</title>
		<link>http://www.geekvault.org/2009/10/lvm-no-linux-o-que-e-e-como-utilizar/</link>
		<comments>http://www.geekvault.org/2009/10/lvm-no-linux-o-que-e-e-como-utilizar/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 13:14:14 +0000</pubDate>
		<dc:creator>Zarnick</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Stuffs]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[LVM]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.geekvault.org/?p=458</guid>
		<description><![CDATA[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 &#8220;Poxa, como seria bom se eu pude-se apenas redimensionar as partições&#8230;&#8221;? Ou você tem um monte de HD sobrando de 80Gb e pensa: &#8220;Será que [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.geekvault.org%2F2009%2F10%2Flvm-no-linux-o-que-e-e-como-utilizar%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.geekvault.org%2F2009%2F10%2Flvm-no-linux-o-que-e-e-como-utilizar%2F&amp;source=zarnick&amp;style=compact&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>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 &#8220;Poxa, como seria bom se eu pude-se apenas redimensionar as partições&#8230;&#8221;? Ou você tem um monte de HD sobrando de 80Gb e pensa: &#8220;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?&#8221;, ou ainda, comprou aquele super ultra-hd de 320GB e quer trocar seu antigo HD de 80GB, mas pensa a mesma coisa, &#8220;Será que eu não consigo apenas juntar os dois?&#8221;. 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.</p>
<h2><span id="more-458"></span>Pré-requisitos</h2>
<p>Últimamente a grande maioria dos sistemas Linux já possuem o LVM2 instalado por default, isso por que você pode fazer a sua partição /home em LVM por exemplo, mas caso a sua não possua, você deve instalar o LVM seguindos os passas apresentados na <a href="http://www.tldp.org/HOWTO/LVM-HOWTO/getlvm.html" target="_blank">documentação oficial</a>. Novamente reforço que isso será bem difícil de acontecer.</p>
<h2>Vantagens/Desvantagens</h2>
<p>Algumas vantagens que podemos listar:</p>
<ul>
<li>Redimensionamento de partições em tempo real</li>
<li>Junção de várias partições em uma única</li>
<li>Junção de vários HDs para um grande espaço interno</li>
<li>Stripping</li>
<li>Criação de imagens de backup</li>
<li>Mirroring</li>
</ul>
<p>Como desvantagens (nada é perfeito):</p>
<ul>
<li>Acoplado ao Kernel (sem LVM para /boot por exemplo, e não recomendado fazer para /)</li>
<li>Acesso mais lento</li>
</ul>
<h2>Primeiros passos</h2>
<p>Antes de mais nada devemos definir algumas nomenclaturas:</p>
<p><strong>Volume Group (VG)</strong>: É o grupo que contém o LVM em sí<br />
<strong>Physical Volume (PV)</strong>: O HD físico<br />
<strong>Physical Extent (PE)</strong>: Divisão de cada PV em chuncks (pedaços)<br />
<strong>Logical Volume (LV)</strong>: É o volume lógico que você pode utilizar (sua nova &#8220;partição&#8221;)<br />
<strong>Logical Extent (LE)</strong>: A divisão de cada LV em chuncks (pedaços)</p>
<p>O funcionamento pode ser demonstrado por esse ASCII art pego da documentação oficial:</p>
<p><span><span style="color: #000000;"></p>
<pre>+-- Volume Group --------------------------------+
|                                                |
|    +----------------------------------------+	 |
| PV | PE |  PE | PE | PE | PE | PE | PE | PE |	 |
|    +----------------------------------------+	 |
|      .       	  .    	     . 	      .	       	 |
|      .          .    	     .        .	         |
|    +----------------------------------------+	 |
| LV | LE |  LE | LE | LE | LE | LE | LE | LE |	 |
|    +----------------------------------------+	 |
|            .          .        .     	   .     |
|            . 	        .        .     	   .     |
|    +----------------------------------------+	 |
| PV | PE |  PE | PE | PE | PE | PE | PE | PE |	 |
|    +----------------------------------------+	 |
|                                                |
+------------------------------------------------+</pre>
<p></span></span></p>
<h2>Utilização básica (array de dados)</h2>
<p>Vamos lá então, LVM instalado e sabendo o que é cada nomenclatura, vamos inicializar o nosso Slackware e adicionar dois HDs de 1GB cada para criar uma partição lógica de 2GB (simples, sem stripping).</p>
<p>Inicialmente, precisamos rodar o comando vgscan, para que o sistema guarde as informações do LVM</p>
<pre>root@Slackware:~# vgscan</pre>
<p>Com Slackware inicializado e os HDs instalados, vamos particionar os mesmos, antes de mais nada vamos descobrir onde estão os HDs, caso você não saiba:</p>
<pre>root@Slackware:~# fdisk -l
Disk /dev/hda: 8589 MB, 8589934592 bytes
16 heads, 63 sectors/track, 16644 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Disk identifier: 0x9fc2e51d

 Device Boot      Start         End      Blocks   Id  System
/dev/hda1               1        1041      524632+  82  Linux swap
Partition 1 does not end on cylinder boundary.
/dev/hda2            1042       16644     7863912   83  Linux
Partition 2 does not end on cylinder boundary.

Disk /dev/sda: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

Disk /dev/sda doesn't contain a valid partition table

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table</pre>
<p>Ok, então temos nosso Slackware em /dev/hda e nossos dois hds em /dev/sda e /dev/sdb, vamos particioná-los, pessoalmente eu gosto do fdisk, mas qualquer ferramenta de particionamento funciona, basta criar uma partição ocupado o HD todo do tipo 8E (Linux LVM), faria para apenas um HD, para o outro o procedimento é o mesmo:</p>
<pre>root@Slackware:~# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x82ae3dd8.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help):n
Command action
 e   extended
 p   primary partition (1-4) p
Partition number (1-4): First cylinder (1-130, default 1): Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130): Using default value 130

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.</pre>
<p>Temos agora a partição /dev/sdb1 e após efetuarmos o mesmo para o HD sda teremos /dev/sda1, ambos do tipo 8E (Linux LVM), vamos então criar o PV com 1 dos HDs, para demonstrar como efetuar um resize com um outro HD depois</p>
<pre>root@Slackware:~# pvcreate /dev/sda1
  Physical volume "/dev/sda1" successfully created</pre>
<p>Agora vamos criar um grupo (VG)</p>
<pre>root@Slackware:~# vgcreate lvm /dev/sda1
  Volume "lvm" created successfully</pre>
<p>Uma nota, o nome lvm pode ser qualquer coisa que facilite a administração, pessoalmente eu prefiro lvm, ele irá criar um diretório em /dev de nome lvm, onde irá guardar o volume lógico ex: /dev/lvm/data_array. Vamos verificar (e extrair uma informação muito útil) o volume:</p>
<pre>root@Slackware:~# vgdisplay
--- Volume group ---
 VG Name               lvm
 System ID             
 Format                lvm2
 Metadata Areas        1
 Metadata Sequence No  1
 VG Access             read/write
 VG Status             resizable
 MAX LV                0
 Cur LV                0
 Open LV               0
 Max PV                0
 Cur PV                1
 Act PV                1
 VG Size               1016.00 MB
 PE Size               4.00 MB
 Total PE              254
 Alloc PE / Size       0 / 0   
 Free  PE / Size       254 / 1016.00 MB
 VG UUID               KpGi1R-xIkN-49gD-7nDC-y4HR-zUCh-2gLF7r</pre>
<p>Tudo correto, e temos a informação importante que nos interessa agora, o total de PE livre, 254, vamos então criar um volume lógico com esse espaço livre:</p>
<pre>root@Slackware:~# lvcreate -l 254 -n lvm data_array
  Logical volume "data_array" created</pre>
<p>Agora, se formos ver em /dev/lvm, iremos encontrar o device data_array, que é uma partição lógica, ainda sem formatação, então vamos formatá-la como faríamos a qualquer outra partição, criar um diretório e montá-la nesse diretório:</p>
<pre>root@Slackware:~# mkfs.ext4 /dev/lvm/data_array
.......
root@Slackware:~# mkdir /mnt/data_array
root@Slackware:~# mount /dev/lvm/data_array /mnt/data_array
root@Slackware:~# df -h /mnt/data_array
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/lvm-data_array
 1001M   18M  932M   2% /mnt/data_array</pre>
<p>A escolha do EXT4 foi por pura preferência, se você precisa utilizar JFS,XFS,EXT2,EXT3,Reiserfs, etc, fique a vontade. Apenas fique atento à possibilidade de resize do sistema de arquivos que você escolher.<br />
Sim, você pode utilizar essa partição normalmente, alias, até é uma boa idéia adicionar a mesma no /etc/fstab para montar automáticamente não? Adicione essa linha no /etc/fstab:</p>
<pre>/dev/lvm/data_array    /mnt/data_array        ext4    defaults    0    0</pre>
<p>Vamos criar um arquivo vazio de 524MB para teste:</p>
<pre>root@Slackware:~# dd if=/dev/zero of=/mnt/data_array/file count=1024000
1024000+0 records in
1024000+0 records out
524288000 bytes (524 MB) copied, 165.452 s, 3.2 MB/s</pre>
<p>Gostaria de reforçar que estou utilizando uma máquina virtual, então 3.2 MB/s não refletem a velocidade do sistema, isso pode (e vai) variar de sistema para sistema, a única certeza é que será mais lento.</p>
<p>Enfim, temos ~50% utilizado de nossa partição /mnt/data_array, e temos mais um HD de 1GB livre para utilizar, vamos efetuar o mesmo procedimento, porém vamos extender a partição lógica, no lugar de criar uma nova, vou explicar apenas os novos passos ok?</p>
<p><strong>ATENÇÃO: A PARTIÇÃO A SER REDIMENSSIONADA DEVE SER DESMONTADA!!!</strong></p>
<pre>root@Slackware:~# umount /mnt/data_array
root@Slackware:~# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created
root@Slackware:~# vgextend lvm /dev/sdb1
  Volume group "lvm" successfully extended</pre>
<p>Antes de continuar, o vgextend faz exatamente isso, ele extende o VG passado (lvm) para um novo PV (/dev/sdb1), como não utilizamos stripping, ele concatena no final. Continuando:</p>
<pre>root@Slackware:~# vgdisplay lvm
--- Volume group ---
 VG Name               lvm
 System ID             
 Format                lvm2
 Metadata Areas        2
 Metadata Sequence No  7
 VG Access             read/write
 VG Status             resizable
 MAX LV                0
 Cur LV                1
 Open LV               0
 Max PV                0
 Cur PV                2
 Act PV                2
 VG Size               1.98 GB
 PE Size               4.00 MB
 Total PE              508
 Alloc PE / Size       254 / 1016.00 MB
 Free  PE / Size       254 / 1016.00 MB
 VG UUID               KpGi1R-xIkN-49gD-7nDC-y4HR-zUCh-2gLF7r
root@Slackware:~# lvresize -l +254 /dev/lvm/data_array
  Extending logical volume data_array to 1.98 GB
  Logical volume data_array successfully resized
root@Slackware:~# e2fsck -f /dev/lvm/data_array
e2fsck 1.41.8 (11-July-2009)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
root@Slackware:~# resize2fs /dev/lvm/data_array
resize2fs 1.41.8 (11-July-2009)
Resizing the filesystem on /dev/lvm/data_array to 520192 (4k) blocks.
The filesystem on /dev/lvm/data_array is now 520192 blocks long.

root@Slackware:~# mount /mnt/data_array/
root@Slackware:~# df -h /mnt/data_array/
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/lvm-data_array
 2.0G  518M  1.4G  28% /mnt/data_array</pre>
<p>Ok, passa a passo:</p>
<ol>
<li>Checar quanto temos de PE free com vgdisplay (no nosso caso 254)</li>
<li>Aumentar o volume lógico /dev/lvm/data_array em 254 PE (vgresize -l +254 /dev/lvm/data_array)</li>
<li>Checar a consistência do novo volume (pré-requisito para o comando resize2fs)</li>
<li>Efetuar o resize utilizando resize2fs</li>
<li>Utilizar o nosso array</li>
</ol>
<p>Simples não? Vamos testar&#8230;</p>
<pre>root@Slackware:~# dd if=/dev/zero of=/mnt/data_array/file2 bs=1024000 count=750
750+0 records in
750+0 records out
768000000 bytes (768 MB) copied, 227.653 s, 3.4 MB/s
root@Slackware:~# df -h /mnt/data_array/
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/lvm-data_array
 2.0G  1.3G  649M  66% /mnt/data_array</pre>
<p>Olha que lindo, ele passou os dados de forma continua entre os dois HDs <img src='http://www.geekvault.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h2>Mais informações</h2>
<p>Além de obviamente a <a href="http://www.tldp.org/HOWTO/LVM-HOWTO/index.html" target="_blank">documentação oficial</a>, um bom site que encontrei (agora que estou testando mirroring) é <a href="http://thewatertower.org.uk/pages/linux-lvm.html" target="_blank">esse</a>, vale a pena criar uma máquina virtual para brincar com isso <img src='http://www.geekvault.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.geekvault.org/2009/10/lvm-no-linux-o-que-e-e-como-utilizar/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Clonezilla e migrando um SO</title>
		<link>http://www.geekvault.org/2009/10/clonezilla-e-migrando-um-so/</link>
		<comments>http://www.geekvault.org/2009/10/clonezilla-e-migrando-um-so/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 10:18:11 +0000</pubDate>
		<dc:creator>Zarnick</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Stuffs]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Migração]]></category>

		<guid isPermaLink="false">http://www.geekvault.org/?p=456</guid>
		<description><![CDATA[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: Fazer backup do sistema Instalar o novo sistema Passar o backup para o novo sistema No more. Descobri Clonezilla! Apesar de ser &#8220;feio&#8221;, não deixa nada a dever contra [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.geekvault.org%2F2009%2F10%2Fclonezilla-e-migrando-um-so%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.geekvault.org%2F2009%2F10%2Fclonezilla-e-migrando-um-so%2F&amp;source=zarnick&amp;style=compact&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>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:</p>
<ol>
<li>Fazer backup do sistema</li>
<li>Instalar o novo sistema</li>
<li>Passar o backup para o novo sistema</li>
</ol>
<p>No more. Descobri <a href="http://clonezilla.org/" target="_blank">Clonezilla</a>! Apesar de ser &#8220;feio&#8221;, 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.<br />
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:</p>
<ol>
<li>Logar normalmente no sistema antigo</li>
<li>Editar o /etc/lilo.conf conforme você quer que ele esteja no novo hd</li>
<li>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)</li>
<li>Voltar a configuração antiga do LILO</li>
</ol>
<p>Pronto, pode bootar que deve funcionar agora <img src='http://www.geekvault.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . 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 <img src='http://www.geekvault.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> )</p>
<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).</p>
<p>Fica a dica, vale a pena, o <a href="http://clonezilla.org/" target="_blank">Clonezilla </a>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.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geekvault.org/2009/10/clonezilla-e-migrando-um-so/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FatELF e binários universais</title>
		<link>http://www.geekvault.org/2009/10/fatelf-e-binarios-universais/</link>
		<comments>http://www.geekvault.org/2009/10/fatelf-e-binarios-universais/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 09:50:14 +0000</pubDate>
		<dc:creator>Zarnick</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Binários universais]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[Novidades]]></category>

		<guid isPermaLink="false">http://www.geekvault.org/?p=450</guid>
		<description><![CDATA[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ó). É [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.geekvault.org%2F2009%2F10%2Ffatelf-e-binarios-universais%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.geekvault.org%2F2009%2F10%2Ffatelf-e-binarios-universais%2F&amp;source=zarnick&amp;style=compact&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>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.<br />
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.<br />
Fonte: <a href="http://www.phoronix.com/scan.php?page=news_item&amp;px=NzYyNQ" target="_blank">Phoronix</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geekvault.org/2009/10/fatelf-e-binarios-universais/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nova versão do Ogre</title>
		<link>http://www.geekvault.org/2009/07/nova-versao-do-ogre/</link>
		<comments>http://www.geekvault.org/2009/07/nova-versao-do-ogre/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 11:10:36 +0000</pubDate>
		<dc:creator>Zarnick</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[GPL]]></category>
		<category><![CDATA[Novidades]]></category>
		<category><![CDATA[Ogre]]></category>
		<category><![CDATA[updates]]></category>

		<guid isPermaLink="false">http://www.geekvault.org/?p=407</guid>
		<description><![CDATA[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.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.geekvault.org%2F2009%2F07%2Fnova-versao-do-ogre%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.geekvault.org%2F2009%2F07%2Fnova-versao-do-ogre%2F&amp;source=zarnick&amp;style=compact&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>E foi lançada a versão <a href="http://www.ogre3d.org/2009/07/26/ogre-v163-shoggoth-released" target="_blank">1.6.3</a> do <a href="http://www.ogre3d.org" target="_blank">Ogre</a>, arrumando bugs e melhorando performance. <img src='http://www.geekvault.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>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.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geekvault.org/2009/07/nova-versao-do-ogre/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft fazendo o que ela faz de melhor&#8230;</title>
		<link>http://www.geekvault.org/2009/07/microsoft-fazendo-o-que-ela-faz-de-melhor/</link>
		<comments>http://www.geekvault.org/2009/07/microsoft-fazendo-o-que-ela-faz-de-melhor/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 01:32:58 +0000</pubDate>
		<dc:creator>Zarnick</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[GPL]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Moodle]]></category>
		<category><![CDATA[Novidades]]></category>

		<guid isPermaLink="false">http://www.geekvault.org/?p=393</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.geekvault.org%2F2009%2F07%2Fmicrosoft-fazendo-o-que-ela-faz-de-melhor%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.geekvault.org%2F2009%2F07%2Fmicrosoft-fazendo-o-que-ela-faz-de-melhor%2F&amp;source=zarnick&amp;style=compact&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>O inferno continua quente. A um tempo atrás a Microsoft lançou dois códigos GPL, um para o<a href="http://www.dissociatedpress.net/2009/07/20/microsoft-becomes-a-linux-kernel-contributor/" target="_self"> Kernel do Linux</a> (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, <a href="http://www.osnews.com/story/21882/Microsoft_s_Linux_Kernel_Code_Drop_Result_of_GPL_Violation" target="_blank">porém</a> 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 &#8220;presente&#8221; para a comunidade OpenSource, para mostrar que eles estão mudando, que respeitam o movimento OpenSource e Linux, enfim, tudo balela.<br />
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?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geekvault.org/2009/07/microsoft-fazendo-o-que-ela-faz-de-melhor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
