Bitcoin block hashing algorithm. nonce Referencing the Bitcoin wiki, what is the auhoritative source for providing a hash of the previous block? Or do miners keep listening to latest blocks?

How is hash of the Merkle root generated? 

Can a miner generate a block with no transactions? That means generating block by keeping hash Merkle root as all 0s. 

One more question: 
nonce size is only four bytes (32 bits). Given version, previousBlockHash, hashMerkleRoot, bits are constant, would it not be very easy to iterate through all possible nonces?

2^32 = 4 G = 4&nbsp;G hash machine can finish this task in one second.
What is the auhoritative source for providing hash of previous block?
  or do miners keep listening to latest blocks?


There's no authoritative source, that's the whole point of Bitcoin. Miners keep listening for latest blocks, yes. They decide for themselves which block to accept. And since all miners (and clients) are programmed to accept only valid blocks (where its header hash is equal or below than the current target) they soon reach consensus upon which blocks are valid.


  One more question: nonce size is only 4 bytes(32 bits). Given version,
  previousBlockHash, hashMerkleRoot, bits are constant, would not it be
  very easy to iterate through all possible nonces? 2^32 = 4 gigs = 4
  gig hash machine can finish this task in one second.


More often than not, just that 4 byte nonce is not enough randomness to find a block. Miners constantly add new transactions - therefore the hashMerkleRoot isn't really constant.

Also I think there's an extranonce field which adds more space.