What is the difference between UT0, UT1 and GMT time?
UT1 (Universal Time 1) measures the Earth's rotation with respect to the distant stars (quasars, nowadays), scaled by a factor of (one mean solar day)/(one sidereal day), with small adjustments for polar motion. There are exactly 86400 UT1 seconds in a UT1 day.
UT0 represents uncorrected observations of the distant stars / quasars by single stations. Nowadays, simultaneous use of multiple stations is the norm in the form of Very Long Base Interferometry (VLBI) techniques. The different rates at which atomic clocks tick at those different stations and the different ways in which polar motion affects those different stations has to be taken into account in order to use VLBI. The use of VLBI makes UT0 an outdated concept.
TAI (International Atomic Time), which you didn't ask about, measures time according to a number of atomic clocks. There are exactly 86400 TAI seconds in a TAI day. The TAI second is based on the Earth's average rotation rate between 1750 and 1892. A UT1 day is now a couple of milliseconds longer (on average) than is a TAI day thanks to the slowing of the Earth's rotation rate.
This creates a fundamental problem. It is now universally agreed that atomic clocks provide a much better measure of time than does the Earth's rotation, yet for human comfort, we would still like time to stay in sync with the Earth's rotation. How to accomplish this?
GMT (an archaic term that is deprecated except in Great Britain) has now become another just another name for the time zone UTC+0h. Prior to 1972, GMT was the de facto standard that attempted to keep universal time and atomic time in sync. The old GMT adjusted the length of the last minute of every day to keep the two disparate concepts of time in sync. The BBC incorporated these daily adjustments in their broadcasts of the "six pips". The US and Canada did much the same with their radio-based time broadcasts. The daily adjustments used in GMT were becoming ever more problematic with an ever more connected and ever more precise world. These problems motivated the replacement of GMT with UTC.
UTC (Coordinated Universal Time) is the modern successor to GMT. A UTC second is by definition always exactly equal to one TAI second, but like the old GMT, a UTC day is not necessarily 86400 seconds long. The difference between the old GMT and UTC is that in lieu of the small daily adjustments used in the now deprecated GMT, the adjustments to UTC are infrequent and are always exactly one TAI second. These are leap seconds. The predictability and the current close match between UT1 and TAI means that leap seconds can be announced well in advance, only have to occur on June 30 or December 31, but can still keep UTC and UT1 within 0.8 seconds of one another. (Aside: This will not remain the case in the not too distant future.)
The rationale for switching to intermittent leap seconds was that doing so would keep time uniformly except for those intermittent leap second boundaries, and the problem introduced by those leap second boundaries could be easily circumvented due to the announcement of those jumps well in advance of when they would occur. This has turned out to not be the case; a number of different computer systems (e.g., Microsoft, Unix, and MacOS) have problems with leap seconds. There are moves afoot to get rid of leap seconds.