A square wave generator does what you think - generates square waves. Usually, the period, pulse width, amplitude and polarity are adjustable. An "oscillator" usually just refers to a sinewave generator. A function generator can be considered a superset of both, usually having sine, square, triangle, ramps, etc., with lots of adjustments. However, most function generators have relaxed specs and aren't particularly accurate. A time mark generator is a very specific piece that puts out sharp rise-time narrow pulses at specified intervals. Often, the intervals can only be selected from some pre-set choices, so it is more restrictive than a general purpose function generator. However, many time mark generators (e.g. Tektronix) had ovenized oscillators inside that made them very acccurate for adjusting the time base of an oscilloscope. Simply punch in the interval you desire and line up the pulses with the scope's graticule as you adjust the horizontal time base calibration pot. For most low cost scopes, the time base accuracy spec isn't all that great anyway, and you can probably accomplish everything you want with a function generator (and perhaps a counter to verify the function generator's settings).