<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Balau</title>
	
	<link>http://balau82.wordpress.com</link>
	<description>Freedom Embedded</description>
	<lastBuildDate>Thu, 24 May 2012 06:33:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain="balau82.wordpress.com" port="80" path="/?rsscloud=notify" registerProcedure="" protocol="http-post" />
<image><link>http://creativecommons.org/licenses/by-sa/3.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://balau82.wordpress.com/osd.xml" title="Balau" />
	
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Balau" /><feedburner:info uri="balau" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://balau82.wordpress.com/?pushpress=hub" /><creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license><item>
		<title>Google Drive is here!</title>
		<link>http://feedproxy.google.com/~r/Balau/~3/r2PoMVh1oJU/</link>
		<comments>http://balau82.wordpress.com/2012/04/25/google-drive-is-here/#comments</comments>
		<pubDate>Wed, 25 Apr 2012 14:26:23 +0000</pubDate>
		<dc:creator>Balau</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[dropbox]]></category>
		<category><![CDATA[file sync]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google drive]]></category>
		<category><![CDATA[iFolder]]></category>
		<category><![CDATA[remote storage]]></category>
		<category><![CDATA[sparkleshare]]></category>
		<category><![CDATA[spideroak]]></category>
		<category><![CDATA[ubuntu one]]></category>
		<category><![CDATA[wuala]]></category>

		<guid isPermaLink="false">http://balau82.wordpress.com/?p=1070</guid>
		<description><![CDATA[Your Google Drive is not ready yet Well, almost here&#8230; Here is a quick comparison on some of the remote storage and file sync solutions that I consider important: Online Service Win Mac Linux Android iPhone Web Client-side Encryption Initial Space Client Source Server Source Google Drive Yes Yes No Yes Soon Yes No 5GB [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=balau82.wordpress.com&#038;blog=6718912&#038;post=1070&#038;subd=balau82&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<blockquote><p>Your Google Drive is not ready yet</p></blockquote>
<p>Well, almost here&#8230;</p>
<span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='594' height='365' src='http://www.youtube.com/embed/wKJ9KzGQq0w?version=3&amp;rel=1&amp;fs=1&amp;showsearch=0&amp;showinfo=1&amp;iv_load_policy=1&amp;wmode=transparent' frameborder='0'></iframe></span>
<p>Here is a quick comparison on some of the remote storage and file sync solutions that I consider important:</p>
<table width="589" cellspacing="0" cellpadding="4">
<col width="88" />
<col width="30" />
<col width="27" />
<col width="35" />
<col width="46" />
<col width="43" />
<col width="37" />
<col width="63" />
<col width="42" />
<col width="43" />
<col width="45" />
<tbody>
<tr>
<td style="border-top:1px solid #000000;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:.1cm 0 .1cm .1cm;" width="88">
<p class="western" style="font-weight:normal;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Online</span></span></p>
<p class="western" style="font-weight:normal;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Service</span></span></p>
</td>
<td style="border-top:1px solid #000000;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:.1cm 0 .1cm .1cm;" width="30">
<p class="western" style="font-weight:normal;" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Win</span></span></p>
</td>
<td style="border-top:1px solid #000000;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:.1cm 0 .1cm .1cm;" width="27">
<p class="western" style="font-weight:normal;" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Mac</span></span></p>
</td>
<td style="border-top:1px solid #000000;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:.1cm 0 .1cm .1cm;" width="35">
<p class="western" style="font-weight:normal;" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Linux</span></span></p>
</td>
<td style="border-top:1px solid #000000;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:.1cm 0 .1cm .1cm;" width="46">
<p class="western" style="font-weight:normal;" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Android</span></span></p>
</td>
<td style="border-top:1px solid #000000;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:.1cm 0 .1cm .1cm;" width="43">
<p class="western" style="font-weight:normal;" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">iPhone</span></span></p>
</td>
<td style="border-top:1px solid #000000;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:.1cm 0 .1cm .1cm;" width="37">
<p class="western" style="font-weight:normal;" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Web</span></span></p>
</td>
<td style="border-top:1px solid #000000;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:.1cm 0 .1cm .1cm;" width="63">
<p class="western" style="font-weight:normal;" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Client-side</span></span></p>
<p class="western" style="font-weight:normal;" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Encryption</span></span></p>
</td>
<td style="border-top:1px solid #000000;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:.1cm 0 .1cm .1cm;" width="42">
<p class="western" style="font-weight:normal;" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Initial</span></span></p>
<p class="western" style="font-weight:normal;" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Space</span></span></p>
</td>
<td style="border-top:1px solid #000000;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:.1cm 0 .1cm .1cm;" width="43">
<p class="western" style="font-weight:normal;" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Client</span></span></p>
<p class="western" style="font-weight:normal;" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Source</span></span></p>
</td>
<td style="border:1px solid #000000;padding:.1cm;" width="45">
<p class="western" style="font-weight:normal;" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Server</span></span></p>
<p class="western" style="font-weight:normal;" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Source</span></span></p>
</td>
</tr>
<tr>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" valign="TOP" width="88">
<p class="western"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;"><a href="https://drive.google.com/">Google<br />
Drive</a></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="30">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="27">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="35">
<p class="western" align="CENTER"><span style="color:#ff0000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">No</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="46">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="43">
<p class="western" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Soon</span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="37">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="63">
<p class="western" align="CENTER"><span style="color:#ff0000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">No</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="42">
<p class="western" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">5GB</span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="43">
<p class="western" align="CENTER"><span style="color:#ff0000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">No</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;padding:0 .1cm .1cm;" width="45">
<p class="western" align="CENTER"><span style="color:#ff0000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">No</span></span></span></p>
</td>
</tr>
<tr>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" valign="TOP" width="88">
<p class="western"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;"><a href="https://www.dropbox.com/">Dropbox</a></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="30">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="27">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="35">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="46">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="43">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="37">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="63">
<p class="western" align="CENTER"><span style="color:#ff0000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">No</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="42">
<p class="western" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">2GB</span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="43">
<p class="western" align="CENTER"><span style="color:#ff0000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">No</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;padding:0 .1cm .1cm;" width="45">
<p class="western" align="CENTER"><span style="color:#ff0000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">No</span></span></span></p>
</td>
</tr>
<tr>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" valign="TOP" width="88">
<p class="western"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;"><a href="https://one.ubuntu.com/">Ubuntu<br />
One</a></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="30">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="27">
<p class="western" align="CENTER"><span style="color:#ff0000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">No</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="35">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="46">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="43">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="37">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="63">
<p class="western" align="CENTER"><span style="color:#ff0000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">No</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="42">
<p class="western" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">5GB</span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="43">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;padding:0 .1cm .1cm;" width="45">
<p class="western" align="CENTER"><span style="color:#ff0000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">No</span></span></span></p>
</td>
</tr>
<tr>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" valign="TOP" width="88">
<p class="western"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;"><a href="https://spideroak.com/">SpiderOak</a></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="30">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="27">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="35">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="46">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="43">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="37">
<p class="western" align="CENTER"><span style="color:#ff0000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">No</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="63">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="42">
<p class="western" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">2GB</span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="43">
<p class="western" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Some</span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;padding:0 .1cm .1cm;" width="45">
<p class="western" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Some</span></span></p>
</td>
</tr>
<tr>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" valign="TOP" width="88">
<p class="western"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;"><a href="http://www.wuala.com/en/">Wuala</a></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="30">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="27">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="35">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="46">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="43">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="37">
<p class="western" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Some</span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="63">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="42">
<p class="western" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">5GB</span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="43">
<p class="western" align="CENTER"><span style="color:#ff0000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">No</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;padding:0 .1cm .1cm;" width="45">
<p class="western" align="CENTER"><span style="color:#ff0000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">No</span></span></span></p>
</td>
</tr>
<tr>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" valign="TOP" width="88">
<p class="western"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;"><a href="https://www.sugarsync.com/">SugarSync</a></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="30">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="27">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="35">
<p class="western" align="CENTER"><span style="color:#ff0000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">No</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="46">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="43">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="37">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="63">
<p class="western" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Some</span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="42">
<p class="western" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">5GB</span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="43">
<p class="western" align="CENTER"><span style="color:#ff0000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">No</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;padding:0 .1cm .1cm;" width="45">
<p class="western" align="CENTER"><span style="color:#ff0000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">No</span></span></span></p>
</td>
</tr>
<tr>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" valign="TOP" width="88">
<p class="western"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Personal<br />
Service</span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="30">
<p class="western" align="CENTER">
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="27">
<p class="western" align="CENTER">
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="35">
<p class="western" align="CENTER">
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="46">
<p class="western" align="CENTER">
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="43">
<p class="western" align="CENTER">
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="37">
<p class="western" align="CENTER">
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="63">
<p class="western" align="CENTER">
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="42">
<p class="western" align="CENTER">
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="43">
<p class="western" align="CENTER">
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;padding:0 .1cm .1cm;" width="45">
<p class="western" align="CENTER">
</td>
</tr>
<tr>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" valign="TOP" width="88">
<p class="western"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;"><a href="http://www.ifolder.com/ifolder">Novell<br />
iFolder</a></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="30">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="27">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="35">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="46">
<p class="western" align="CENTER"><span style="color:#ff0000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">No</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="43">
<p class="western" align="CENTER"><span style="color:#ff0000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">No</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="37">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="63">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="42">
<p class="western" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">-</span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="43">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;padding:0 .1cm .1cm;" width="45">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
</tr>
<tr>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" valign="TOP" width="88">
<p class="western"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;"><a href="http://sparkleshare.org/">SparkleShare</a></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="30">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="27">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="35">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="46">
<p class="western" align="CENTER"><span style="color:#ff0000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">No</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="43">
<p class="western" align="CENTER"><span style="color:#ff0000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">No</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="37">
<p class="western" align="CENTER"><span style="color:#ff0000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">No</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="63">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="42">
<p class="western" align="CENTER"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">-</span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:none;padding:0 0 .1cm .1cm;" width="43">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
<td style="border-top:none;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;padding:0 .1cm .1cm;" width="45">
<p class="western" align="CENTER"><span style="color:#008000;"><span style="font-family:'Liberation Sans', sans-serif;"><span style="font-size:small;">Yes</span></span></span></p>
</td>
</tr>
</tbody>
</table>
<p>(For a list that is more complete, go to <a href="http://en.wikipedia.org/wiki/Comparison_of_online_backup_services">Wikipedia</a>)</p>
<p>I find <a href="http://en.wikipedia.org/wiki/Client-side_encryption">client-side encryption</a> crucial for personal privacy, and having the client source code released is just as important. The benefit is that you don&#8217;t have to trust that the company that owns the storage will not compromise and disclose your data, either maliciously or clumsily.</p>
<p>In the diverse world of personal devices, compatibility with different platforms is also very convenient, if not necessary.</p>
<p>In this moment there&#8217;s no solution that offers these things together, and Google Drive does not fill this space. The services that come closer to my requirements are SpiderOak and Wuala, but unfortunately they don&#8217;t have an Open Source client.</p>
<p>The two personal services that I added in the table are quite promising, but lack two things to be successful in my opinion: the first is mobile access and the second is some company who already gives you an online service to sync to.</p>
<br />Filed under: <a href='http://balau82.wordpress.com/category/software/internet/'>Internet</a> Tagged: <a href='http://balau82.wordpress.com/tag/backup/'>backup</a>, <a href='http://balau82.wordpress.com/tag/dropbox/'>dropbox</a>, <a href='http://balau82.wordpress.com/tag/file-sync/'>file sync</a>, <a href='http://balau82.wordpress.com/tag/google/'>google</a>, <a href='http://balau82.wordpress.com/tag/google-drive/'>google drive</a>, <a href='http://balau82.wordpress.com/tag/ifolder/'>iFolder</a>, <a href='http://balau82.wordpress.com/tag/remote-storage/'>remote storage</a>, <a href='http://balau82.wordpress.com/tag/sparkleshare/'>sparkleshare</a>, <a href='http://balau82.wordpress.com/tag/spideroak/'>spideroak</a>, <a href='http://balau82.wordpress.com/tag/ubuntu-one/'>ubuntu one</a>, <a href='http://balau82.wordpress.com/tag/wuala/'>wuala</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/balau82.wordpress.com/1070/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/balau82.wordpress.com/1070/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/balau82.wordpress.com/1070/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/balau82.wordpress.com/1070/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/balau82.wordpress.com/1070/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/balau82.wordpress.com/1070/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/balau82.wordpress.com/1070/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/balau82.wordpress.com/1070/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/balau82.wordpress.com/1070/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/balau82.wordpress.com/1070/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/balau82.wordpress.com/1070/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/balau82.wordpress.com/1070/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/balau82.wordpress.com/1070/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/balau82.wordpress.com/1070/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=balau82.wordpress.com&#038;blog=6718912&#038;post=1070&#038;subd=balau82&#038;ref=&#038;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/Balau/~4/r2PoMVh1oJU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://balau82.wordpress.com/2012/04/25/google-drive-is-here/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/641a1371a45c5e27a54691b9c697743a?s=96&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&amp;r=PG" medium="image">
			<media:title type="html">Balau</media:title>
		</media:content>
	<feedburner:origLink>http://balau82.wordpress.com/2012/04/25/google-drive-is-here/</feedburner:origLink></item>
		<item>
		<title>How programmers can easily choose strong passwords</title>
		<link>http://feedproxy.google.com/~r/Balau/~3/ldj6ZGhvCSM/</link>
		<comments>http://balau82.wordpress.com/2012/04/22/how-programmers-can-easily-choose-strong-passwords/#comments</comments>
		<pubDate>Sun, 22 Apr 2012 15:53:01 +0000</pubDate>
		<dc:creator>Balau</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[brute force]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[dictionary]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[entropy]]></category>
		<category><![CDATA[hacker]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[password strength]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[protection]]></category>
		<category><![CDATA[xkcd]]></category>

		<guid isPermaLink="false">http://balau82.wordpress.com/?p=1062</guid>
		<description><![CDATA[Choosing a password is always a trade-off between security and usability. Programmers can shift this compromise thanks to some qualities of their work. The idea is to use lines of code as passwords.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=balau82.wordpress.com&#038;blog=6718912&#038;post=1062&#038;subd=balau82&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Passwords are part of our lives, especially for us techies. When you think of the consequences of having your password compromised, you get a grasp on how important they are: the effects vary from discomfort and frustration to stolen money to stolen identity. Anything is scary enough to prompt us to be wary.</p>
<p>The possible attack scenarios that result in having our password compromised are very different, here are some examples:</p>
<ul>
<li>Phishing can trick you into giving away your credentials</li>
<li>Trojans, viruses and other exploits could compromise your machine and grab what you type</li>
<li>Man-in-the-middle attacks on the network could read your secrets sent on unencrypted (or poorly encrypted) channel</li>
<li>Website security could be physically compromised, and the private data stolen</li>
<li>Log-ins to websites could be discovered by brute force attacks</li>
<li>Encrypted content could be decrypted with offline brute force attacks</li>
</ul>
<p>In order to defend ourselves from some of these attacks (mainly the last ones), a strong password is required. But what is a strong password? Most guidelines tell us that:</p>
<ul>
<li>It should be long enough</li>
<li>It must not be a &#8220;dictionary&#8221; word</li>
<li>It shouldn&#8217;t contain &#8220;weak&#8221; patterns</li>
<li>It should be composed of different character sets (letters, numbers, special characters)</li>
</ul>
<p>The problem with these guidelines is that they clash with our brain&#8217;s ability to remember, because some of the things that makes a word stick in our brain are:</p>
<ul>
<li>Be short enough</li>
<li>Be meaningful (like an existing word)</li>
<li>Contain some sort of way to help remember it from other things (patterns)</li>
<li>Phonetic (alphabetic)</li>
</ul>
<p>For this reason, choosing a password is always a trade-off between security and usability. Sometimes websites enforce these policies, sometimes they give you a hard-to-remember password themselves. The famous webcomic XKCD tackled the problem in <a href="http://xkcd.com/936/">this strip</a>, suggesting a simple method for common people to choose strong pass phrases. But in my opinion things can be even easier for a particular subset of people.</p>
<p>I assume most of my readers are programmers. We have a very peculiar job, we type stuff on our keyboards that doesn&#8217;t have any sense for the common people, but for us it sure has. We type so much that the muscles of our hands memorized the motions, together with the position of some unusual characters such as the &#8220;[ ]&#8221; square brackets, and we can type without even looking. Sometimes, especially after we debug an ugly problem, we examined a particular snippet of code so much that we can write it immediately off the top of our heads.</p>
<p>I believe programmers develop throughout the years a familiar way to remember and write strong passwords which are harder for computers to guess than the norm. If you&#8217;re a programmer, this is what you can do:</p>
<ol>
<li>Pick a language that you are experienced with,</li>
<li>write a short piece of code,</li>
<li>insert letters, numbers, and special characters,</li>
<li>insert some kind of information related to the website (if it&#8217;s an online password) or the date (if the password expires regularly)</li>
</ol>
<p>For example, I created one of the simplest examples I could think of:</p>
<pre> W = printf("93\n");</pre>
<p>I am experienced in C programming, and inserted a &#8220;<code>W</code>&#8221; in the code to hint to WordPress site. How easy is it to remember? Easy (I print 93 and put the number of characters in &#8220;<code>W</code>&#8220;). How easy is it to write? Easy (if I don&#8217;t forget the semicolon). How hard is it to guess? Let&#8217;s see&#8230; I used the following online calculators to get their &#8220;opinion&#8221; on the strength of this password:</p>
<ul>
<li><a href="http://rumkin.com/tools/password/passchk.php"><em>Password</em> Strength Test &#8211; <em>Rumkin</em>.com &#8211; <em>Rumkin</em>.com</a></li>
<li><a href="https://www.grc.com/haystack.htm"><em>GRC&#8217;s</em> | Password <em>Haystacks</em>: How Well Hidden is Your Needle?</a></li>
<li><a href="http://daleswanson.org/things/password.htm"><em>Password</em> Strength Estimator</a></li>
</ul>
<p>The results are that my 19-character password is strong, the character set is about 93 to 95 characters (between letters, numbers and specials, depending on how you divide them),  and the entropy is between 84 and 125 bits. To make some comparisons using the XKCD examples, the password &#8220;<code>Tr0ub4dor&amp;3</code>&#8221; is 11 characters, a charset of 72 to 95, and an entropy of 51 to 72 bits. The password &#8220;<code>correct horse battery staple</code>&#8221; is 28 characters long, with a charset of 27 to 59 characters, and an entropy of 104 to 165 bits.</p>
<p>Using a method similar to XKCD I say that, knowing that the password is a piece of code, we have:</p>
<ul>
<li>Something like 20 possible common programming languages</li>
<li>A hundred possible patterns (very conservative)</li>
<li>Something like 5 different coding conventions (such as where to put the space)</li>
<li>One function name/keyword, chosen from hundreds of possibilities</li>
<li>Two short common variable names/strings, composed of up to four characters</li>
<li>Each has a charset of size 64 (lowercase, uppercase, numbers, underscore and dot)</li>
</ul>
<p>It results in this number of possibilities:</p>
<pre>20*100*5*100*((64^4)^2) = 2.8*10^20</pre>
<p>This number translates roughly into 68 bits of entropy.</p>
<p>I can think of some of the &#8220;cons&#8221; of choosing a line of code as a password:</p>
<ul>
<li>Many programmers are used to look at the screen while writing, to have a feedback that the code they&#8217;re writing is correct. With passwords you can&#8217;t see what you are typing.</li>
<li>If you use an existing line of an open source software you are working on, then you could theoretically be more vulnerable to a dictionary attack tailored for you.</li>
<li>Code written in a language obeys to common patterns derived from the syntax.</li>
<li>If you are on a different PC, the language of the keyboard may impede the correct typing of the special characters.</li>
</ul>
<p>In the end, I am not saying that if you are a programmer you have to use a line of code as a password because it&#8217;s the best way. I&#8217;m suggesting that this choice has many benefits for the common programmers, because it exploit some qualities of the programming work to shift the compromise between security and usability. But in the end it boils down to finding the place in this compromise where you personally feel comfortable.</p>
<br />Filed under: <a href='http://balau82.wordpress.com/category/software/security-software/'>Security</a> Tagged: <a href='http://balau82.wordpress.com/tag/brute-force/'>brute force</a>, <a href='http://balau82.wordpress.com/tag/code/'>code</a>, <a href='http://balau82.wordpress.com/tag/dictionary/'>dictionary</a>, <a href='http://balau82.wordpress.com/tag/encryption/'>encryption</a>, <a href='http://balau82.wordpress.com/tag/entropy/'>entropy</a>, <a href='http://balau82.wordpress.com/tag/hacker/'>hacker</a>, <a href='http://balau82.wordpress.com/tag/password/'>password</a>, <a href='http://balau82.wordpress.com/tag/password-strength/'>password strength</a>, <a href='http://balau82.wordpress.com/tag/programming/'>programming</a>, <a href='http://balau82.wordpress.com/tag/protection/'>protection</a>, <a href='http://balau82.wordpress.com/tag/xkcd/'>xkcd</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/balau82.wordpress.com/1062/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/balau82.wordpress.com/1062/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/balau82.wordpress.com/1062/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/balau82.wordpress.com/1062/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/balau82.wordpress.com/1062/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/balau82.wordpress.com/1062/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/balau82.wordpress.com/1062/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/balau82.wordpress.com/1062/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/balau82.wordpress.com/1062/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/balau82.wordpress.com/1062/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/balau82.wordpress.com/1062/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/balau82.wordpress.com/1062/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/balau82.wordpress.com/1062/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/balau82.wordpress.com/1062/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=balau82.wordpress.com&#038;blog=6718912&#038;post=1062&#038;subd=balau82&#038;ref=&#038;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/Balau/~4/ldj6ZGhvCSM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://balau82.wordpress.com/2012/04/22/how-programmers-can-easily-choose-strong-passwords/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/641a1371a45c5e27a54691b9c697743a?s=96&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&amp;r=PG" medium="image">
			<media:title type="html">Balau</media:title>
		</media:content>
	<feedburner:origLink>http://balau82.wordpress.com/2012/04/22/how-programmers-can-easily-choose-strong-passwords/</feedburner:origLink></item>
		<item>
		<title>ARM926 interrupts in QEMU</title>
		<link>http://feedproxy.google.com/~r/Balau/~3/QyNGNNBGIas/</link>
		<comments>http://balau82.wordpress.com/2012/04/15/arm926-interrupts-in-qemu/#comments</comments>
		<pubDate>Sun, 15 Apr 2012 19:48:49 +0000</pubDate>
		<dc:creator>Balau</dc:creator>
				<category><![CDATA[Embedded]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[arm926]]></category>
		<category><![CDATA[assembler]]></category>
		<category><![CDATA[assembly]]></category>
		<category><![CDATA[bare metal]]></category>
		<category><![CDATA[cross compiling]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[interrupt]]></category>
		<category><![CDATA[interrupt controller]]></category>
		<category><![CDATA[irq]]></category>
		<category><![CDATA[linker script]]></category>
		<category><![CDATA[qemu]]></category>
		<category><![CDATA[uart]]></category>
		<category><![CDATA[vector table]]></category>
		<category><![CDATA[versatile]]></category>

		<guid isPermaLink="false">http://balau82.wordpress.com/?p=1050</guid>
		<description><![CDATA[In this post I prepared what I think is the simplest example on how to manage interrupts for the widespread ARM926 core. From this example one can expand the complexity of the interrupt management at will. I&#8217;m going to test the functionality with QEMU, emulating the Versatile Platform Baseboard. I based this example on my [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=balau82.wordpress.com&#038;blog=6718912&#038;post=1050&#038;subd=balau82&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In this post I prepared what I think is the simplest example on how to manage interrupts for the widespread ARM926 core. From this example one can expand the complexity of the interrupt management at will. I&#8217;m going to test the functionality with QEMU, emulating the Versatile Platform Baseboard. I based this example on my old post <a title="Permanent link to Hello world for bare metal ARM using QEMU" href="http://balau82.wordpress.com/2010/02/28/hello-world-for-bare-metal-arm-using-qemu/" rel="bookmark">Hello world for bare metal ARM using QEMU</a>.</p>
<p>The ARM926 is able to detect and manage a certain number of exceptions, for example:</p>
<ul>
<li>&#8220;undefined&#8221; exception: when the core tries to execute an instruction that is not mapped on the instruction set</li>
<li>data abort: when the system bus reports an error in trying to access one of the peripherals</li>
<li>IRQ: the most common exception is the arrival of an interrupt request (IRQ) from a peripheral.</li>
</ul>
<p>When an exception occurs, the ARM926 core changes its operating &#8220;mode&#8221; and jumps to the beginning of the memory, with an offset from address 0 that depends on the exception. For example, when an &#8220;undefined&#8221; exception happens, the core jumps to address 4. By placing instruction at those addresses, it is possible to manage these exceptions with custom functions. The common way is to place a &#8220;jump&#8221; at each of those addresses, creating an &#8220;exception vector table&#8221; (where the vector is the jump instruction).</p>
<p>The following is an assembly file called &#8220;<code>vectors.S</code>&#8221; that shows an example of vector table and reset handler, which contains the minimal initialization that needs to be done before jumping to C code.</p>
<p><pre class="brush: plain;"> .text
 .code 32

 .global vectors_start
 .global vectors_end

vectors_start:
 LDR PC, reset_handler_addr
 LDR PC, undef_handler_addr
 LDR PC, swi_handler_addr
 LDR PC, prefetch_abort_handler_addr
 LDR PC, data_abort_handler_addr
 B .
 LDR PC, irq_handler_addr
 LDR PC, fiq_handler_addr

reset_handler_addr: .word reset_handler
undef_handler_addr: .word undef_handler
swi_handler_addr: .word swi_handler
prefetch_abort_handler_addr: .word prefetch_abort_handler
data_abort_handler_addr: .word data_abort_handler
irq_handler_addr: .word irq_handler
fiq_handler_addr: .word fiq_handler

vectors_end:

reset_handler:
 /* set Supervisor stack */
 LDR sp, =stack_top
 /* copy vector table to address 0 */
 BL copy_vectors
 /* get Program Status Register */
 MRS r0, cpsr
 /* go in IRQ mode */
 BIC r1, r0, #0x1F
 ORR r1, r1, #0x12
 MSR cpsr, r1
 /* set IRQ stack */
 LDR sp, =irq_stack_top
 /* Enable IRQs */
 BIC r0, r0, #0x80
 /* go back in Supervisor mode */
 MSR cpsr, r0
 /* jump to main */
 BL main
 B .

.end</pre></p>
<p>Some details about the assembly code:</p>
<p>The vector table must be placed at address 0, but when the program is executed, it is possible that it is not loaded at the beginning of the memory. For example QEMU loads the binary code at address <code>0x10000</code>. For this reason the vector table needs to be copied before being useful. This is done by using global symbols to mark the beginning (<code>vectors_start</code>) and end (<code>vectors_end</code>) of the vectors area, and then using a function (<code>copy_vectors</code>, implemented below in the C code) to copy it to the correct location.</p>
<p>When the core receives an exception it changes operating mode, and this means (among other things) that it uses a different stack pointer. For this reason before enabling interrupts it is necessary to configure the stack for the modes that we intend to use.</p>
<p>The operating mode can be changed manually by accessing the Program Status Register (<code>cpsr</code>), which must also be used to enable IRQs. More information on the <a href="http://infocenter.arm.com/help/topic/com.arm.doc.ddi0222b/DDI0222.pdf">ARM9EJ-S Technical Reference Manual</a>.</p>
<p>I want to use the UART as a simple peripheral that uses IRQ to function. The Versatile manual indicates that an Interrupt Controller is used to manage the various IRQs. The following manuals are needed to understand what to do:</p>
<ul>
<li><a href="http://infocenter.arm.com/help/topic/com.arm.doc.dui0224i/DUI0224I_realview_platform_baseboard_for_arm926ej_s_ug.pdf">RealView <em>Platform Baseboard for ARM926EJ</em>-<em>S User Guide</em></a></li>
<li><a href="http://infocenter.arm.com/help/topic/com.arm.doc.ddi0183f/DDI0183.pdf">PrimeCell UART (PL011) Technical Reference Manual</a></li>
<li><a href="http://www.cgl.uwaterloo.ca/%7Ewmcowan/teaching/cs452/pdf/DDI0181.pdf">PrimeCell Vectored Interrupt Controller (PL190) Technical Reference Manual</a></li>
</ul>
<p>In order to enable IRQ for UART, the interrupt must be enabled in three places:</p>
<ul>
<li>The IRQs must be enabled in the ARM cpsr</li>
<li>The UART IRQ must be enabled in the Interrupt Controller</li>
<li>The interrupt generation must be enabled in UART registers for the chosen events</li>
</ul>
<p>I will use the &#8220;RX&#8221; event to fire an interrupt that manages the arrival of a byte from the UART, and then send it back as a sort of &#8220;echo&#8221;. The following &#8220;<code>test.c</code>&#8221; file shows how to do it:</p>
<p><pre class="brush: cpp;">#include &lt;stdint.h&gt;

#define UART0_BASE_ADDR 0x101f1000
#define UART0_DR (*((volatile uint32_t *)(UART0_BASE_ADDR + 0x000)))
#define UART0_IMSC (*((volatile uint32_t *)(UART0_BASE_ADDR + 0x038)))

#define VIC_BASE_ADDR 0x10140000
#define VIC_INTENABLE (*((volatile uint32_t *)(VIC_BASE_ADDR + 0x010)))

void __attribute__((interrupt)) irq_handler() {
 /* echo the received character + 1 */
 UART0_DR = UART0_DR + 1;
}

/* all other handlers are infinite loops */
void __attribute__((interrupt)) undef_handler(void) { for(;;); }
void __attribute__((interrupt)) swi_handler(void) { for(;;); }
void __attribute__((interrupt)) prefetch_abort_handler(void) { for(;;); }
void __attribute__((interrupt)) data_abort_handler(void) { for(;;); }
void __attribute__((interrupt)) fiq_handler(void) { for(;;); }

void copy_vectors(void) {
 extern uint32_t vectors_start;
 extern uint32_t vectors_end;
 uint32_t *vectors_src = &amp;vectors_start;
 uint32_t *vectors_dst = (uint32_t *)0;

while(vectors_src &lt; &amp;vectors_end)
 *vectors_dst++ = *vectors_src++;
}

void main(void) {
 /* enable UART0 IRQ */
 VIC_INTENABLE = 1&lt;&lt;12;
 /* enable RXIM interrupt */
 UART0_IMSC = 1&lt;&lt;4;
 for(;;);
}</pre></p>
<p>The main code enables the interrupt and then waits forever. When a character is received from the UART, the IRQ is fired and the <code>irq_handler</code> function is called, transmitting back the modified character.</p>
<p>In order to create the complete binary code, we need a linker script that is aware of the memory map of the system. In our case QEMU loads the code to address <code>0x10000</code>. The following is the linker script &#8220;<code>test.ld</code>&#8221; that is used to link the complete program:</p>
<p><pre class="brush: plain;">ENTRY(vectors_start)
SECTIONS
{
 . = 0x10000;
 .text : {
 vectors.o
 *(.text .rodata)
 }
 .data : { *(.data) }
 .bss : { *(.bss) }
 . = . + 0x1000; /* 4kB of stack memory */
 stack_top = .;
 . = . + 0x1000; /* 4kB of irq stack memory */
 irq_stack_top = .;
}</pre></p>
<p>To compile the program I used CodeSourcery bare metal toolchain, but the commands can be adapted to work with other GCC toolchains such as the <a href="http://wiki.debian.org/EmdebianToolchain">Emdebian</a> ones. The commands are the following:</p>
<p><pre class="brush: plain;">arm-none-eabi-gcc -mcpu=arm926ej-s -c -o test.o test.c
arm-none-eabi-gcc -mcpu=arm926ej-s -c -o vectors.o vectors.S
arm-none-eabi-gcc -T test.ld test.o vectors.o -o test
arm-none-eabi-objcopy -O binary test test.bin</pre></p>
<p>This creates a &#8220;<code>test.bin</code>&#8221; binary file that contains our code. To simulate the program, the command to launch QEMU is the following:</p>
<p><pre class="brush: plain;">qemu-system-arm -M versatilepb -serial stdio -kernel test.bin</pre></p>
<p>The &#8220;<code>-serial stdio</code>&#8221; option will redirect the terminal input/output to the emulated UART that we want to test. If you type some letters in the terminal where you launched the command, you will see them echoed back to you, modified by the interrupt handler.</p>
<p>Possible next steps from here are:</p>
<ul>
<li>Managing different sources of interrupt from the same peripheral</li>
<li>Managing IRQs from different peripherals</li>
<li>Dynamically remapping the exception handlers</li>
<li>Fully using the features of the Vectored Interrupt Controller</li>
<li>Enabling nested interrupts</li>
</ul>
<p>Here is a guide that contains much information about it: <a href="http://www.embedded.com/200000632">Building bare metal ARM with GNU [html]</a></p>
<br />Filed under: <a href='http://balau82.wordpress.com/category/software/embedded-software/'>Embedded</a> Tagged: <a href='http://balau82.wordpress.com/tag/arm/'>ARM</a>, <a href='http://balau82.wordpress.com/tag/arm926/'>arm926</a>, <a href='http://balau82.wordpress.com/tag/assembler/'>assembler</a>, <a href='http://balau82.wordpress.com/tag/assembly/'>assembly</a>, <a href='http://balau82.wordpress.com/tag/bare-metal/'>bare metal</a>, <a href='http://balau82.wordpress.com/tag/cross-compiling/'>cross compiling</a>, <a href='http://balau82.wordpress.com/tag/gcc/'>gcc</a>, <a href='http://balau82.wordpress.com/tag/interrupt/'>interrupt</a>, <a href='http://balau82.wordpress.com/tag/interrupt-controller/'>interrupt controller</a>, <a href='http://balau82.wordpress.com/tag/irq/'>irq</a>, <a href='http://balau82.wordpress.com/tag/linker-script/'>linker script</a>, <a href='http://balau82.wordpress.com/tag/qemu/'>qemu</a>, <a href='http://balau82.wordpress.com/tag/uart/'>uart</a>, <a href='http://balau82.wordpress.com/tag/vector-table/'>vector table</a>, <a href='http://balau82.wordpress.com/tag/versatile/'>versatile</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/balau82.wordpress.com/1050/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/balau82.wordpress.com/1050/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/balau82.wordpress.com/1050/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/balau82.wordpress.com/1050/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/balau82.wordpress.com/1050/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/balau82.wordpress.com/1050/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/balau82.wordpress.com/1050/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/balau82.wordpress.com/1050/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/balau82.wordpress.com/1050/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/balau82.wordpress.com/1050/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/balau82.wordpress.com/1050/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/balau82.wordpress.com/1050/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/balau82.wordpress.com/1050/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/balau82.wordpress.com/1050/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=balau82.wordpress.com&#038;blog=6718912&#038;post=1050&#038;subd=balau82&#038;ref=&#038;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/Balau/~4/QyNGNNBGIas" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://balau82.wordpress.com/2012/04/15/arm926-interrupts-in-qemu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/641a1371a45c5e27a54691b9c697743a?s=96&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&amp;r=PG" medium="image">
			<media:title type="html">Balau</media:title>
		</media:content>
	<feedburner:origLink>http://balau82.wordpress.com/2012/04/15/arm926-interrupts-in-qemu/</feedburner:origLink></item>
		<item>
		<title>ELCE2012 videos and slides</title>
		<link>http://feedproxy.google.com/~r/Balau/~3/qBBVhnfGwBw/</link>
		<comments>http://balau82.wordpress.com/2012/04/07/elce2012-videos-and-slides/#comments</comments>
		<pubDate>Sat, 07 Apr 2012 12:09:37 +0000</pubDate>
		<dc:creator>Balau</dc:creator>
				<category><![CDATA[Embedded]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[device tree]]></category>
		<category><![CDATA[elce]]></category>
		<category><![CDATA[elce2012]]></category>
		<category><![CDATA[free electrons]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://balau82.wordpress.com/?p=1047</guid>
		<description><![CDATA[Free Electrons posted the videos of the last Embedded Linux Conference 2012. Unfortunately most of the videos have really bad audio quality, so maybe this time reading the slides will be more effective. The most interesting topics for me are the following: The Kernel report Binary Blobs Attack!!! Status of embedded Linux Experiences With Device [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=balau82.wordpress.com&#038;blog=6718912&#038;post=1047&#038;subd=balau82&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Free Electrons <a href="http://free-electrons.com/blog/elc-2012-videos/">posted</a> the videos of the last <a href="https://events.linuxfoundation.org/events/embedded-linux-conference">Embedded Linux Conference 2012</a>.</p>
<p>Unfortunately most of the videos have really bad audio quality, so maybe this time reading the slides will be more effective.</p>
<p>The most interesting topics for me are the following:</p>
<ul>
<li><a href="https://events.linuxfoundation.org/images/stories/pdf/lf_elc12_corbet.pdf">The Kernel report</a></li>
<li><a href="https://events.linuxfoundation.org/images/stories/pdf/lf_elc12_pfeffer.pdf">Binary Blobs Attack!!!</a></li>
<li><a href="https://events.linuxfoundation.org/images/stories/pdf/lf_elc12_bird2.pdf">Status of embedded Linux</a></li>
<li><a href="https://events.linuxfoundation.org/images/stories/pdf/lf_elc12_abraham.pdf">Experiences With Device Tree Support Development For ARM-Based SOC’s</a></li>
<li><a href="https://events.linuxfoundation.org/images/stories/pdf/lf_elc12_anderson_iot.pdf">The Internet of things</a></li>
<li><a href="https://events.linuxfoundation.org/images/stories/pdf/lf_elc12_anders.pdf">Board Bringup: LCD and Display Interfaces</a></li>
<li><a href="https://events.linuxfoundation.org/images/stories/pdf/lf_elc12_yau.pdf">Userland Tools and Techniques For Linux Board Bring-Up and Systems Integration</a></li>
<li><a href="https://events.linuxfoundation.org/images/stories/pdf/lf_elc12_mielczarczyk.pdf">Getting the First Open Source GSM Stack in Linux</a></li>
</ul>
<br />Filed under: <a href='http://balau82.wordpress.com/category/software/embedded-software/'>Embedded</a> Tagged: <a href='http://balau82.wordpress.com/tag/arm/'>ARM</a>, <a href='http://balau82.wordpress.com/tag/device-tree/'>device tree</a>, <a href='http://balau82.wordpress.com/tag/elce/'>elce</a>, <a href='http://balau82.wordpress.com/tag/elce2012/'>elce2012</a>, <a href='http://balau82.wordpress.com/tag/free-electrons/'>free electrons</a>, <a href='http://balau82.wordpress.com/tag/kernel/'>kernel</a>, <a href='http://balau82.wordpress.com/tag/linux/'>linux</a>, <a href='http://balau82.wordpress.com/tag/open-source/'>open source</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/balau82.wordpress.com/1047/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/balau82.wordpress.com/1047/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/balau82.wordpress.com/1047/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/balau82.wordpress.com/1047/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/balau82.wordpress.com/1047/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/balau82.wordpress.com/1047/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/balau82.wordpress.com/1047/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/balau82.wordpress.com/1047/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/balau82.wordpress.com/1047/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/balau82.wordpress.com/1047/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/balau82.wordpress.com/1047/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/balau82.wordpress.com/1047/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/balau82.wordpress.com/1047/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/balau82.wordpress.com/1047/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=balau82.wordpress.com&#038;blog=6718912&#038;post=1047&#038;subd=balau82&#038;ref=&#038;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/Balau/~4/qBBVhnfGwBw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://balau82.wordpress.com/2012/04/07/elce2012-videos-and-slides/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/641a1371a45c5e27a54691b9c697743a?s=96&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&amp;r=PG" medium="image">
			<media:title type="html">Balau</media:title>
		</media:content>
	<feedburner:origLink>http://balau82.wordpress.com/2012/04/07/elce2012-videos-and-slides/</feedburner:origLink></item>
		<item>
		<title>Compile Linux kernel 3.2 for ARM and emulate with QEMU</title>
		<link>http://feedproxy.google.com/~r/Balau/~3/sSokUk-A9Vg/</link>
		<comments>http://balau82.wordpress.com/2012/03/31/compile-linux-kernel-3-2-for-arm-and-emulate-with-qemu/#comments</comments>
		<pubDate>Sat, 31 Mar 2012 10:06:32 +0000</pubDate>
		<dc:creator>Balau</dc:creator>
				<category><![CDATA[Embedded]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[codesourcery]]></category>
		<category><![CDATA[cortex-A9]]></category>
		<category><![CDATA[cross compiling]]></category>
		<category><![CDATA[emdebian]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[gnu]]></category>
		<category><![CDATA[initramfs]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linaro]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[qemu]]></category>
		<category><![CDATA[ramdisk]]></category>
		<category><![CDATA[versatile express]]></category>

		<guid isPermaLink="false">http://balau82.wordpress.com/?p=997</guid>
		<description><![CDATA[This is a tutorial to:
1. Get Linux kernel 3.2 source code
3. Configure and compile for Versatile Express ARM Cortex-A9 platform
4. Prepare and create a ramdisk using initramfs schema
5. Emulate kernel boot and ramdisk execution using QEMU<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=balau82.wordpress.com&#038;blog=6718912&#038;post=997&#038;subd=balau82&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em>This tutorial is an updated version of <a title="Compiling Linux kernel for QEMU ARM emulator" href="http://balau82.wordpress.com/2010/03/22/compiling-linux-kernel-for-qemu-arm-emulator/">this old post</a>, with newer software and less obsolete emulated hardware.</em></p>
<p>Every year the market produces <a href="http://en.wikipedia.org/wiki/List_of_applications_of_ARM_cores">tons of new products</a> that run on ARM cores, and are able to run operating systems such as Linux. While most of these products are quite expensive (think about smartphones, development kits or evaluation boards) it&#8217;s possible to explore the world of Linux on ARM freely, thanks to software emulators like QEMU.</p>
<p>I am going to show how to compile the kernel and emulate the boot. To simplify things, the boot will not include a complete filesystem but uses a minimal ramdisk to show the kernel executing just one program.</p>
<p>I chose to emulate the <a href="http://www.arm.com/products/tools/development-boards/versatile-express/index.php">Versatile Express</a> product because it&#8217;s well supported both by the mainline Linux kernel and by mainline QEMU. Moreover, this hardware platform runs on the Cortex-A9 core, which is an ARM CPU that is included in many smartphones today.</p>
<h1>Requirements</h1>
<p>In order to follow the same steps that I did, you need some tools.</p>
<p>First of all, anything I do is performed on a Linux machine, specifically a Debian testing distribution, in a <code><a href="http://www.gnu.org/software/bash/">bash</a></code> shell.</p>
<p>To manage the kernel compilation, <a href="http://www.gnu.org/software/make/">GNU <code>make</code></a> should be installed (it is usually in build-essential package)</p>
<p>To compile the kernel for ARM architecture, a cross-compiler must be installed. The difference between a traditional compiler and a cross-compiler is that the traditional compiler runs on an architecture (for example x86_64) and produces binaries for the same architecture. A cross-compiler produces binaries for a different architecture (in our case ARMv7). Depending on your distribution and what works for your setup, you can choose from different toolchains:</p>
<ul>
<li><a href="http://www.emdebian.org/crosstools.html">Emdebian</a>; <a href="http://wiki.debian.org/EmdebianToolchain">here some instructions</a> on how to install,</li>
<li><a href="https://launchpad.net/gcc-linaro">Linaro</a>; if you run a newish version of Ubuntu you can install it directly with &#8220;<code>sudo apt-get install gcc-arm-linux-gnueabi</code>&#8220;,</li>
<li><a href="http://fedoraproject.org/wiki/Architectures/ARM/CrossToolchain">Fedora ARM cross-toolchain,</a></li>
<li><a href="http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/">Sourcery Codebench</a> (was CodeSourcery); available for free only under registration,</li>
<li><a href="http://elinux.org/Toolchains">other toolchain suggestions</a> by eLinux.</li>
</ul>
<p>Cross-compilers offer a set of programs, mainly <a href="http://gcc.gnu.org/">GCC</a> and <a href="http://www.gnu.org/software/binutils/">binutils</a>, that start with a prefix indicating the architecture, the operating system of the libraries and the binary interface of the compiled programs. In my case I use Emdebian toochain, which has the &#8220;<code>arm-linux-gnueabi-</code>&#8221; prefix.</p>
<p>Finally the emulator that I use is QEMU, in particular the program to emulate ARM hardware is &#8220;<code>qemu-system-arm</code>&#8220;. You must install the correct package depending on your distribution; sometimes distributions split the QEMU programs into different packages, for example Ubuntu packs it into the &#8220;<code>qemu-extras</code>&#8221; package.</p>
<h1>The short story</h1>
<p>Create a clean directory, then create a file called &#8220;<code>init.c</code>&#8220;, which contains the following simple C code:</p>
<p><pre class="brush: cpp;">#include &lt;stdio.h&gt;

void main() {
  printf(&quot;Hello World!\n&quot;);
  while(1);
}</pre></p>
<p>Then in the same directory execute the following commands in order:</p>
<p><pre class="brush: plain;">wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.2.tar.bz2
tar xjf linux-3.2.tar.bz2
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-
cd linux-3.2
make vexpress_defconfig
make all
cd ..
arm-linux-gnueabi-gcc -static init.c -o init
echo init|cpio -o --format=newc &gt; initramfs
qemu-system-arm -M vexpress-a9 -kernel linux-3.2/arch/arm/boot/zImage -initrd initramfs -serial stdio -append &quot;console=tty1&quot;</pre></p>
<p>The kernel compilation (the &#8220;<code>make all</code>&#8221; command) could take some minutes or hours depending on your host machine power.</p>
<p>The last command opens a QEMU window, that shows a black background and many boot messages, and towards the end the &#8220;Hello World!&#8221; string is displayed.</p>
<h1>The long story</h1>
<p>The steps are:</p>
<ol>
<li>Get Linux kernel source code</li>
<li>Prepare for compilation</li>
<li>Configure and compile</li>
<li>Prepare and create ramdisk</li>
<li>Emulate kernel boot and ramdisk execution</li>
</ol>
<h1>Get Linux kernel source code</h1>
<p>The official site for mainline Linux kernel is at <a href="http://www.kernel.org/">www.kernel.org</a>. The kernel version that I will use is the 3.2, be aware that if you want to use a different version you may have different results, even though most of the functionality used here is simple enough that it should not change between versions.</p>
<p>Download linux-3.2.tar.bz2 from the <a href="ftp://ftp.kernel.org/pub/linux/kernel/v3.x/">FTP site</a>, or simply run from the command line:</p>
<p><pre class="brush: plain;">wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.2.tar.bz2</pre></p>
<p>Then extract the kernel source. One way to do it is by running in the same directory:</p>
<p><pre class="brush: plain;">tar xjf linux-3.2.tar.bz2</pre></p>
<p>This will create a new subdirectory called linux-3.2 containing the full source of the Linux kernel.</p>
<h1>Prepare for compilation</h1>
<p>We are going to compile for ARM architecture by using a cross-toolchain, so we need to tell it somehow to the Linux build system. There are two environmental variable for this: <code>ARCH</code> and <code>CROSS_COMPILE</code>. The valid values for <code>ARCH</code> are basically the subdirectories of the &#8220;arch&#8221; directory. For <code>CROSS_COMPILE</code> we need to provide the prefix of the toolchain, which is the name of the compiler program minus the <code>gcc</code> at the end. For example if we are using <code>arm-linux-gnueabi-gcc</code>, we need to set <code>CROSS_COMPILE</code> to <code>arm-linux-gnueabi-</code>. On the terminal, run:</p>
<div><pre class="brush: plain;">export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-</pre></p>
<h1>Configure and compile</h1>
<p>We want to compile for the Versatile Express, and for this we can use the prepared configuration file in &#8220;<code>arch/arm/configs/vexpress_defconfig</code>&#8221; by running:</p>
<p><pre class="brush: plain;">make vexpress_defconfig</pre></p>
<p>This will configure the compilation for the desired hardware, by creating a file called &#8220;<code>.config</code>&#8221; that contains all the relevant options.</p>
<div> Then, to compile the kernel image, the command is simply:</div>
<div><pre class="brush: plain;">make all</pre></p>
<p>At the end of compilation it creates a file in &#8220;<code>linux-3.2/arch/arm/boot/zImage</code>&#8221; that is a compressed kernel image that auto-extracts in RAM. To speed-up compilation on multi-core hosts I suggest trying the parallel compilation, by launching</p>
</div>
<div><pre class="brush: plain;">make -j 2 all</pre></p>
<p>which, instead of compiling sequentially, will use a parallelism of 2 to create the objects and the final images.</p>
</div>
<h1>Prepare and create ramdisk</h1>
<p>In order to make the kernel do something, we can create a simple &#8220;Hello-World&#8221; user-space program. We can use a ramdisk as the first filesystem that Linux uses as root, using the &#8220;<code>initramfs</code>&#8221; scheme. More information about ramdisks can be found in the kernel source tree, in the file &#8220;<code>Documentation/early-userspace/README</code>&#8220;. The first program that Linux tries to execute is &#8220;<code>/init</code>&#8220;, so we can create an executable with that name. The source code is simply:</p>
<p><pre class="brush: cpp;">#include &lt;stdio.h&gt;

void main() {
  printf(&quot;Hello World!\n&quot;);
  while(1);
}</pre></p>
<p>And it will be compiled by our cross-toolchain of choice. In order to make this program work alone, we need to compile it as a static executable, which links in the program also the libraries that it needs. In this way we can have a filesystem with only one executable without worrying about shared libraries. The command for compilation is:</p>
<p><pre class="brush: plain;">arm-linux-gnueabi-gcc -static init.c -o init</pre></p>
<p>This will create an executable for ARM called <code>init</code>. The format of the file is something like the following:</p>
<p><pre class="brush: plain;">$ file init
init: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.18, BuildID[sha1]=0xf78b4955773f3c5dfecdb11c62dae094a99ba8f9, not stripped
</pre></p>
<p>We can now create our ramdisk with the <code>cpio</code> utility, by adding just the <code>init</code> file to a new archive:</p>
<div><pre class="brush: plain;">echo init|cpio -o --format=newc &gt; initramfs</pre></p>
<p>Be aware that the command must be run in the same directory as the <code>init</code> file. The <code>initramfs</code> file is our ramdisk. You can check its content with:</p>
<p><pre class="brush: plain;">$ cpio -t &lt; initramfs
init
1090 blocks</pre></p>
<h1>Emulate kernel boot and ramdisk execution</h1>
<p>We have all that is needed to execute the Linux boot with QEMU, which is able to emulate the Versatile Express platform using the &#8220;<code>-M vexpress A9</code>&#8221; option. The <code>zImage</code> kernel and <code>initramfs</code> image are loaded by QEMU in the emulated RAM with the &#8220;<code>-kernel</code>&#8221; and &#8220;<code>-initrd</code>&#8221; options, pointing to the corresponding files.</p>
<p>We also want to display the boot messages which are sent on the console. To show them in the graphic window, we need to pass the &#8220;<code>console=tty1</code>&#8221; kernel parameter.  The kernel parameters will be passed to Linux by QEMU using the &#8220;<code>-append</code>&#8221; option.</p>
<p>The complete command is then:</p>
<p><pre class="brush: plain;">qemu-system-arm -M vexpress-a9 -kernel linux-3.2/arch/arm/boot/zImage -initrd initramfs -append &quot;console=tty1&quot;</pre></p>
<p>The command will launch QEMU and open a black window, with a Tux logo to show the graphic capabilities. The boot messages will be displayed in the graphic window, and at the end of the messages our &#8220;<code>Hello World!</code>&#8221; string will be printed.</p>
<p>Otherwise, QEMU can redirect the serial port of the emulated system on the host terminal, using the &#8220;<code>-serial stdio</code>&#8221; option, and Linux can display its messages on the first serial port by passing &#8220;<code>console=ttyAMA0</code>&#8221; as a kernel parameter. The command becomes:</p>
<p><pre class="brush: plain;">qemu-system-arm -M vexpress-a9 -kernel linux-3.2/arch/arm/boot/zImage -initrd initramfs -serial stdio -append &quot;console=ttyAMA0&quot;</pre></p>
<p>The command will launch QEMU and open the black graphical window, and the boot messages will be displayed in the host terminal instead of the black window. Note that &#8220;<code>ttyAMA0</code>&#8221; is a serial port name that is dependent on the hardware that is emulated, and may not be the same for all systems.</p>
<p>In my tests I used QEMU version 1.0, and the result may vary if you are using a different version.</p>
</div>
</div>
<br />Filed under: <a href='http://balau82.wordpress.com/category/software/embedded-software/'>Embedded</a> Tagged: <a href='http://balau82.wordpress.com/tag/arm/'>ARM</a>, <a href='http://balau82.wordpress.com/tag/codesourcery/'>codesourcery</a>, <a href='http://balau82.wordpress.com/tag/cortex-a9/'>cortex-A9</a>, <a href='http://balau82.wordpress.com/tag/cross-compiling/'>cross compiling</a>, <a href='http://balau82.wordpress.com/tag/emdebian/'>emdebian</a>, <a href='http://balau82.wordpress.com/tag/gcc/'>gcc</a>, <a href='http://balau82.wordpress.com/tag/gnu/'>gnu</a>, <a href='http://balau82.wordpress.com/tag/initramfs/'>initramfs</a>, <a href='http://balau82.wordpress.com/tag/kernel/'>kernel</a>, <a href='http://balau82.wordpress.com/tag/linaro/'>linaro</a>, <a href='http://balau82.wordpress.com/tag/linux/'>linux</a>, <a href='http://balau82.wordpress.com/tag/open-source/'>open source</a>, <a href='http://balau82.wordpress.com/tag/qemu/'>qemu</a>, <a href='http://balau82.wordpress.com/tag/ramdisk/'>ramdisk</a>, <a href='http://balau82.wordpress.com/tag/versatile-express/'>versatile express</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/balau82.wordpress.com/997/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/balau82.wordpress.com/997/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/balau82.wordpress.com/997/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/balau82.wordpress.com/997/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/balau82.wordpress.com/997/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/balau82.wordpress.com/997/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/balau82.wordpress.com/997/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/balau82.wordpress.com/997/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/balau82.wordpress.com/997/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/balau82.wordpress.com/997/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/balau82.wordpress.com/997/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/balau82.wordpress.com/997/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/balau82.wordpress.com/997/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/balau82.wordpress.com/997/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=balau82.wordpress.com&#038;blog=6718912&#038;post=997&#038;subd=balau82&#038;ref=&#038;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/Balau/~4/sSokUk-A9Vg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://balau82.wordpress.com/2012/03/31/compile-linux-kernel-3-2-for-arm-and-emulate-with-qemu/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/641a1371a45c5e27a54691b9c697743a?s=96&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&amp;r=PG" medium="image">
			<media:title type="html">Balau</media:title>
		</media:content>
	<feedburner:origLink>http://balau82.wordpress.com/2012/03/31/compile-linux-kernel-3-2-for-arm-and-emulate-with-qemu/</feedburner:origLink></item>
		<item>
		<title>FOSDEM 2012 videos</title>
		<link>http://feedproxy.google.com/~r/Balau/~3/hxQvnN2Gchc/</link>
		<comments>http://balau82.wordpress.com/2012/03/18/fosdem-2012-videos/#comments</comments>
		<pubDate>Sun, 18 Mar 2012 20:45:20 +0000</pubDate>
		<dc:creator>Balau</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[bios]]></category>
		<category><![CDATA[coreboot]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[fosdem]]></category>
		<category><![CDATA[kvm]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[minemu]]></category>
		<category><![CDATA[multiarch]]></category>
		<category><![CDATA[openremote]]></category>
		<category><![CDATA[qemu]]></category>
		<category><![CDATA[unhosted]]></category>

		<guid isPermaLink="false">http://balau82.wordpress.com/?p=1026</guid>
		<description><![CDATA[The videos of the last Free and Open source Software Developers&#8217; European Meeting 2012 have been uploaded. The most interesting videos for me are the following: ARM BoF: state of the ARM architecture porting of various Linux distros (54:40 video) Debian secrets: useful information to get started on using or developing Debian (41:24 video) Multiarch: why [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=balau82.wordpress.com&#038;blog=6718912&#038;post=1026&#038;subd=balau82&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The videos of the last Free and Open source Software Developers&#8217; European Meeting 2012 <a href="http://fosdem.org/2012/news/first-video-recordings-uploaded">have been uploaded</a>.</p>
<p>The most interesting videos for me are the following:</p>
<ul>
<li>ARM BoF: state of the ARM architecture porting of various Linux distros (<a href="http://video.fosdem.org/2012/crossdistro/ARM_BoF.webm">54:40 video</a>)</li>
<li>Debian secrets: useful information to get started on using or developing Debian (<a href="http://video.fosdem.org/2012/crossdistro/Debian_Secrets___what_I_wish_I_knew_before_joining_Debian.webm">41:24 video</a>)</li>
<li>Multiarch: why it is important (<a href="http://video.fosdem.org/2012/crossdistro/Multiarch___why_it_s_important.webm">39:52 video</a>)</li>
<li>Coreboot: an open source alternative to BIOS in our PCs (<a href="http://video.fosdem.org/2012/maintracks/janson/Coreboot.webm">36:52 video</a>)</li>
<li>Minemu: an emulator to catch security bugs while the program is running (<a href="http://video.fosdem.org/2012/lightningtalks/Minemu.webm">16:12 video</a>)</li>
<li>Openremote: home automation project (<a href="http://video.fosdem.org/2012/lightningtalks/openremote.webm">15:42 video</a>)</li>
<li>Unhosted: a new paradigm for the web where web apps and data are separated to be more secure and free (<a href="http://video.fosdem.org/2012/lightningtalks/Unhosted.webm">15:13 video</a>)</li>
<li>Virtualization with KVM: an explanation on the current state of virtualization and a roadmap for the future (<a href="http://video.fosdem.org/2012/maintracks/janson/Virtualization_with_KVM.webm">44:46 video</a>)</li>
</ul>
<br />Filed under: <a href='http://balau82.wordpress.com/category/software/'>Software</a> Tagged: <a href='http://balau82.wordpress.com/tag/arm/'>ARM</a>, <a href='http://balau82.wordpress.com/tag/bios/'>bios</a>, <a href='http://balau82.wordpress.com/tag/coreboot/'>coreboot</a>, <a href='http://balau82.wordpress.com/tag/debian/'>debian</a>, <a href='http://balau82.wordpress.com/tag/fosdem/'>fosdem</a>, <a href='http://balau82.wordpress.com/tag/kvm/'>kvm</a>, <a href='http://balau82.wordpress.com/tag/linux/'>linux</a>, <a href='http://balau82.wordpress.com/tag/minemu/'>minemu</a>, <a href='http://balau82.wordpress.com/tag/multiarch/'>multiarch</a>, <a href='http://balau82.wordpress.com/tag/openremote/'>openremote</a>, <a href='http://balau82.wordpress.com/tag/qemu/'>qemu</a>, <a href='http://balau82.wordpress.com/tag/unhosted/'>unhosted</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/balau82.wordpress.com/1026/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/balau82.wordpress.com/1026/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/balau82.wordpress.com/1026/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/balau82.wordpress.com/1026/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/balau82.wordpress.com/1026/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/balau82.wordpress.com/1026/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/balau82.wordpress.com/1026/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/balau82.wordpress.com/1026/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/balau82.wordpress.com/1026/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/balau82.wordpress.com/1026/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/balau82.wordpress.com/1026/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/balau82.wordpress.com/1026/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/balau82.wordpress.com/1026/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/balau82.wordpress.com/1026/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=balau82.wordpress.com&#038;blog=6718912&#038;post=1026&#038;subd=balau82&#038;ref=&#038;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/Balau/~4/hxQvnN2Gchc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://balau82.wordpress.com/2012/03/18/fosdem-2012-videos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://video.fosdem.org/2012/crossdistro/Debian_Secrets___what_I_wish_I_knew_before_joining_Debian.webm" length="115171483" type="video/webm" />
<enclosure url="http://video.fosdem.org/2012/crossdistro/Multiarch___why_it_s_important.webm" length="109764499" type="video/webm" />
<enclosure url="http://video.fosdem.org/2012/crossdistro/ARM_BoF.webm" length="271613871" type="video/webm" />
<enclosure url="http://video.fosdem.org/2012/maintracks/janson/Coreboot.webm" length="71286831" type="video/webm" />
<enclosure url="http://video.fosdem.org/2012/lightningtalks/Minemu.webm" length="38285387" type="video/webm" />
<enclosure url="http://video.fosdem.org/2012/lightningtalks/openremote.webm" length="45364377" type="video/webm" />
<enclosure url="http://video.fosdem.org/2012/lightningtalks/Unhosted.webm" length="26425027" type="video/webm" />
<enclosure url="http://video.fosdem.org/2012/maintracks/janson/Virtualization_with_KVM.webm" length="120201502" type="video/webm" />
	
		<media:content url="http://0.gravatar.com/avatar/641a1371a45c5e27a54691b9c697743a?s=96&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&amp;r=PG" medium="image">
			<media:title type="html">Balau</media:title>
		</media:content>
	<feedburner:origLink>http://balau82.wordpress.com/2012/03/18/fosdem-2012-videos/</feedburner:origLink></item>
		<item>
		<title>Linking a binary blob with GCC</title>
		<link>http://feedproxy.google.com/~r/Balau/~3/35Ky5g5Yj00/</link>
		<comments>http://balau82.wordpress.com/2012/02/19/linking-a-binary-blob-with-gcc/#comments</comments>
		<pubDate>Sun, 19 Feb 2012 10:31:52 +0000</pubDate>
		<dc:creator>Balau</dc:creator>
				<category><![CDATA[Embedded]]></category>
		<category><![CDATA[binary]]></category>
		<category><![CDATA[blob]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[gnu]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[objcopy]]></category>
		<category><![CDATA[objdump]]></category>
		<category><![CDATA[toolchain]]></category>

		<guid isPermaLink="false">http://balau82.wordpress.com/?p=1019</guid>
		<description><![CDATA[There&#8217;s a simple way to include binary data inside an executable, when using a GCC toolchain. The trick relies on using objcopy to transform the binary blob of data into an object file that can be linked. In this example I am creating a binary blob of 16 bytes of random data in file &#8220;blob.bin&#8220;: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=balau82.wordpress.com&#038;blog=6718912&#038;post=1019&#038;subd=balau82&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a simple way to include binary data inside an executable, when using a GCC toolchain. The trick relies on using <code>objcopy</code> to transform the binary blob of data into an object file that can be linked.</p>
<p>In this example I am creating a binary blob of 16 bytes of random data in file &#8220;<code>blob.bin</code>&#8220;:</p>
<p><pre class="brush: plain;">$ dd if=/dev/urandom of=blob.bin bs=1 count=16
16+0 records in
16+0 records out
16 bytes (16 B) copied, 8.7424e-05 s, 183 kB/s
$ hexdump -C blob.bin
00000000  2a 3b cb 0f 43 66 56 77  fd cc 5a e9 b9 73 a7 b2  |*;..CfVw..Z..s..|
00000010</pre></p>
<p>Then I need to use <code>objcopy</code> to transform it; the command is of the form:</p>
<p><pre class="brush: plain;">$ objcopy -I binary -O &lt;target_format&gt; -B &lt;target_architecture&gt; &lt;binary_file&gt; &lt;object_file&gt;</pre></p>
<p>If you are not sure about the target architecture and target format, they can be found with something like:</p>
<p><pre class="brush: plain;">$ &gt; arch.c
$ gcc -c arch.c -o arch.o
$ objdump -f arch.o

arch.o:     file format elf32-i386
architecture: i386, flags 0x00000010:
HAS_SYMS
start address 0x00000000

$ rm -f arch.c arch.o</pre></p>
<p>So, in my case the command is:</p>
<p><pre class="brush: plain;">$ objcopy -I binary -O elf32-i386 -B i386 blob.bin blob.o</pre></p>
<p>This command created a &#8220;<code>blob.o</code>&#8221; file that contains the symbols to access the data within:</p>
<p><pre class="brush: plain;">$ objdump -t blob.o

blob.o:     file format elf32-i386

SYMBOL TABLE:
00000000 l    d  .data    00000000 .data
00000000 g       .data    00000000 _binary_blob_bin_start
00000010 g       .data    00000000 _binary_blob_bin_end
00000010 g       *ABS*    00000000 _binary_blob_bin_size</pre></p>
<p>These symbols can be accessed by C code (and assembly too). Here&#8217;s a simple program that uses them:</p>
<p><pre class="brush: cpp;">#include &lt;stdio.h&gt;

extern unsigned char _binary_blob_bin_start;
extern unsigned char _binary_blob_bin_end;
extern unsigned char _binary_blob_bin_size;

int main()
{
  unsigned char *pblob = &amp;_binary_blob_bin_start;
  while(pblob &lt; &amp;_binary_blob_bin_end)
  {
    printf(&quot;%d: %02X\n&quot;, pblob - &amp;_binary_blob_bin_start, *pblob);
    pblob++;
  }
  printf(&quot;size: %d\n&quot;, &amp;_binary_blob_bin_size);

  return 0;
}</pre></p>
<p>Now we can compile the program and run it to see that the binary data can be accessed correctly.</p>
<p><pre class="brush: plain;">$ gcc    -c -o test_blob.o test_blob.c
$ gcc   test_blob.o blob.o   -o test_blob
$ ./test_blob
0: 2A
1: 3B
2: CB
3: 0F
4: 43
5: 66
6: 56
7: 77
8: FD
9: CC
10: 5A
11: E9
12: B9
13: 73
14: A7
15: B2
size: 16</pre></p>
<p>It is also possible to rename the symbols that are created by objcopy using the &#8220;<code>--redefine-sym</code>&#8221; option, and also put the data in a section with a different name and different flags, using &#8220;<code>--rename-section</code>&#8220;.</p>
<p>I&#8217;ve also seen a method that involves translating the blob into a C source file containing an array of data. The C file can then be compiled and linked into the program. I think both methods have their advantages, for example the <code>objcopy</code> method has fewer steps and needs less space on the disk, whereas the &#8220;C array&#8221; method can be useful if you want to commit the array into a versioning control system that works better with text file than with binary files.</p>
<p>Everything in this page can be achieved also with cross-compilers, by adding the prefix of the toolchain (for example &#8220;<code>arm-linux-gnueabi-</code>&#8221; or &#8220;<code>avr-</code>&#8220;) to the <code>gcc</code>, <code>objcopy</code> and <code>objdump</code> commands.</p>
<br />Filed under: <a href='http://balau82.wordpress.com/category/software/embedded-software/'>Embedded</a> Tagged: <a href='http://balau82.wordpress.com/tag/binary/'>binary</a>, <a href='http://balau82.wordpress.com/tag/blob/'>blob</a>, <a href='http://balau82.wordpress.com/tag/gcc/'>gcc</a>, <a href='http://balau82.wordpress.com/tag/gnu/'>gnu</a>, <a href='http://balau82.wordpress.com/tag/linux/'>linux</a>, <a href='http://balau82.wordpress.com/tag/objcopy/'>objcopy</a>, <a href='http://balau82.wordpress.com/tag/objdump/'>objdump</a>, <a href='http://balau82.wordpress.com/tag/toolchain/'>toolchain</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/balau82.wordpress.com/1019/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/balau82.wordpress.com/1019/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/balau82.wordpress.com/1019/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/balau82.wordpress.com/1019/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/balau82.wordpress.com/1019/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/balau82.wordpress.com/1019/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/balau82.wordpress.com/1019/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/balau82.wordpress.com/1019/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/balau82.wordpress.com/1019/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/balau82.wordpress.com/1019/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/balau82.wordpress.com/1019/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/balau82.wordpress.com/1019/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/balau82.wordpress.com/1019/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/balau82.wordpress.com/1019/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=balau82.wordpress.com&#038;blog=6718912&#038;post=1019&#038;subd=balau82&#038;ref=&#038;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/Balau/~4/35Ky5g5Yj00" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://balau82.wordpress.com/2012/02/19/linking-a-binary-blob-with-gcc/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/641a1371a45c5e27a54691b9c697743a?s=96&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&amp;r=PG" medium="image">
			<media:title type="html">Balau</media:title>
		</media:content>
	<feedburner:origLink>http://balau82.wordpress.com/2012/02/19/linking-a-binary-blob-with-gcc/</feedburner:origLink></item>
		<item>
		<title>JTAGWhisperer: Arduino as a XSVF programmer</title>
		<link>http://feedproxy.google.com/~r/Balau/~3/MnWAkInEfl4/</link>
		<comments>http://balau82.wordpress.com/2012/02/05/jtagwhisperer-arduino-as-a-xsvf-programmer/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 08:45:11 +0000</pubDate>
		<dc:creator>Balau</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[cpld]]></category>
		<category><![CDATA[dangerous prototypes]]></category>
		<category><![CDATA[fpga]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[jtag]]></category>
		<category><![CDATA[jtagduino]]></category>
		<category><![CDATA[jtagwhisperer]]></category>
		<category><![CDATA[open source hardware]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[xilinx]]></category>
		<category><![CDATA[xsvf]]></category>

		<guid isPermaLink="false">http://balau82.wordpress.com/?p=1015</guid>
		<description><![CDATA[Dangerous Prototypes features an interesting project, that is similar to my JTAGduino idea. JTAGWhisperer is a solution to program FPGAs and CPLDs using Arduino and a small client-side Python script. It reads files in the XSVF format, which stands for Xilinx Serial Vector Format and is one of the formats used to program Xilinx chips. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=balau82.wordpress.com&#038;blog=6718912&#038;post=1015&#038;subd=balau82&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://dangerousprototypes.com/">Dangerous Prototypes</a> features an interesting project, that is similar to my <a title="Ongoing project: Arduino as a JTAG adapter" href="http://balau82.wordpress.com/2012/01/07/ongoing-project-arduino-as-a-jtag-adapter/">JTAGduino</a> idea.</p>
<p><a href="http://dangerousprototypes.com/2012/02/01/jtagwhisperer-an-arduino-jtag-programing-library/">JTAGWhisperer</a> is a solution to program FPGAs and CPLDs using <a href="http://www.arduino.cc/">Arduino</a> and a small client-side Python script. It reads files in the XSVF format, which stands for Xilinx Serial Vector Format and is one of the formats used to program Xilinx chips.</p>
<p>There are potentially cheaper solutions, but this projects allows hobbyist hardware developers who already have an Arduino to easily use it also as a XSVF programmer.</p>
<p>&nbsp;</p>
<br />Filed under: <a href='http://balau82.wordpress.com/category/hardware/'>Hardware</a> Tagged: <a href='http://balau82.wordpress.com/tag/arduino/'>arduino</a>, <a href='http://balau82.wordpress.com/tag/cpld/'>cpld</a>, <a href='http://balau82.wordpress.com/tag/dangerous-prototypes/'>dangerous prototypes</a>, <a href='http://balau82.wordpress.com/tag/fpga/'>fpga</a>, <a href='http://balau82.wordpress.com/tag/hacking/'>hacking</a>, <a href='http://balau82.wordpress.com/tag/jtag/'>jtag</a>, <a href='http://balau82.wordpress.com/tag/jtagduino/'>jtagduino</a>, <a href='http://balau82.wordpress.com/tag/jtagwhisperer/'>jtagwhisperer</a>, <a href='http://balau82.wordpress.com/tag/open-source-hardware/'>open source hardware</a>, <a href='http://balau82.wordpress.com/tag/python/'>python</a>, <a href='http://balau82.wordpress.com/tag/xilinx/'>xilinx</a>, <a href='http://balau82.wordpress.com/tag/xsvf/'>xsvf</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/balau82.wordpress.com/1015/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/balau82.wordpress.com/1015/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/balau82.wordpress.com/1015/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/balau82.wordpress.com/1015/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/balau82.wordpress.com/1015/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/balau82.wordpress.com/1015/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/balau82.wordpress.com/1015/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/balau82.wordpress.com/1015/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/balau82.wordpress.com/1015/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/balau82.wordpress.com/1015/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/balau82.wordpress.com/1015/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/balau82.wordpress.com/1015/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/balau82.wordpress.com/1015/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/balau82.wordpress.com/1015/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=balau82.wordpress.com&#038;blog=6718912&#038;post=1015&#038;subd=balau82&#038;ref=&#038;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/Balau/~4/MnWAkInEfl4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://balau82.wordpress.com/2012/02/05/jtagwhisperer-arduino-as-a-xsvf-programmer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/641a1371a45c5e27a54691b9c697743a?s=96&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&amp;r=PG" medium="image">
			<media:title type="html">Balau</media:title>
		</media:content>
	<feedburner:origLink>http://balau82.wordpress.com/2012/02/05/jtagwhisperer-arduino-as-a-xsvf-programmer/</feedburner:origLink></item>
		<item>
		<title>Bruce Perens on Open Source Hardware</title>
		<link>http://feedproxy.google.com/~r/Balau/~3/DJYn2ugdfD0/</link>
		<comments>http://balau82.wordpress.com/2012/02/01/bruce-perens-on-open-source-hardware/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 20:32:25 +0000</pubDate>
		<dc:creator>Balau</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[busybox]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[gnu]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[linux.conf.au]]></category>
		<category><![CDATA[open source hardware]]></category>
		<category><![CDATA[oshw]]></category>
		<category><![CDATA[rms]]></category>

		<guid isPermaLink="false">http://balau82.wordpress.com/?p=1012</guid>
		<description><![CDATA[Linux Conference Australia, Ballarat 2012. The creator of Busybox and co-founder of Debian makes a compelling and rational argument about who should speak for Open Source, and then offers a hopeful perspective on the new frontiers of Open Source Hardware. He is convinced that today there&#8217;s plenty of enabling factors to make Open Source Hardware [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=balau82.wordpress.com&#038;blog=6718912&#038;post=1012&#038;subd=balau82&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://linux.conf.au/">Linux Conference Australia, Ballarat 2012</a>. The creator of <a href="http://busybox.net/">Busybox</a> and co-founder of <a href="http://www.debian.org/">Debian</a> makes a compelling and rational argument about who should speak for Open Source, and then offers a hopeful perspective on the new frontiers of Open Source Hardware.</p>
<span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='594' height='365' src='http://www.youtube.com/embed/Uoum-DHO7S8?version=3&amp;rel=1&amp;fs=1&amp;showsearch=0&amp;showinfo=1&amp;iv_load_policy=1&amp;wmode=transparent' frameborder='0'></iframe></span>
<p>He is convinced that today there&#8217;s plenty of enabling factors to make Open Source Hardware a big thing, just like Linux did at the time thanks to the enabling factors of the Internet, cheap PCs and efficient compilers.</p>
<p>In my opinion there are still at least two factors that make the Open Source Hardware movement slower than Open Source Software, especially in the field of electronics:</p>
<ul>
<li>The number of electronic experts in the world is so much lower than the number of software experts.</li>
<li>The cost to copy software and have a new &#8220;finite product&#8221; is almost zero, the cost to copy a &#8220;thing&#8221; is linked to the cost of manufacturing and is still quite high.</li>
</ul>
<p>I hope that the second problem will soon be overcome thanks to the constant progress of the technology of electronic board manufacturing and the lowered cost of programmable logic chips. The first problem instead will simply be something to be acknowledged, that affects the variety of the ecosystem, the speed of progress and the number of bugs that can be solved by public review.</p>
<br />Filed under: <a href='http://balau82.wordpress.com/category/hardware/'>Hardware</a> Tagged: <a href='http://balau82.wordpress.com/tag/busybox/'>busybox</a>, <a href='http://balau82.wordpress.com/tag/debian/'>debian</a>, <a href='http://balau82.wordpress.com/tag/gnu/'>gnu</a>, <a href='http://balau82.wordpress.com/tag/linux/'>linux</a>, <a href='http://balau82.wordpress.com/tag/linux-conf-au/'>linux.conf.au</a>, <a href='http://balau82.wordpress.com/tag/open-source-hardware/'>open source hardware</a>, <a href='http://balau82.wordpress.com/tag/oshw/'>oshw</a>, <a href='http://balau82.wordpress.com/tag/rms/'>rms</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/balau82.wordpress.com/1012/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/balau82.wordpress.com/1012/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/balau82.wordpress.com/1012/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/balau82.wordpress.com/1012/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/balau82.wordpress.com/1012/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/balau82.wordpress.com/1012/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/balau82.wordpress.com/1012/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/balau82.wordpress.com/1012/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/balau82.wordpress.com/1012/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/balau82.wordpress.com/1012/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/balau82.wordpress.com/1012/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/balau82.wordpress.com/1012/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/balau82.wordpress.com/1012/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/balau82.wordpress.com/1012/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=balau82.wordpress.com&#038;blog=6718912&#038;post=1012&#038;subd=balau82&#038;ref=&#038;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/Balau/~4/DJYn2ugdfD0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://balau82.wordpress.com/2012/02/01/bruce-perens-on-open-source-hardware/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/641a1371a45c5e27a54691b9c697743a?s=96&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&amp;r=PG" medium="image">
			<media:title type="html">Balau</media:title>
		</media:content>
	<feedburner:origLink>http://balau82.wordpress.com/2012/02/01/bruce-perens-on-open-source-hardware/</feedburner:origLink></item>
		<item>
		<title>2012 Embedded Linux Conference Schedule</title>
		<link>http://feedproxy.google.com/~r/Balau/~3/gqFLsRXc34M/</link>
		<comments>http://balau82.wordpress.com/2012/01/23/2012-embedded-linux-conference-schedule/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 08:07:34 +0000</pubDate>
		<dc:creator>Balau</dc:creator>
				<category><![CDATA[Embedded]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[elc]]></category>
		<category><![CDATA[elc2012]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://balau82.wordpress.com/?p=1007</guid>
		<description><![CDATA[For anyone interested, the schedule for the next Embedded Linux Conference, held in San Francisco bay on the 15-16-17 of February, is out: 2012 Embedded Linux Conference &#124; Schedule &#124; Linux Foundation Events. Filed under: Embedded Tagged: ARM, elc, elc2012, kernel, linux<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=balau82.wordpress.com&#038;blog=6718912&#038;post=1007&#038;subd=balau82&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>For anyone interested, the schedule for the next Embedded Linux Conference, held in San Francisco bay on the 15-16-17 of February, is out:</p>
<p><a href="https://events.linuxfoundation.org/events/embedded-linux-conference/schedule">2012 Embedded Linux Conference | Schedule | Linux Foundation Events</a>.</p>
<br />Filed under: <a href='http://balau82.wordpress.com/category/software/embedded-software/'>Embedded</a> Tagged: <a href='http://balau82.wordpress.com/tag/arm/'>ARM</a>, <a href='http://balau82.wordpress.com/tag/elc/'>elc</a>, <a href='http://balau82.wordpress.com/tag/elc2012/'>elc2012</a>, <a href='http://balau82.wordpress.com/tag/kernel/'>kernel</a>, <a href='http://balau82.wordpress.com/tag/linux/'>linux</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/balau82.wordpress.com/1007/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/balau82.wordpress.com/1007/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/balau82.wordpress.com/1007/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/balau82.wordpress.com/1007/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/balau82.wordpress.com/1007/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/balau82.wordpress.com/1007/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/balau82.wordpress.com/1007/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/balau82.wordpress.com/1007/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/balau82.wordpress.com/1007/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/balau82.wordpress.com/1007/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/balau82.wordpress.com/1007/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/balau82.wordpress.com/1007/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/balau82.wordpress.com/1007/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/balau82.wordpress.com/1007/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=balau82.wordpress.com&#038;blog=6718912&#038;post=1007&#038;subd=balau82&#038;ref=&#038;feed=1" width="1" height="1" /><img src="http://feeds.feedburner.com/~r/Balau/~4/gqFLsRXc34M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://balau82.wordpress.com/2012/01/23/2012-embedded-linux-conference-schedule/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/641a1371a45c5e27a54691b9c697743a?s=96&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&amp;r=PG" medium="image">
			<media:title type="html">Balau</media:title>
		</media:content>
	<feedburner:origLink>http://balau82.wordpress.com/2012/01/23/2012-embedded-linux-conference-schedule/</feedburner:origLink></item>
	</channel>
</rss>

