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

<channel>
	<title>Daniel Hall&#039;s Website &#187; Linux</title>
	<atom:link href="http://www.danielhall.me/category/computing/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.danielhall.me</link>
	<description>Because the Internet doesn&#039;t have enough opinions already</description>
	<lastBuildDate>Thu, 29 Jul 2010 11:52:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>Protecting Email with DKIM</title>
		<link>http://www.danielhall.me/2010/07/protecting-email-with-dkim/</link>
		<comments>http://www.danielhall.me/2010/07/protecting-email-with-dkim/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 12:57:19 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[System Administration]]></category>
		<category><![CDATA[DKIM]]></category>
		<category><![CDATA[Email]]></category>
		<category><![CDATA[Mail]]></category>
		<category><![CDATA[Phishing]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Spam]]></category>

		<guid isPermaLink="false">http://www.danielhall.me/?p=629</guid>
		<description><![CDATA[<p>One of the problems with the email and the protocols used to transfer it (SMTP) is that they were designed long ago when the Internet was a much friendlier place. When SMTP was designed it was assumed that other hosts on the Internet could be trusted. This is particularly visible in the configuration of relays [...]]]></description>
			<content:encoded><![CDATA[<p>One of the problems with the email and the protocols used to transfer it (SMTP) is that they were designed long ago when the Internet was a much friendlier place. When SMTP was designed it was assumed that other hosts on the Internet could be trusted. This is particularly visible in the configuration of relays where the sender doesn&#8217;t have to be identified. A mail relay will accept mail from any server regardless of where the mail appears to be coming from.</p>
<p>To attempt to rectify this SPF was created. To setup SPF you add either a TXT or an SPF record to the DNS zone you will be sending from. This record defines which servers are allowed to send mail that is coming from that domain. So on my domain danielhall.me I could publish an SPF record that says only my mail server is allowed to send mail that ends in @danielhall.me. Any mailservers receiving mail that is from my domain but not coming from an address listed in my SPF record can see that the mail is likely forged and throw it away. SPF works well in most situations but fails at a very common use case. If someone I send mail to tries to forward it to another address using an automatic process (no clicking forward in their client) then the mail will appear to come from my domain when it gets to the user it was forwarded to, however it will have came from the original recipients mailserver.</p>
<p>DKIM solves this problem by giving each sending mailserver a cryptographic key pair. The public keys is then published in a DNS record in that zone and stores the private key somewhere safe on the server. The server then proceeds to sign the headers (especially the From: header) and the body of all outgoing emails. This signature is then attached to the email as an extra header. When the receiving server get the email it gets the signature and uses that along with the list of signed headers to verify the signature against the public key of the signing domain. This means as long as the mail has passed through an authorised mailserver at any point it will be considered valid.</p>
<p>Setting up a DKIM is relatively simple process. You will need access to the  zone records for your domain and access to the configuration of all the mailservers which all mail originating at your domain passes through. You also need to be aware that signing mail makes it slightly more processor intensive to send an email. If you send a large amount of email this difference could be quite significant. If you&#8217;re using sendmail you may be able to alleviate it by switching to a less resource hungry MTA like Exim. You should also note that in some configurations DKIM can not be setup. For example if you use masquerading in sendmail DKIM will always fail as sendmail will modify the from header after signing.</p>
<p>Ultimately DKIM is a good move for the internet community at large, especially when combined with SPF. DKIM mail is assured to come from the sender and can be cryptographically proven so. While it does take more take a little more effort to setup and maintain it assures mail from your domain is secure and can be assured to have come from you or your company. Ultimately DKIM can protect your company against phishing attempts and boost your spam scores.</p>
<p><strong>Random thought:</strong> What would Email look like if it were designed today?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielhall.me/2010/07/protecting-email-with-dkim/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google G1: Six Months On</title>
		<link>http://www.danielhall.me/2010/03/google-g1-six-months-on/</link>
		<comments>http://www.danielhall.me/2010/03/google-g1-six-months-on/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 09:20:09 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://www.danielhall.me/?p=559</guid>
		<description><![CDATA[<p>So six months ago I bought my Google G1, my first impressions were excited and extremely positive. Has this phone stood the test of time though?</p>
Physically
<p>The phone is still in good physical condition, which is more than I could have said about my old XDA Atom Flame after six months. There are a few scratches [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-weight: normal;">So six months ago I bought my Google G1, my first impressions were excited and extremely positive. Has this phone stood the test of time though?</span></p>
<h1>Physically</h1>
<p>The phone is still in good physical condition, which is more than I could have said about my old XDA Atom Flame after six months. There are a few scratches on the screen, but I bought a screen protector for it so I can simply peel them off. Surprisingly the various crevices on the phone have avoided build ups of dust which commonly plagues my phones. The battery is beginning to fade, and can only last me around 12 hours with my ordinary usage (which is probably considered heavy usage). This makes weekends away from home interesting as I have to avoid using my phone to stretch the battery over 24 hours.</p>
<p>When I first got the phone I expected that the keyboard keys would fade, or that the keyboard snap mechanism would somehow break. I was wrong, the keys are still as visible as when I first got it, and the snap mechanism still works perfectly.</p>
<h1>The OS</h1>
<p>In the time I&#8217;ve had this phone Android has gone from 1.1 to 2.0. Sadly there haven&#8217;t been any official new releases of the phone software. There have however been releases of the well known mod for this phone called &#8216;CyanogenMod&#8217;. Currently CyanogenMod is at Android version 1.5 with parts of 2.0 ported across.</p>
<p>Since the first week I had the phone I&#8217;ve been using CyanogenMod and have seen the improvements in it take it from strength to strength. Originally it looks almost the exact same as the original OS but now it includes several features that I could not live without. My favorites would be:</p>
<ul>
<li>Tethering to my Linux PC</li>
<li>OpenVPN settings</li>
<li>360 degree rotation</li>
<li>Improved contacts screen with direct call links</li>
<li>Voice Search</li>
</ul>
<h1>The Applications</h1>
<p>Like any mobile OS the best part is the applications. This is where an OS either make it or breaks it. While Google have been constantly improving the Android platform old apps have remained around and stayed compatible with the phone. Google has also held two developer competitions during the time I&#8217;ve had the phone which has brought loads of new apps and innovation. So as each application is its own entity I&#8217;m going to review my favorites separately.</p>
<h2>Google Maps</h2>
<p>When I got the phone Google Maps was simply a map, with limited search capability and able to give directions. Since then however Google have added Street View, Navigation (US Only sadly), Buzz and much better searching. For something I used once a month I now use it almost daily.</p>
<h2>ConnectBot</h2>
<p>One of the reasons I went for a phone with a hardware keyboard was to make SSHing into my Linux machines easier. ConnectBot handles this perfectly. I cannot stress enough how useful this application is. Recently it has been improved to include support for SSH agents too which improved things even further.</p>
<h2>My Tracks</h2>
<p>As someone who enjoys hiking and walking having a GPS logger can be extremely useful. My Tracks basically turns your Android phone into a GPS logger and displays the data for you on a map. It also allows you to export the logs in popular formats or simply upload them to My Maps on Google. It can also graph your elevation, speed and display interesting statistics.</p>
<h1>Conclusion</h1>
<p>All up I still enjoy this phone, and still use it daily. I am looking at moving to either an N900 or the Google Nexus One next. I haven&#8217;t moved because the N900 has been having trouble with the USB connectors breaking off, and the Nexus One is too expensive to import into Australia. I doubt I&#8217;ll be moving to another phone any time soon and this phone doesn&#8217;t look like it will give out any time in the near future.</p>
<p><strong>Random Thought:</strong> What is the cell phone market going to look like five years from now? And where the hell is my wristwatch phone?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielhall.me/2010/03/google-g1-six-months-on/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The T-Mobile G1 Phone</title>
		<link>http://www.danielhall.me/2009/09/the-t-mobile-g1-phone/</link>
		<comments>http://www.danielhall.me/2009/09/the-t-mobile-g1-phone/#comments</comments>
		<pubDate>Sat, 19 Sep 2009 07:54:57 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.danielhall.me/?p=354</guid>
		<description><![CDATA[<p>The T-Mobile G1 Phone goes by a few names. HTC Dream and Google Android Development phone are two more. Essentially they are the same hardware and the only change is the software. The Android Development phone unlike the others comes with an unlocked bootloader allowing you to flash any software image you want where the [...]]]></description>
			<content:encoded><![CDATA[<p>The T-Mobile G1 Phone goes by a few names. HTC Dream and Google Android Development phone are two more. Essentially they are the same hardware and the only change is the software. The Android Development phone unlike the others comes with an unlocked bootloader allowing you to flash any software image you want where the other two will only allow software signed by either HTC or T-Mobile.</p>
<p>I bought mine two weeks ago and it has completely replaced my Windows Mobile phone to the point where I actually gave it away. The main issues that I have with Windows Mobile was the instability and the difficult to use interface. This new phone was a breath of fresh air. Amazingly when I was testing it out with the seller it received a weeks worth of SMSes indicating that my Windows Mobile phone had stopped accepting them.</p>
<p>I opted for the T-Mobile option. Mainly because I found one cheap on eBay but also because I knew of an exploit to easily get root, flash a new bootloader and install whatever OS I wanted. I knew with almost absolute certainty that I would want to be able to play with root access to the OS. I could have went with the HTC Hero or Magic (the successors to the G1) but I liked the idea of the flip out keyboard way too much.</p>
<p>The G1 is easy to use without a stylus, in fact it won&#8217;t work with a stylus as is uses a capacitive touch screen. This means all the applications, the keyboard and the core OS are designed with that in mind. While I could use my old phone with my thumbs many of the controls were impossible to use without perfect precision. Generally all the controls on the Andriod are larger and easier to manipulate, where the Windows Mobile controls are clunky and small.</p>
<p>The Android marketplace is also something that Windows Mobile could certainly have done with. It is an almost perfect image of the iPhone App Store, except that in the culture of open source most of the applications are free. The applications are easier to search for, review and download making the Android Marketplace a much easier to use and more polished tool.</p>
<p>One thing this phone and my last one have in common was the hacker community around them. Both have multiple ROMs available and its relatively easy to flash a new one. I&#8217;m currently running the latest stable CyanogenMod (4.0.4) which was extremely easy to flash courtesy of the latest kernel vulnerability and some specially designed tools.</p>
<p><strong>Random Thought:</strong> I thought Androids could make breakfast for me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielhall.me/2009/09/the-t-mobile-g1-phone/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fedora 12 Alpha</title>
		<link>http://www.danielhall.me/2009/09/fedora-12-alpha/</link>
		<comments>http://www.danielhall.me/2009/09/fedora-12-alpha/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 07:42:53 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://www.danielhall.me/?p=320</guid>
		<description><![CDATA[<p>So recently Fedora released the alpha of their latest OS. I&#8217;d been running rawhide for quite a while. Of particular interest is that my RS690 no longer flickers when I move a window that includes an alpha channel, and no longer randomly crashes. I&#8217;ve still got to disable modesetting but modesetting currently only stops me [...]]]></description>
			<content:encoded><![CDATA[<p>So recently Fedora released the alpha of their latest OS. I&#8217;d been running rawhide for quite a while. Of particular interest is that my RS690 no longer flickers when I move a window that includes an alpha channel, and no longer randomly crashes. I&#8217;ve still got to disable modesetting but modesetting currently only stops me from enabling desktop effects.</p>
<p>Particular points I&#8217;m enjoying:</p>
<ul>
<li>The desktop wallpaper that has squares on an angled surface is very appealing. The other new desktop wallpapers are very eye catching too.</li>
<li>Having 3D rendering working properly on my laptop.</li>
<li>The new <a href="http://www.danielhall.me/wp-content/uploads/2009/09/desktop-login.ogg">Fedora 12 Login Theme</a> is music to my ears (except when I have my laptop speakers turned up and it reverbs horribly).</li>
<li>EXT4 support seems a bit stronger. Of particular importance barrier based sync now works on LVM metadevices.</li>
<li>Dracut has made no discernible difference to boot times and ability to boot.</li>
<li>resize2fs is now able to shrink an ext4 partition. system-config-lvm now recognises ext4 and allows resizing it.</li>
</ul>
<p>Particular points I&#8217;m not enjoying:</p>
<ul>
<li>Eclipse is unstable and keeps crashing.</li>
<li>Turning off the menu icons in GNOME seems like a bad idea, it makes it harder to recognise each menu.</li>
<li>Modesetting stops me from using 3D effects.</li>
<li>You can&#8217;t drag icons from the menu to the panels or the desktop any more.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.danielhall.me/2009/09/fedora-12-alpha/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSH Agent Forwarding</title>
		<link>http://www.danielhall.me/2009/08/ssh-agent-forwarding/</link>
		<comments>http://www.danielhall.me/2009/08/ssh-agent-forwarding/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 23:01:29 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[System Administration]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://www.danielhall.me/?p=160</guid>
		<description><![CDATA[<p>So you use keys to SSH between your hosts, and you either have separate keys for each machine you use, or worse you have the same key on each machine. Lets go over why each of those are bad, and lets see how SSH Agent forwarding will help with those issues and make things easier [...]]]></description>
			<content:encoded><![CDATA[<p>So you use keys to SSH between your hosts, and you either have separate keys for each machine you use, or worse you have the same key on each machine. Lets go over why each of those are bad, and lets see how SSH Agent forwarding will help with those issues and make things easier for you in general.</p>
<p>So the key part of why a SSH agent and SSH agent forwarding forwarding is so useful is due to the way keys can be attacked. If I wanted to get your SSH private key I could find some flaw in the system that would give me that /home/you/.ssh/id_rsa file you have. Of course a malicious user with root access to the system could just go in and grab it. You can prevent this kind of attack by setting a passphrase on the key. Of course the root user could replace SSH with a special version designed to get your passphrase, steal the key out of memory or setup a keylogger. This means effectively that your private key is not safe on any system where a person you don&#8217;t trust has root access, or has other users and exploitable vulnerabilities.</p>
<h2>Single Private Key on Multiple Machines</h2>
<p>In this example you&#8217;re trusting the security of every single machine you have your private key on. Should it get compromised then you have to revoke you public key from every host, and regenerate private keys to place on every host. Every time you put your private key on a machine you increase the chances that it could be compromised.</p>
<h2>Multiple Private Keys On Multiple Machines</h2>
<p>So we&#8217;re getting a little closer to a good solution. In this instance we don&#8217;t have to generate our key and roll it out to all hosts in event of a compromise. You can also have segregate groups, on set of keys for work, another for home and so on. Your keys can still be compromised easily though, and once compromised they can be used until you revoke them manually.</p>
<h2>SSH Agent Forwarding</h2>
<p>There is a way to keep your key safe from compromise. Now I&#8217;ll have to explain how SSH authenticates you using your key. When your authenticating with SSH keys your key isn&#8217;t sent, the server sends you some random data and challenges your client to encrypt it with your private key. It then verifies the encrypted data by decrypting it with the public key and checking if it matches the data originally sent. Now the way most people would SSH from the second host to another third host is to utilise a private key on the second host to connect to the third host. Unfortunately this method means that you have to store a key (that is open for compromise) on the second host. SSH agent forwarding tells the SSH client on the second server to send the challenge data through to the SSH client (or ssh agent) on the first host. The agent encrypts the data and sends it via the SSH session to the third client.</p>
<p>The beauty of this method is that the second host never sees a private key, and the challenge data is useless to try and connect to a different host. Even if the second host is compromised there isn&#8217;t a private key there to compromise. It should be noted that if the second host is compromised it can still request the agent identify for a different host, or the session to the third host can be taken over. Both these are temporary though and unless the malicious user installs their key (something easy to notice) they cannot get back in.</p>
<div id="attachment_173" class="wp-caption alignright" style="width: 160px"><a href="http://www.danielhall.me/wp-content/uploads/2009/08/SSHAgent.png"><img class="size-thumbnail wp-image-173 " title="SSHAgent" src="http://www.danielhall.me/wp-content/uploads/2009/08/SSHAgent-150x150.png" alt="Diagram detailing how an SSH connection is authenticated using agent forwarding." width="150" height="150" /></a><p class="wp-caption-text">Diagram detailing how an SSH connection is authenticated using agent forwarding.</p></div>
<p>If you want to know more about how this works, there is a wonderful tech tip at <a href="http://unixwiz.net/techtips/ssh-agent-forwarding.html">http://unixwiz.net/techtips/ssh-agent-forwarding.html</a>.</p>
<h2>But how?</h2>
<p>SSH agent forwarding is even easier than copying keys all over the place. The first step is to generate keys for all the machines you log on to directly. You need to be sure these machines are secure and that your keys will stay safe, though this is sometimes not possible. You then add the generated public key to the authorized hosts file of all the machines you will connect to from this one, including ones that take two or more steps to get to. Finally you edit your ~/.ssh/ssh_config file to tell SSH to forward your agent through those hosts. Include the intermediate hosts in this list, but not the endpoints. You could also use <a href="http://www.danielhall.me/2009/07/sshmenu/">SSHmenu</a> to add the arguments automatically to those SSH commands. The following disables forwarding to all hosts, and explicitly enables it to fred, and aaron.missgner.com.</p>
<pre>Host fred
  ForwardAgent yes

Host aaron.missgner.com
  ForwardAgent yes

Host *
  ForwardAgent no</pre>
<p><strong>Random thought: </strong>Linux has Plug &#8216;n Pray too, you plug the device in and pray the drivers aren&#8217;t proprietary.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielhall.me/2009/08/ssh-agent-forwarding/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Oh My God &#8211; I broke my LVM</title>
		<link>http://www.danielhall.me/2009/08/oh-my-god-i-broke-my-lvm/</link>
		<comments>http://www.danielhall.me/2009/08/oh-my-god-i-broke-my-lvm/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 22:04:25 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[LVM]]></category>
		<category><![CDATA[Recovery]]></category>

		<guid isPermaLink="false">http://www.danielhall.me/?p=192</guid>
		<description><![CDATA[So today I did about the stupidest thing I could have done at the time. I was planning on clearing my USB hard drive so I could start my new backup plan on it. Of course any Linux geek knows the easy way to erase a hard drive is to do a 'dd if=/dev/zero of=/dev/sdb1'. On almost all my computer there is only one hard drive which maps to /dev/sda. Of course you know exactly where I'm going here don't you? So this is my home server with two hard drive combines into one volume group. The first hard drive is /dev/sda, the second /dev/sdb and the USB hard drive got mapped to /dev/sdc. So in my case that command obliterated the first 125Mb of my second drive before I [...]]]></description>
			<content:encoded><![CDATA[<p>So today I did about the stupidest thing I could have done at the time. I was planning on clearing my USB hard drive so I could start my new backup plan on it. Of course any Linux geek knows the easy way to erase a hard drive is to do a &#8216;dd if=/dev/zero of=/dev/sdb1&#8242;. On almost all my computer there is only one hard drive which maps to /dev/sda. Of course you know exactly where I&#8217;m going here don&#8217;t you? So this is my home server with two hard drive combines into one volume group. The first hard drive is /dev/sda, the second /dev/sdb and the USB hard drive got mapped to /dev/sdc. So in my case that command obliterated the first 125Mb of my second drive before I noticed.</p>
<p>My machine was still running so I knew I hadn&#8217;t wiped anything immediately important. The first thing that I thought of doing was checking what exactly it was that I had wiped and what chance I had of backing up anything before bailing out. Looking at the LVM layout revealed that I&#8217;d probably just destroyed the file system I stored my local Fedora repository on, something I could do without. So I umounted it, removed it from /etc/fstab and did a lvremove. This is exactly where I realised the gravity of the situation. LVM was complaining that it couldn&#8217;t locate one of the physical volumes. Of course it couldn&#8217;t, I&#8217;d just blown away all the metadata for it.</p>
<p>Did you know LVM keeps backups of the metadata? Yes, it keeps them in /etc/lvm/backup (for slightly older copies see /etc/lvm/archive) and you can use this to recover the metadata. I thought a good place to do this would be now, before the reboot that could end it all. Try as I might it was refusing to create a volume that already existed and it also complained about the device being in use. I count myself extremely lucky to be able to do what I did next. To me it felt incredible but when you really think about it it makes sense.</p>
<p>I downloaded the Fedora 11 Live CD and burned it to CD. Yep that&#8217;s right, while knocking on deaths door my machine managed to launch a torrent client, download a 700Mb ISO and burn it to a CD. After that I backed up the /etc/lvm folder to the USB hard drive that caused this mess. Finally I rebooted into the Live environment. The very next step was to recreate the partition table with fdisk.</p>
<p>Then I recreated the physical volume metadata that was destroyed with the following command:</p>
<pre>pvcreate -ff -u DsuvMV-1HVj-SQOU-wZkT-N9M0-LMZd-gPws1U \
 --restorefile /media/usbdisk/lvm/backup/Volgroup00 /dev/sdb1</pre>
<p>This forces the creation of a pv with a specific uuid, ignoring any pvs that exist with the same uuid. It also restores the metadata stored in the restorefile. Follow up with this command to restore the full metadata.</p>
<pre>vgcfgrestore -f /media/usbdisk/lvm/backup/Volgroup00 -v VolGroup00</pre>
<p>Now our LVM metadata is all correct, but at this point we still need to activate the logical volumes.</p>
<pre>vgchange -ay</pre>
<p>Finally you should fsck your logical volumes to make sure everything is working properly and you don&#8217;t get any nasty surprises later. All that is left then is to reboot into your recovered system.</p>
<p>Now thats something they don&#8217;t teach you in RHCE!</p>
<p><strong>Random thought: </strong>Who needs enemies when I have my own stupidity to contend with?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielhall.me/2009/08/oh-my-god-i-broke-my-lvm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fedora 12 (Constantine) Features</title>
		<link>http://www.danielhall.me/2009/08/fedora-12-constantine-features/</link>
		<comments>http://www.danielhall.me/2009/08/fedora-12-constantine-features/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 20:00:32 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Systemtap]]></category>
		<category><![CDATA[Virtualisation]]></category>

		<guid isPermaLink="false">http://www.danielhall.me/?p=138</guid>
		<description><![CDATA[So it appears I called the feature freeze a little early. The feature freeze will actually happen on July 28. You will need to read my other post for features that haven't changed since [...]]]></description>
			<content:encoded><![CDATA[<p>So it appears I called the feature freeze a little early. The feature freeze will actually happen on July 28. You will need to read my <a href="http://www.danielhall.me/2009/07/a-look-forward-to-fedora-12-constantine/">other post</a> for features that haven&#8217;t changed since then. You can see the official list of features at <a href="https://fedoraproject.org/wiki/Releases/12/FeatureList">this page</a>.</p>
<h1>New Features</h1>
<h2>Abrt 1.0</h2>
<p>ABRT stands for Automated Bug Reporting Daemon. It is a tool designed to make it trivially easy for a user to submit a bug report when an application they are using crashes. This will require a fully updated system (to ensure you&#8217;re not reporting bugs already fixed, and the debuginfo packages for the software you&#8217;re reporting the bug for (they will be downloaded on demand). This will mean that should an application crash a popup will appear in the system tray, clicking the pop-up will launch a simple wizard to walk the user through the steps of reporting the bug.</p>
<h2>Anaconda MDRaid</h2>
<p>This feature involves changing the default RAID type from dmraid to mdraid when using Intel BIOS-RAID devices. Mdraid (Linux Software RAID) holds many advantages over dmraid including RAID 5 sets and better flexibility. In the past the dmraid drivers were built into the initrd and hence the only way to stop them loading would be to rebuild the initrd without them. Of course this was a non-solution as you had to do it every time you upgraded the kernel.</p>
<h2>FCoE</h2>
<p><a href="http://en.wikipedia.org/wiki/Fibre_Channel_over_Ethernet">Fibre Channel over Ethernet</a> is a recent attempt to reduce the number of cables and interfaces in datacenters. With less switches, cables and interfaces then less cooling is needed and less power is needed, which saves money which is clearly good for companies. So currently to get Fedora working over FCoE you have to play some very interesting tricks. This new feature is aiming to get Fedora 12 to easily install and boot straight from FCoE without any hassle.</p>
<h2>Fedora Studio</h2>
<p>If you have many multimedia applications installed in Fedora 11 you can end up with a very large menu. This can make it difficult to see all the applications and choose the right one. This feature is about creating submenus for media applications to make it easier to find everything.</p>
<h2>GFS2 Clustered Samba</h2>
<p>This feature (though I must admit I&#8217;m not experienced with samba) allows you to export GFS2 clustered filesystems across samba. This means that you can have high availability samba share. Unfortunately that&#8217;s as much as I can tell you. If you want to know more, I suggest you visit the <a href="https://fedoraproject.org/wiki/Features/GFS2ClusteredSamba">feature page</a>.</p>
<h2>KDE 4.3</h2>
<p>Keeping Fedoa at the cutting edge of the Linux software world involves keeping the desktop environments up to date. A desktop environment is what the user sees most and what will make the most difference to their experience. KDE 4.3 has many <a href="http://techbase.kde.org/Schedules/KDE4/4.3_Feature_Plan">new features</a> including: a new default theme, brand new plasma gadgets, Google Calendar support in KOrganiser and a new bug reporting tool.</p>
<h2>KSM</h2>
<p>KSM or Kernel SamePage Merging allows KVM to request pages of RAM that are identical between multiple virtual machines be shared. This approach works because visualized guests will be running the same daemons, loading the same kernels and loading a large amount of similar files. This requires a large amount of kernel changes which probably wont make it into the 2.6.31 kernel so will have to be backported.</p>
<h2>Mobile Broadband Enhancements</h2>
<p>The current black spot in NetworkManagers support is around mobile broadband. Today mobile broadband adaptors are becoming commonplace, but support in Linux is anything but easy. Adding NetworkManager support should make it extremely simple to get your broadband working where ever you are, whatever plan you&#8217;re on and whatever device you&#8217;re using.</p>
<h2>Moblin</h2>
<p>Moblin is a Linux platform that is optimised to give a better experience on netbooks. This feature involves the addition of new desktop manager from Moblin Core. Moblin is a complete rethink of the GUI in a way that&#8217;s designed to be easy to work on netbooks. Its also integrated with socail networking and all the features the &#8216;new kids&#8217; want. Check out the <a href="http://moblin.org/documentation/moblin-netbook-intro">intro video</a>.</p>
<h2>Gnome 2.28</h2>
<p>The plan for Gnome 2.28 hasn&#8217;t been completely finalized yet. So I cant tell you what you&#8217;ll see, what it will be like or whether this feature will eventually be dropped. You can find a list of planned changes for Gnome overall <a href="http://live.gnome.org/RoadMap">here</a> and a separate list for each Gnome application <a href="http://live.gnome.org/RoadMap/Modules">here</a>.</p>
<h2>KVM NIC Hotplug</h2>
<p>This feature add support for hot plugging KVM network interfaces. Having to restart every time you want to add a host to a new network, or give it another interface to load balance over can be a royal pain. Adding a new device simply involves creating a new TAP device and passing its file descriptor to QEMU. Some changes to SELinux will be required but that&#8217;s about it.</p>
<h2>KVM qcow2 Performance</h2>
<p>qcow2 is a disk format for QEMU. Currently though it has a poor performance when using it without a in memory write cache. Unfortunately though storing writes in memory means that in the event of a system crash they may not get written to the physical disk. This feature focuses on improving performance so that administrators don&#8217;t feel the need to choose between performance and data safety.</p>
<h2>KVM Huge Page Backed Memory</h2>
<p>Normally on an x86 CPU the page size would be 4 kilobytes, but the Linux kernel has the ability to use huge page sizes. To find out what size a huge page is in you system type &#8216;cat /proc/meminfo | grep Hugepagesize:&#8217;. On my x86_64 bit system this is 2048 Kb. Large pages require less memory for page tables, which increases performance.</p>
<h2>KVM Stable Guest ABI</h2>
<p>When QEMU is upgraded some of the devices it emulates may change, for example it may support new network cards or different hard drive controllers. These upgrades are equivalent to upgrading the hardware the guest runs on. Unfortunately if Windows detects that hardware has changed it requests activation. Reactivating all your windows guests can become very tiresome every time you upgrade QEMU. This feature is about providing a stabilized hardware to each guest, and only upgrading on the request of the administrator.</p>
<h2>libguestfs</h2>
<p>Libguestfs allows you to easily access any filesystem that can be accessed by your qemu virtual machines. It borrows code from the Linux kernel and qemu. This saves application developers from using complicated loopback mounts and LVM (of which there is another feature to improve).</p>
<h2>Lower Process Capabilities</h2>
<p>The DAC_OVERRIDE capability allows a process to override any file permissions that may be set. If we can remove the DAC_OVERRIDE permission from system daemons then they will become a less attractive target for exploitation. If the filesystem permissions are set in such a way as to protect the files even better (such as 0000 permissions on /etc/shadow and 005 on /bin) then attacking a program with root privileges will be even less attractive. This feature is about dropping DAC_OVERRIDE from some system daemons and modifying file permissions system wide.</p>
<h2>NetBeans 6.7</h2>
<p>Fedora has always been up to date with the latest cutting edge software. Currently NetBeans 6.5 is in Fedora 11. The plan it to move to NetBeans 6.7 to take advantages of the <a href="http://www.netbeans.org/community/releases/67/relnotes.html#new">new features</a>.</p>
<h2>Ovirt Node</h2>
<p>Ovirt node is a host installation of Fedora that is extremely lightweight. The only items included are utilities to run and manage virtual machines and their dependencies. This takes much less memory, disk and CPU for the host leaving more memory available to the guests and increasing the amount of virtual machines you can run on any host.</p>
<h2>Open Shared Root</h2>
<p>This feature is extremely interesting to me because as part of my work I manage several High Performance Clusters. This feature is about having multiple Fedora systems all boot off the same root filesystem. This way people who manage a large number of systems can make one completely stateless image that they all boot off.</p>
<h2>Power Management F12</h2>
<p>A sneak addition to Fedora 11 was tuned, so sneaky I only discovered it recently. It allows the system to tune its setting on the fly. For example on my laptop when there is little filesystem activity it can tune the commit interval so it only has to spin up the HD on rare occasions. It has a plugin architecture so it could also tune the network card to 10Mbits when it is hardly being used, or turn off the wireless network card when it isn&#8217;t required. This feature involves merging tuned and Red Hats ktune in order to automatically tune the power usage of your PC.</p>
<h2>SystemTap Eclipse GUI</h2>
<p>There is currently a focus on making SystemTap easier to use. Currently SystemTap only has a CLI GUI, and while there is a vim syntax highlighter it isn&#8217;t installed by default. This effectively means there is no IDE for developing SystemTap scripts. Eclipse is a visual editor for writing many types of applications. SystemTap will no doubt benefit With eclipse integration, maybe we&#8217;ll even see automatically generated SystemTap scripts.</p>
<h2>Systemtap Tracing Refresh</h2>
<p><a name="SystemTapTracingRefresh"></a>Originally a feature was proposed for Fedora 12 titled &#8216;SystemTap Static probes&#8217;, but the work required for this feature to become a reality hasn&#8217;t been finished yet. So that feature has been re targeted for Fedora 13. Instead this feature will focus on documenting and streamlining the SystemTap tools to provide a better user experience. This work going into this feature also enables the &#8216;SystemTap Static probes&#8217; for the next version of Fedora.</p>
<h2>Rakudo Perl 6</h2>
<p>Rakudo is an implementation of the Perl 6 specification under the Parrot Virtual Machine. There are currently many implementations of Perl 6 but this one clearly separates the compiler and the runtime and its more actively maintained than the rest. This feature allows Fedora to stay at the cutting edge of technology.</p>
<h2><a title="Features/Thusnelda" href="https://fedoraproject.org/wiki/Features/Thusnelda"> </a>Thusnelda</h2>
<p>Thusnelda is the name of the new Theora encoder. As of the libtheora 1.1 release it is now the chosen encoder for Theora video. Thusnelda&#8217;s development was supported by Red Hat, Wikimedia and Mozilla. It should be noted that mplayer and ffmpeg include their own implementation for Theora encoders so this feature will not include those applications that rely on them.</p>
<h2>Virtual Network Interface Management</h2>
<p>Linux allows some very complicated setups for networking, for instance you can bond multiple physical interfaces for increased throughput or reliability, you can set an inteface to tag VLANs and many more. None of these configurations are easy, and NetworkManager has even made some harder. This feature is especially important when guest machines are involved because they can involde some interesting network setups. This feature will introduce a netcf library to allow the easy configuration of complicated network setups. Netcf will not be integrated with NetworkManager in this release of Fedora, but these features will be designed with future integration in mind.</p>
<h2>NFSv4Default</h2>
<p>Simply put, this feature is about changing the default NFS protocol for Fedora 12 to NFSv4. NFSv4 includes many improvements over its predecessors but most importantly it uses less traffic to perform the same tasks.</p>
<h2>PackageKitBrowserPlugin</h2>
<p>Lets say I&#8217;m writing a blog post that explains how get SystemTap working on your system. I&#8217;d have to tell you what packages you&#8217;d need to install in order to get it working. Rather than give you a bunch of yum commands to run wouldn&#8217;t it be cool if you just clicked a button on my site. That&#8217;s basically what is involved in this feature, it means I can add a button which will prompt you to install the features I&#8217;ve told it to.</p>
<h2>PackageKitCommandNotFound</h2>
<p>Ever typed mplayer into a terminal only to find out it isn&#8217;t installed yet? This integrates into bashes command not found message to help you find the program you were looking for. Now instead of bash saying command not found when you type iotop for the first time it will prompt you to install it.</p>
<h2>SR-IOV</h2>
<p>using QEMU you can assign PCI devices directly to the guests machines, but previously this would stop the host from using it, and it would only be available on the one guest. This feature is about allowing multiple guests and the host to simultaneously access one PCI device. This requires driver support so that the machines can be organised and coordinated to prevent mishaps and errors.</p>
<h2>Virt Privileges</h2>
<p>This feature allows running QEMU as a non root user. Running with these lower privileges limits the damage that can be done by particular vulnerabilities. Another advantage is that you can have a much better intergration with a users desktop. The guest machine will be able to use that users sound server, put disk images in that users home directories and generally integrate with the desktop better.</p>
<h2>VirtioSerial</h2>
<p>This feature will create an interface between the userspace on the guest and the userspace on the host. This interface will consist of simple character devices that will be able to alert the guest to windows size changes, or transfer copy/paste data bidirectionally.</p>
<h2>VirtgPXE</h2>
<p>Every time Red Hat fix a bug in etherboot and send a patch upstream the get the response &#8220;we currently do not support etherboot, can you use gpxe instead?&#8221;. At the moment gxpe is included in Fedora but is not used by QEMU. The plan for this feature is to deprecate etherboot and move towards gxpa.</p>
<h2>Virt Storage Management</h2>
<p>At the moment if you want a guest machine to use a SAN for storage you&#8217;ll have to set it up manually. This feature plans to make it easier to configure by allowing machines to auto-detect and configure the SAN for the virtual machine.</p>
<h2>XI2</h2>
<p>XInput2 is a major enhancement over XInput1.5. It opens up X to some very interesting posibilities, for example I could have two keyboards and mice attached to my desktop allowing both me and another person to use two applications on the same screen simultaneously. I could copy something to the clipboard and they could paste it. I could drag a picture into their document from my image editor and so on. Somewhat less exciting is support for 32bit keycodes, instead of 255 allowing even more multimedia keys, support for devices that modify the amount of buttons they have at runtime and so on.</p>
<h2>YumLangpackPlugin</h2>
<p>Fedora is available in many different languages, but finding and installing the correct langpacks to get the language you want can be very difficult. This feature lets yum find and install the correct langpacks when the base langpack is installed. this makes Fedora much more accessable to people who speak languages other than English.</p>
<h1>Dropped Features</h1>
<h2>Debuginfo filesystem</h2>
<p>Dropped due to a lack of status updates</p>
<h2>Multiseat</h2>
<p>Dropped due to a lack of status updates</p>
<h2>SystemTap Static probes</h2>
<p>See the <a href="#SystemTapTracingRefresh">SystemTap Tracing Refresh</a>.</p>
<p><strong>Random Thought:</strong> I just wrote a 2446 word post about Fedora&#8217;s features and you expect me to be able to think afterwards? I&#8217;m too tired to think!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielhall.me/2009/08/fedora-12-constantine-features/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SystemTap</title>
		<link>http://www.danielhall.me/2009/07/systemtap/</link>
		<comments>http://www.danielhall.me/2009/07/systemtap/#comments</comments>
		<pubDate>Sat, 25 Jul 2009 00:10:31 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[System Administration]]></category>
		<category><![CDATA[Benchmarking]]></category>
		<category><![CDATA[Profiling]]></category>
		<category><![CDATA[Systemtap]]></category>

		<guid isPermaLink="false">http://www.danielhall.me/?p=32</guid>
		<description><![CDATA[<p>SystemTap is the Linux analogy to Solaris DTrace and is similar to the strace command, only much much more powerful. It effectively lets you set breakpoints in the kernel to monitor what your applications are doing. For example if I was worried that some application I&#8217;d written was polling way too often, I could ask [...]]]></description>
			<content:encoded><![CDATA[<p>SystemTap is the Linux analogy to Solaris DTrace and is similar to the strace command, only much much more powerful. It effectively lets you set breakpoints in the kernel to monitor what your applications are doing. For example if I was worried that some application I&#8217;d written was polling way too often, I could ask SystemTap to output the number of times my application calls poll() or select().</p>
<p>To use SystemTap first you write a simple script, or borrow one from someone else. On a Fedora system you&#8217;ll fine some sample scripts in /usr/share/doc/systemtap-0.9.8/examples provided you have SystemTap installed. You then run the <em>stap</em>; command. The stap command immediately begins parsing the scipt looking for any tapsets that your script uses and if it does it includes them. It then converts your script into C code and compiles it into a kernel module. This kernel module is inserted into the running kernel and stap attaches to it. The kernel module stays in the kernel until it is cancelled by the user, it reaches an exit function or it encounters too many errors.</p>
<p>While SystemTap can be used to simply dump loads of data about what an application is doing in kernel space that is not its purpose. SystemTap scripts are able to drill down, extract, process and format the data its gathering. For example if you were trying to find out what files a process was writing to your disks could just output every single write call and print it out, or you could keep the statistics and every ten seconds print the top ten files written to. SystemTap is designed to help you filter out all the noise and monitor only what you want to monitor.</p>
<p>The simple way to get started with SystemTap is to download the <a href="http://sourceware.org/systemtap/SystemTap_Beginners_Guide.pdf">Beginners guide</a> or the <a href="http://sourceware.org/systemtap/SystemTap_Beginners_Guide.pdf">Tutorial</a>. On Fedora systems when you install SystemTap you&#8217;ll find the tutorial at /usr/share/doc/systemtap-0.9.8/tutorial.pdf. SystemTap skills are handy for system administrators and developers, so if you fit into those categories I&#8217;d highly recommend you check it out.</p>
<p><strong>Random Thought:</strong> Where does /dev/zero come from and where does /dev/null go? What happens if you pipe /dev/zero to /dev/null?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielhall.me/2009/07/systemtap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Truth Will Shock and Amaze You!</title>
		<link>http://www.danielhall.me/2009/07/the-truth-will-shock-and-amaze-you/</link>
		<comments>http://www.danielhall.me/2009/07/the-truth-will-shock-and-amaze-you/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 23:21:58 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[GPL]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Virtualisation]]></category>

		<guid isPermaLink="false">http://www.danielhall.me/?p=114</guid>
		<description><![CDATA[Pick the correct headline:

    * Meteorologists Determine That Hell Has Frozen Over
    * Scientists Genetically Engineer a Pig Capable of Flight
    * Microsoft Releases 20,000 Lines of GPL code to the Linux [...]]]></description>
			<content:encoded><![CDATA[<p>Pick the correct headline:</p>
<ul>
<li>Meteorologists Determine That Hell Has Frozen Over</li>
<li>Scientists Genetically Engineer a Pig Capable of Flight</li>
<li>Microsoft Releases 20,000 Lines of GPL code to the Linux Kernel</li>
</ul>
<p>if you know the subject matter of this blog, or read what category this post is in then you&#8217;ve most likely figured it out already. Its true, <a href="http://www.networkworld.com/news/2009/072009-microsoft-linux-source-code.html?page=1">Microsoft today offered a total of 20,000 lines of code</a>. The code, containing three device drivers related to virtualisation, has been submitted for inclusion into the kernel.</p>
<p>This is hard for some people to understand, indeed some Linux users are so entrenched in their hate of Microsoft that they are calling this as a bad thing. I don&#8217;t think people should be dismissing this so quickly. While Microsoft hasn&#8217;t been entirely friendly towards Linux in the past, this represent a substantial shift in their behaviour. Its things like this and the <a href="http://www.microsoft.com/interop/cp/default.mspx">Community Promise</a> that gives me hope of a world where Windows and Linux can coexist.</p>
<p><strong>Random Thought:</strong> <span>They say: “Linux is only free if your time is worthless.” and I say &#8220;Windows is only free if your money is worthless&#8221;</span></p>
<p><span><strong>Edit (23/07/2009):</strong> Infoworld has a good <a href="http://www.infoworld.com/d/open-source/red-hat-lauds-criticizes-microsofts-linux-efforts-357">writeup about Red Hat&#8217;s reaction</a> to the news.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielhall.me/2009/07/the-truth-will-shock-and-amaze-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Windows Registry vs Gconf</title>
		<link>http://www.danielhall.me/2009/07/the-windows-registry-vs-gconf/</link>
		<comments>http://www.danielhall.me/2009/07/the-windows-registry-vs-gconf/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 23:22:32 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.danielhall.me/?p=6</guid>
		<description><![CDATA[I often hear people attacking GNOME and Linux because of the claim that they've emulated the Windows Registry in Gconf. While this looks to be true at first glance, looking a bit deeper reveals many differences that make the two into completely separate entities. Both GConf and the Registry have their own advantages and [...]]]></description>
			<content:encoded><![CDATA[<p>I often hear people attacking GNOME and Linux because of the claim that they&#8217;ve emulated the Windows Registry in Gconf. While this looks to be true at first glance, looking a bit deeper reveals many differences that make the two into completely separate entities. Both GConf and the Registry have their own advantages and drawbacks.</p>
<h2>Windows Registry</h2>
<p>The Windows Registry was added in Windows 95 to replace .INI files that Windows 3.1 applications would often use. These .INI files would be littered all over the filesystem in whatever location their application decided to put them. .INI files were easy to edit. Requiring only a text editor they could be edited in both DOS and Windows. The Registry was created to keep all the system settings in one place. Before it was released the APIs were made public so that any application could store its data along with all the system data in one common place.</p>
<p>This seemed like a great idea. No longer did you have to go searching to look for the settings for any particular application. Simply open up Registry Editor browse to your applications keys and edit away, unless you accidentally hit some system setting. Because system settings are stored right next to application settings changes to the Windows Registry could render the system unable to boot. This is why you see all those disclaimers on any tutorials involving the Windows Registry.</p>
<p>The Windows Registry is stored in a binary form. This makes it quick to load but limits its flexibility. After a Windows system fails to boot it will ask you if you want to boot with the last known good settings. This basically uses a backup of the Registry made at the last boot-up, where the settings are known to be correct. Not attempt to edit it can be made without a graphical environment and your only option is to roll back to a backup.</p>
<h2>GNOME Gconf</h2>
<p>On the surface Gconf appears to emulate the Windows Registry. Both gconf-editor and the Windows Registry Editor look very similar, and indeed operate in practically the same way. They&#8217;re both a collection of keys and values in a tree form. They also hold some similar settings such as keys to hold the desktop wallpaper location.</p>
<p>Gconf differs significantly to the Windows Registry though. You&#8217;ll notice that there are no settings in gconf to configure swapping, tune the filesystems, or configure routing. Gconf doesn&#8217;t hold any system settings, it stores only settings related to the desktop environment. You won&#8217;t find anything in there to help you configure device drivers or render your system unbootable.</p>
<p>The backing data store for Gconf in XML, which allows editing (though I&#8217;ll admit its somewhat difficult) with any text editor, command line or graphical. In the event of you making a change that stops your desktop environment from starting you&#8217;ll still be able to boot into a command line mode and attempt to fix the problem. It is also easier to identify when searching for it in a crashed filesystem.</p>
<h2>Comparison</h2>
<p>Both gconf and windows registry both represent their data in a tree based structure containing keys and values. This is where the similarities end. Gconf does not store system settings, editing it will not destroy your Linux machine. Gconf has a clearly defined scope, and is not meant to encompass every possible setting the computer may need. Gconf is easier to edit and repair, because of its XML format.</p>
<p>I refuse to debate which one is better because they are designed to perform some very different tasks. I do however think that the windows registry would benefit from an XML (or other text backend). Similarly Gconf could benefit from an automatic rollback/checkpointing mechanism.</p>
<p>Edit: Jeff Atwood (one of my favorite blog authors) recently wrote a post about the Windows Registry. Find it at <a title="Was The Windows Registry a Good Idea?" href="http://www.codinghorror.com/blog/archives/000939.html">http://www.codinghorror.com/blog/archives/000939.html</a>.</p>
<p><strong>Random Thought:</strong> Imagine for a second that transferring zeros over the internet was free and only the ones cost money. Now think of a compression algorithm (or an inflation mechanism rather) that increases the ratio of zeros to ones and makes data cheaper to transfer. Now imagine how you would perform error correction/detection with this protocol.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielhall.me/2009/07/the-windows-registry-vs-gconf/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
