OSM Map On Garmin/Format
Garmin uses an undocumented file format for its map files. The format has been partially reverse engineered, but there are still some unknowns.
Common file types used on Garmin devices and for MapSource
gmapsupp.img— the container file for maps inside /garmin folder on GPS internal memory or memory card. When sending maps with Mapsource, all new maps are put into gmapsupp.img. Old maps previously in gmapsupp.img will be deleted.
Storage on Garmin devices
Newer Garmin GPS devices support mass storage mode, where the device pretends to be a normal storage device like a USB stick. Here are more details.
File format documentation and libraries
To understand the Garmin map file format the best place to start is the Sourceforge project garmin-img.
Mkgmap comes with some code for disassembling and viewing Garmin maps: http://svn.parabola.me.uk/display; there's information on the mostly-understood routing network at http://svn.parabola.me.uk/display/trunk/doc/nod.txt.
jgarminimg let you read garmin img files into java and display maps as a swing component.