Viking is a free/open source program to manage GPS data. You can import and plot tracks and waypoints, show OpenStreetMaps, Bing Aerial and/or Terraserver maps under it, geotag images, download geocaches for an area on the map, make new tracks and waypoints, see real-time GPS position, etc.  It is written in C with the GTK+ 2 toolkit.