Viking is a free/open source program to manage GPS data. You can import, plot and create tracks, routes and waypoints, show OSM, Bing Aerial and other maps, geotag images, see real-time GPS position (not in Windows), make maps using Mapnik (not in Windows), control items, etc. It is written in mostly in C (with some C++) & the GTK+2 toolkit.
Modular, touch screen friendly navigation system with GPS tracking, realtime routing engine and support for various vector map formats. Works on a wide range of devices, from computers to smartphones.