When browsing the content, how does linking work? I mean, don't they kinda have to link to a hash? But how can they know the hash of a page when the links of that page are dependent on the other pages and this may be a circle?
It's just simple relative links. If you're in /ipfs/QmPage/wiki/Page.html, then a link to './OtherPage.html' will result in /ipfs/QmPage/wiki/OtherPage.html.
Bingo. Then you have IPNS, which uses a public/private key system to broadcast updates to a mutable hash value. So you can take the IPNS public key for so-and-so's Wikipedia mirror, query the network for the latest hash signed by the corresponding private key, and use that hash to fetch content from IPFS.