How does fire and smoke simulation work?
Quick and watered down explanation. For Blender's simulator NOT MANATFLOW. Much of this can be applied to Mantflow among other parts. Volumetric are quite complicated in how they work so it won't be included.

Assuming your using Quick smoke settings(This is to avoid the thousands of different settings)

D = Divisions = 64 

Divisions is the amount of divisions each side is divided into.Each side is equivalent one side may be 2 units long and will have D divisions a side that is  1 unit long on the (Should only be one domain) object will have the equivalent amount or (D / 2 because it's half the size).

Time scale is the speed how fast it will go the lower the slower.

Border collisions are self explanatory.

Empty space is a voxel is under this value it's considered empty.

Density how dense the smoke is the higher the value the faster it will spread out.

Temperature difference the difference between the smoke's temperature and the "air" around it Higher the value the faster it will go up (I don't think I need to explain why).

Voracity(Not the correct spelling) the amount of turbulence in the smoke and "air" (I don't recommend using) .

Dissolve this feature will determine how long the smoke takes to dissolve.

Adaptive domain will change how large the domain is therefore increasing and/or decreasing the amount needed to calculate use this (Adaptive domain in Mantaflow is bugged don't use it in that branch )

Cache will store the data that has been simulated (Search up a tutorial on rigid bodies it will explain the exact same think just different simulations) 

Field weights are basically what is affecting affecting it.

Flames (I don't know how to explain but I'll try)

When simulating flame and smoke they are done  mostly separate from each other but they interact through the proprieties like temp difference,density among others
The main ones are Divisions,Temperature difference,Density,and Field weights.
Divisions are how much will be considered flames 
Temperature will determine how long the flames stay before they emit smoke.
Field weights I don't think I need to explain.
Yes flames are taken from the result of the simulation through distance Temp and the other Major factors listed above.
No the initial temperature isn't set high for Fire + Smoke it will basically do what is stated above. 

Collections what you put in flow, anything that has smoke on it in that collection will emit but only from that one. What you put in to collision same thing but it will collide.

High Resolution Nothing I need to explain but noise method which is the differences in how noise is generated ( I have no Idea how it works).