as far as routing is concerned it still needs a lot of progress, but there are some tools that are thought to make it in like grass' v.net which can calculate the shortest route between two points (considering one way streets), there is the possibility of displaying openstreetmap data on top of the raster map, but i wouldn't consider it stable in the sense of fully usable features.
concerning gps device support, gpsd does most units out there. i'm using a SiRFII BU-303 unit which works well in binary (prefered), aswell as in NMEA mode.
to all those thinking of using google * data, read the fine print, it's viciously forbidden to use that way
I don't need no stinkin' startup-shutdown controller... That's what journalized filesystems are for...
NavSys, the ultimate navigation app