I'm looking to run Linux off of a USB drive (512MB). I would like to have:

-A 2.6.x kernel-Hardware detection so I can use it on any machine-The ability to uninstall whatever came with the distro-GCC readily available-Some space left over so I can actually use it as a USB drive