1) What is the purpose of D1 and D2 diodes?
When everything's working properly, they shouldn't conduct. If for some reason Q6 fails to come on when Q1 turns off, then D2 will save it from reverse bias.
2) What is the purpose of Q2 and Q5 transistors?
2n3055s have very low gain, and need a lot of base drive to work well. Q2/5 are used as current amplifiers, rather than increasing the currents in the Q3/4 oscillator stage to drive them directly.
3a) It seems that there is no resistors in the path from +12V to coil to ground.
and indeed there should not be
3b) Wouldn't this path become a short-circuit if there is no load connected to the 220V side of the transformer (and thus, no back EMF)?
You will have back EMF from T1 due to the changing current, regardless of the load on the transformer. A load on the transformer will increase the currents flowing. The path will become short circuit if the oscillator is too slow, or stops oscillating for any reason, as either could cause the transformer to saturate. A fuse in the DC line is the minimum protection required to guard against this.
WARNING While the circuit looks plausible, it may need more development to be a good inverter. The point where conduction switches from Q1 to Q6 is critical. There is no active turnoff for either transistor, and these things tend to turn off slower than they turn on, resulting in a transient short circuit when both are conducting. Often we see a series inductor in the transformer supply to handle this, or more complicated transistor driving.
If T1 is a standard power transformer, it may have poor inter-secondary coupling compared to one that has been designed for inverter duty, which could produce damaging voltage spikes on Q1 and Q6.
Unfortunately, a good power inverter is anything but trivial. The above points are just a couple of things that can trip you up, there may be more. FETs generally make for a better design these days, they are faster, and most are avalanche rated to handle the commutation spikes. 2N3055 is a very old transistor, it was about when I was young, I'm now retired, and so should it be.
Avoid this design method which has these issues with open circuit resonance and dead time shoot thru.
Instead only use a centre tapped transformer and with 3 primary voltage levels (V+,0,V-) each at low impedance (DCR+RdsOn).
Best Answer
A lot of the "explanations" of the function of bipolar junction transistors and mosfets imply that they are "switches". They are not really switches unless you use them in a circuit that makes them act like switches.
It's a fair assumption that power mosfets with VDS ratings above say 25-50V require 10V gate-source voltage to fully turn on.
You are using all N-MOS devices. To turn them on, assume that the gate has to be 10V higher than the source. You'll need a voltage multiplier to get those higher voltages needed on the high-side switches. Such circuits are sometimes called bootstrap gate voltage or boost gate voltage generators. The switching action of the mosfet "walks" the boost capacitor up to a voltage higher than the supply voltage.
A high-side booststrapped gate driver might looks something like the following:
simulate this circuit – Schematic created using CircuitLab
M7 is an inverter and generates the gate waveform for M5-M6 inverter. Let's assume that the total parasitic capacitance from A to GND is about 60pF - that includes gate capacitances of M5 and M6. Point A's response has a time constant of 10kΩx 60pF=0.6μs. The gain of M5/M6 speeds up the effective transition time seen between R3 and R4. The time constant at B is about 60ns. Gain of M3/M4 again speeds things up, and the gate of S1 sees a time constant of 100Ωx1nF=0.1μs. That's a reasonable slew rate for your application I think.
R1,R2 and R3,R4 not only control the dV/dt on the subsequent gate, but also limit the shoot-through current when M3 and M4 or M6 and M5 are both conducting during the state transition between logic 1 and logic 0 (and vice versa).
The bootstrap works as follows:
When OUT is at 0V, C1 charges to about 30V via D1.
As soon as OUT starts slewing high, the capacitor C1 "rides along" on top of that voltage, diode D1 turns off, and the BOOST voltage is OUT+20V (approximately). In practice, C1 will discharge somewhat, but as long as the BOOST voltage is 10V above OUT, M1's gate-source voltage will be high enough to let M1 act as a switch, as desired.
M3..M7 are "small signal" devices, but they need to withstand up to 2xsupply voltage, or 40V in the circuit shown.
You need such a high-side driver for both S1 and S2 in the first diagram in the question.
You can also use a dedicated high-side driver IC, of course. The driver IC will implement a circuit that fulfills the same function, just implemented using sub-circuits that make sense on a silicon die. The circuit I've drawn is how it might be done using discrete mosfets on a PCB/breadboard.